12 Reasons why developing software is like raising kids (and life in general)
Spend some time in the alpha version before rushing (or skipping) to beta. Early childhood development is important but often overlooked.
It’s easier to modify feature sets before they reach release. Habits, like badly designed features, takes a long time to phase out and remove completely without user frustration.
You can release updates, but it’s up to the user to get them. You can bring the cow to the water but not make it drink. Sometimes it takes a major data corruption, service failure, or some other crisis to make the user install the updates you have been pestering them to install months ago. Similarly, kids often need to experience it themselves before they learn the lessons.
Good looking software can trend, solid features will stay. Users may be attracted by sleek interfaces, but they stay for its features and reliability, and history has shown that appearances can go out of date way faster than features. Barring a successful career on the runway, solid skills and a good personality generally matters more in life.
Even a single line of bad code can affect the overall quality of the entire app. Foster a healthy environment by surrounding yourself with role models and generally people with good influences. mysql_query($_GET[‘query’]) anyone?
It’s easy to decide on a language early on. It gets increasingly painful to switch down the road. Kids are amazingly capable of learning new languages – when they still know none of any.
You can plan for the perfect scope and specs, but it’ll never turn out the way you imagined, for better or worse. Send them to piano lessons or force them into law school, but things happen and we need to learn to adjust and accomodate.
You can either invest heavily in-house to control development (staying in school), or open source it and let the public (society) guide maturation.
By all means do the first release on a particular platform, but consider if expansion into multiple platforms makes sense. We live in a global city and you get access to much broader opportunities when not just limited to your home country.
The more successful ones are usually those who persevere and keep iterating on user feedback. Be humble and welcome constructive criticism.
You can target a wide user base and face more competition, or you can specialise and target a niche.
Last but not least, the good ones don’t conflict with other apps, the better ones work well with others, and the best ones have API’s and integration SDK’s. The importance of teamwork can’t be over-stressed.