Finishing Software Is Hard

For the last couple years, my 15 year old son has been slowly building a gaming computer for himself, piece by piece. For his final computer component, I agreed to purchase it for him if he could accomplish one very specific task. Namely, I wanted him to recreate an iOS app that I had written years ago as I was learning iOS development. He has a natural inclination to programming and has dabbled with many different coding challenges so he figured that it wouldn’t be too difficult to do.

For the most part he was correct. He started working on it last summer and was able to quickly get a large chunk of the functionality working. He was fairly excited about it, but then I started explaining some of the other things he needed to do before submitting it:  an about screen, a splash screen, cleaning up the layout for the various phone screen sizes, etc. What happened next was predictable. His enthusiasm waned and he pretty much stopped working on it. He filled his time with other things and his almost-finished computer sat staring at him in his room.

On more than a few occasions he tried to negotiate a smaller task, but I kept explaining to him that the point of the exercise wasn’t to see if he could program (I knew he could.) But rather, could he finish something hard and complex. As any seasoned developer knows, finishing software is difficult and always takes longer than you expect. It’s also not a skill that people learn in school. It’s something that can only come with time and experience.

During this period of extreme social distancing, our kids haven’t had school and the transition was so sudden that teachers didn’t have time to create assignments or lesson plans for students while they are out. As a result, our kids find themselves on some bizarro extended spring break where they can’t see anyone. The boredom is real and families are trying to figure out what to do with themselves. The silver-lining for me is that I have a little more time to spend with my family and I finally convinced my son to sit down and finish his app.

The amazing thing is that as soon as he finished and submitted to the App Store, he found a sort of “second wind” where he wants to keep working on the app and add more features and functionality. To me, this is the magical reward of finishing software. When you finish something you feel such a sense of accomplishment and get a boost of energy and enthusiasm. It’s a feeling that I love and is difficult to explain to someone that hasn’t gone through a tough finishing exercise. I’m very happy that I was able to share this with my son.

Oh, and if you’re curious about the app he built, you can find it here:

https://apps.apple.com/us/app/doodle-dots/id324487932?ls=1

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s