How often have you seen a new mobile app or website being promoted? I guess pretty often. It seems everyone is a website designer or mobile app developer these days.
This is all fine, until your app hits the big time, then things goes wrong pretty quickly.
First, your server runs into performance issues because you built your app so fast you did not have time to do performance testing, or even design for performance. Then you start throwing more developers at the problem, but quickly realise that 9 developers cannot make a baby in one month.
The moment you go over the magic number of three active developers things get complex fast. Versioning and source & database control becomes tricky. Testing & deployment becomes real hard. Suddenly you spend more time dealing with code reviews, merge conflicts and deployment than you do coding.
Then you add to that the change management of a rapidly evolving product. How do you communicate changes to your customers, and how do you manage their feedback? How do you decide what features to add, and what to leave out? How do you prioritize?
Suddenly the little startup turns into a temperamental teenager with growing pains, and someone needs to be the parent. This means laying down the law and becoming the coding police. Now there are rules, from spec sign-off to coding standards to end-user documentation to database design & performance reviews. Not so much fun anymore.
But this is what real software development is about. It is not about the guy in the basement that knocks out a quick app or website. Anyone can pretty much do that these days with all the tools around, but it only gets you so far.
Real software development is about walking a tightrope. Balancing customer expectations with development capacity, balancing revenue with development timelines, balancing investor demands with customer needs, whilst at the same time growing your product into a market leader. Being able to tune out the noise and staying focussed on the destination is what gives you the real edge.