There are some dominant software development processes in technology marketing, one is Agile, and the other is Waterfall. The reason I say marketing is that when people start to think about how custom software actually gets done, they start finding marketing details about the process and methods of software development. They find the Agile/Waterfall debate… through articles, definitions or marketing propaganda. All this information is an easy way to reassure a client that the industry has thought of a solution to the unknown, and communicate competency in the craft. “Yes sir! We have this breakthrough process that has been developed that solves all your problems! It’s called: Agile!”
“Waterfall” is a term used in critically describing a common out-of-date method of developing software, which is a rigidly sequenced process of designing and building software. It was a term that was mainly used to point out the flaws in software engineering when strictly copying the processes of manufacturing and construction industries. Often we have found this term used to negatively describe any process that requires planning and sequencing, especially by the people that feel planning is an obstacle to “doing”. These are often people that favor the chopping of wood over sharpening their axe, because eagerness and doing something makes you feel like you are getting somewhere, even if you are not.
“Agile” is a term that is often used and abused to describe the opposite of waterfall, embracing change. It is expressed as iterative and incremental development, where what you need and want is decided over time through a series of collaboration and review sessions. Often it is used to excuse uncertainty to a client when they want to know what they are investing in and when they will get it. We love and use Agile methods, but care needs to be taken to make sure it is used properly.
This quote explains specifically the ground rules when separating the good from the bad out there on Agile, and is the best viewpoint I have found so far:
Think of Agile like this: There are Agile Principles and there are Agile Delivery Methodologies, and both have different benefits and uses, and they can be applied in conjunction or in isolation, and to varying degrees. Agencies can easily apply Agile principles but will find it harder to apply Agile methodologies.
So why is the marketing so powerful?
There are many unique problems when creating software products:
- A big one is estimating resources (time/money) and completion date, especially on larger projects.
- Another is the fact that software must be experienced in order to evaluate effectively – just because you build a car prototype and you can drive it; doesn’t mean it’s fun or easy to drive. This means often the ideal you imagine, and the result you get are two different things. It’s easy to imagine and define a kitchen for your home, but it’s something completely different to use it to cook and entertain.
- A third is that the environment changes rapidly and often. Technology evolves even as you are developing a software product! Your needs at the beginning of the project may be different towards the end.
I believe the marketing is so powerful around the word ‘Agile” because it appeals to both the builders and the buyers in various ways, and offers an easy explanation that seems to make sense when faced with problems and uncertainty. It becomes quick fix for pain, when deep process consideration is actually needed.