Agile is dead. That’s what some of its 13 original speakers say: Dave Thomas, Andrew Hunt or Kent Beck. Agile as a concept has been suffered a deep wear in the last few years, specially if with Agile we mean change management or team culture in our software developments. Agile must be redefined.
Dave Thomas (He says it is dead)
Andrew Hunt (said it’s dead)
Kent Beck (the same)
Agile, as any other great phenomenon happening on a global scale, has been used by many looking for a space they probably didn’t deserve and wanting to make easy money with software development by selling magic recipes on the hope it would solve any kind of project.
Reality is far away from there and development teams have to face big challenges when they start working under the Agile umbrella:
- Architectural designs that clearly leave room for improvement (designs cannot be automatically derived from USs implementations).
- Technical debt is never paid.
- A never ending refactoring with low-quality code as result (what gets even worse by the fact TDD is not used).
- Long-term and strategic goals not supported.
- No responsibility is assumed for developments.
- Can not be applied to big corporations (mainly due to the low level of communication and affinity in those environments).
The reason behind the above points is that Agility can not be achieved by just implementing and “Agile” process and saying that we have an “Agile” team.
Teams shouldn’t focus on becoming Agile, Teams should focus on building Agile Software, that is, Software that can quickly change to adapt to changes (both functional and not functional changes), or even more, that takes advantage of and gets better with changes (fragility, robustness, antifragility).
But, if teams are not agile just systems, Where does this leave People?
Software engineers, in the wider definition of software engineer as “Software Builders”, have forgotten that we create Software and that system design is something more than development.
And there, in system design, is where Agile contributes to the Team. Agile must help us to create and take care of a software architecture that helps Team and People to achieve their goals. One that everyone feels of his own and one that everyone is proud of contributing to. Pride and Technological challenge are the two first pillars where to start building a successful team.
Third pillar is Communication. A fluid and efficient communication, with the necessary tools made available to the Team and with specific meeting with clear goals and two global purposes: Share and Recognise. In the first place to share the work that every person does and, in that way, improve team collaboration. In the second place, to recognise everyone the tasks and achievements he or she got and go deeper into that feeling of pride.
Fourth pillar is, and in my opinion the most important one, Confidence. A team needs to build the confidence in the responsibility and professionalism of every single teammate and in their abilities. Only in that way we can be sure we are in the right path to achieve our goals.
In conclusion, Agile is dead, but it can be reborn. If we take back its real nature we can still create great software. We just need to remember that the core of what we do is Software and that by improving the levels of Pride, Communication and Confidence and by setting the correct challenges we can get a great team with engaged professionals proud of their products and their company.