“Improvise, Adapt, Overcome” is the unofficial motto of the Marine Corps and should be the motto for a software startup if they are to be successful.
I would imagine that more times than not, the original “idea” for a money-making software application, is nothing at all what the end product will be. In the freelance world, it is common to perform a “needs assessment” when talking with a new/future client. It is the developers job to fully outline everything that the client wants for their dream software application to be and look like. Myself, I prefer to do a full user story workshop. This entails getting down to the nitty gritty of what every part of the app should look like and do. This is all done with the current/existing vision that the client has. And then development begins …
If I use a store bought box cake mix, I imagine that I can add all of the ingredients and it will come out just fine. If I do it from scratch, well there will be somewhat of a trial and error with the ingredients Too sweet, not sweet enough, all this can change before the cake is done. Just like software.
With software development, there is a general direction that you go. This is based on the clients needs/wants. But the reality of it is that once you start and they see things begin to take shape, the idea that they had in their head morphs. “I thought it would look good like this but now that I see it I do not like that …. “ Suddenly the straight line from start to finished product twists this way and that.
Many factors can cause a “change in direction” when developing a software application. In the beginning their will be more input once it starts to take shape. Beta testers and market research can cause changes to be necessary.
In addition to changes with the software, there will be changes to the team. Hiring more, cutting back, hiring again… All of this is possible. In the pursuit of a self sustaining product (one that pays the bills) many of these changes might be necessary.
It isn’t easy, but in order to make it work, be ready to improvise on what your are building, adapt to trends and changes, and overcome any and all obstacles that get in the way.