Staying away from the concept of “Waterfall” is what is preventing your engineering team from moving faster. I’m sure you don’t even dare to use the word because of all the bad press it has.
The Waterfall methodology is a myth. It is an anti-story to sell the Agile methodology.
Hard dependencies are your friend
Between 2019 and the covid-19 year, I’ve worked with one of the top construction industry leaders. The product’s focus was on the pre-construction phase.
Why would you want software that forces you to spend more time during the design phase? Because it will pay off. Because changes during development are more expensive than during design.
The hard dependencies between phases and the inflexibility during the development stage keep the project costs under control. Even Facebook recognized this when they changed the “move fast, break things” motto.
Agile is Waterfall
Although one of the Waterfall’s main advocates expressed that we should go back to the design board when we need to, if you examine any agile-based methodology, you will find that at its core, it is a waterfall process.
Call them sprints, call them Kanban cycle time, tasks are moving through stages, and you cannot have the Software Architect designing the cloud infrastructure while the DevOps Engineer is implementing it.
Try to change the requirements, or the UI designs, while the engineers are implementing, and see how agile things get.
Requirements freeze, design freeze, code freeze
Here is the main takeaway: as all the software development methodologies come from the manufacturing and construction industries, the core principles are:
- Reduce waste
- Continuously improve the process
- Prevent mistakes
Each phase in the development process requires a “freeze” period to allow the next phase to unfold.
You need both Engineers and Processes
Agile evangelists say: “competent people over tools and processes, software over documentation, customer interaction over requirements, changes over plans.“
Have about if we need both? You need both rock-star engineers and processes. You need both clearly defined requirements and customer inputs. Customer feedback is useless if you can’t communicate them clearly to the team. A rock-star engineer without processes will unleash a series of prohibitively expensive refactors.
Do you want to learn more about the development processes? Check out my other posts.