We should stop using Agile and Waterfall as-is
Opinionated post.
We should stop using Agile and Waterfall as-is.
Agile was born because Waterfall took too much time to get a working app to receive feedback from real users. I still remember first implementing Scrum back in the day using GreenHopper (now known as Jira) ā it was just what we needed as a startup in 2011. But if you ask me today? I wouldn't start with Agile methodology anymore.
"Working software over extensive documentation" was defined for this purpose: get feedback as soon as possible since there's a chance this won't be what we need to build, it's costly to go into many details, and startups needed that velocity and cost savings the most.
Now getting a PoC is fast. We can do that either for greenfield or brownfield apps, the latter doing an internal PoC with either feature flags or a different environment.
What needs to change is how much autonomy to give to the person doing these PoCs. It needs to be an experienced dev, someone who knows what can go wrong (e.g., modifying data in a production environment), and someone who knows how to work on all pieces of the software: backend/frontend/infra.
Then after the PoC, we can start working in a Waterfall style renamed as Spec Driven Development with vertical slices.
Benefits:
- Fast PoC to get feedback
- Help from AI to build detailed Specs as required on Waterfall: complete use cases, NFRs, etc.
- Fast iteration once Spec is defined
In this sense, the Spec would be a piece that takes some effort: cross-check reviews, detailed requirements, design as mockups, completeness. But this time the risk that the soon-to-be-built app won't be what the users actually need was already covered by the PoC. Now we have that feedback, and we also have an implementation to use as an example, either a good or a bad one. How many times have we noticed something could have been written differently at the end of development?
We also need to reduce the specialization ā not removing it completely, as we always benefit from a subject matter expert, but right now it doesn't make sense to build a feature with so many specialization, instead we could have a Frontend lead, a Backend lead, an Infra lead, and the Engineers would simply go through all steps on each feature with their guidance and Spec reviews.
This exact way of working might not be the best as I need exploration to see how it goes, but what Iām convinced is that current Agile Scrum methodology and Waterfall as we know it, should stop.