I hadn’t realized quite how fitting my tagline was when I started this blog. The “care and feeding” of software is one of the main roles of a release manager, or anyone involved in managing change to software for that matter. It occurred to me today, that software has a lot in common with living things, more and more every year.
“What?!” you ask?. How is a web based app like a living organism you wonder? Well, there’s a lot of similarities, and it makes for a good analogy. We’re decades into software engineering now, and we’ve discovered a lot of stuff along the way.
One key development I’ve noticed is that more and more, organizations (both software consumers and creators) are beginning to realize that developing apps is less like mechanical engineering and more like giving birth. I’ve even heard people use giving birth as an analogy, and we’ve all heard some kind of app referred to as “my baby”. It’s no longer an exercise of “identify requirements, design, code, test, release” in isolation – it’s a nearly never-ending repetition of this cycle. Agile methodologies are compelling because they acknowledge this at the outset of a project, and cater to this reality. Software is never “done”. If it is, so is the company that made it…
Mechanical or even electrical engineering approaches are not really suited to software. Sure, they provide a framework for getting things done, but there’s a key difference between what’s typically been “engineering” and the engineering of software solutions.
Engineering: the art or science of making practical application of the knowledge of pure sciences, as physics or chemistry, as in the construction of engines, bridges, buildings, mines, ships, and chemical plants.
Rarely do people start off to develop some kind of app, thinking they’ll “nail it” in version 1.0, and never need to spend more time/energy on it. Certainly, there are phases in the development of an app, as there are in the life of an organism. So while it is an ongoing cycle (the SDLC), there is a sort of linear path that an app goes through, that’s made up of each of these iterations.
In this 5 part series, I’ll ponder the following topics:
1. Definition of an “application”
2. Comparison of an app with an organism
3. Trends in software design, development
4. Release manager, build engineer as doctor, triage nurse
5. What does it all mean?