Children are a lot like software, you quite like your own but don’t have the patients for other people’s, but that’s not the comparison we should be making. I would like to draw a comparison between the lifecycle of a software product and that of a child.
The effort and involvement required to produce a software product, and to maintain it through its useful life, is comparable to that of an average child.
There is a conception, usually, this involves two parents. An idea forms the software equivalent; both require monitoring, in some form, up to the birth or release. And, with software, as with a child, most of the real effort is from this point onward.
If you consider conception and pregnancy, before the birth of a child; the initial input is from the parents. Some medical professionals’ involvement before and during the birth, is normal, e.g. doctors and midwives.
So the initial “build” of a child to the birth would on average involve
Two parents, one doctor, one consultant, one midwife, and probably at least one nurse, so about five people in total.
Once a child is born there is usually still a heavy involvement from parents. There will also be some level of support from grandparents and friends and probably a midwife, at least initially anyway.
Made up of, two parents, four grandparents, two friends, and one midwife. Making it nine people supporting the early life of the child.
This may scale back as the midwife drops from the picture and a GP takes over the medical support role. Grandparents’ input will reduce as the new parent’s confidence grows.
Shifting to two parents, the equivalent of two grandparents, just one friend; physically more than one friend but, in terms of support, equivalent to one. Roll in the continued support from a GP. That nine, after birth, becomes just five people, as it was for the birth.
As the child grows there is a need for more input and support for education and activities initially
As the child’s world becomes more complex there is the introduction of friends. By high school, you probably have something like four teachers, three friends, two parents, two grandparents, and two external activities coaches.
As the child’s demands for education and growth increase, support could easily peek at twelve to fifteen people.
Stability and Changes
This scales back again as the direction starts to stabilise. Probably shifting back down to no more than eight which will stay relatively constant.
Maybe with a peak around changes in career and family situation. This could even happen due to ill health or age-related issues.
That journey is almost identical for software the conception and release of the product will have an optimum team size. That team may have some consultants holding the hands of the less confident members through the early days. As a rule of thumb, the level of resources required to build and then maintain a product are identical. Post-launch of an MVP there will be a bigger push to deal with feedback from users. Peeks will occur due to expansion, which will stabilise into maintenance. The final core team may be slightly larger but will remain stable throughout the life of the product.
There may be some big changes along the way that do require a level of scale-up. Technology shifts, security incidents, unforeseen compatibility or stability problems, or just “age-related” issues, to name a few.
The Lifecycle In Summary
If you consider the birth the MVP.
Education the additional features and refinement.
Higher education and/or work the stabilisation followed by a level of status quo
The product lifecycle is not that much different, is it?
Some companies still see the birth of a product (the completion of the “PROJECT”) as the end of the journey. This is a kind of draconian orphanage software lifecycle; leading to mistreated and forgotten software!
How does your company treat software development? It might be time for a reform or even a transformation?
Give software the deference it deserves!