I have worked with various flavours of “Agile” over numerous years. These have ranged from the very formal where everything is done by the book to more ad-hoc versions where different parts are cherry picked or in most cases done because people think they should be done.
What is clear is that “Agile” has become more about the processes than about the results and the actual aims of the original manifesto.
One of the original authors of the Agile Manifesto that set the original guidelines, Ron Jefferies, has called this out and has suggested that developers should abandon Agile. He says:
No matter what framework or method your management thinks they are applying, learn to work this way:
- Produce running, tested, working, integrated software every two weeks, every week. Build your skills until you can create a new fully operational version every day, twice a day, multiple times a day.
- Keep the design of that software clean. As it grows, the design will tend to become complex and crufty. Resist and reverse this tendency consciously, refactoring in tiny continuous steps, all the time, so that your rate of progress is as steady and consistent as possible.
- Use the current increment of software as the foundation for all your conversations with your product leadership and management. Speak in terms of what’s ready to go, and in terms of what they’d like you to do next.
He recommends starting with Extreme Programming but he also says that it is not the be all and end all and developers should “stay alert at all times for signs of all the other things you need”.
We have just finished a phase of a project where “Agile” was used - this was clearly not a success and the “golden path” guaranteed to deliver.
We are now looking to change the way we work for the next phase.