January 21, 2019
One often underlooked core principle of the agile manifesto is technical excellence.
Implementing agile practices only in management, neglecting the technical excellence, is one the common errors leading to insufficient value delivered and lack of effectiveness of the team.
It is a crucial point but nothing is specified on how to implement it inside the Scrum framework, so here are some of my thoughts.
The goal of technical excellence is to reduce the frictions in the current and future developments. This means improving (or at least keeping constant) the maintainability of the code, every time we make changes into it.
Leave this world a better place than you found it.
In my opinion, there are some means to focus on technical excellence:
Having unit and acceptance tests is a good way to ensure that you meet the expect value and do not break the existing application. To reduce friction, those tests should be automated and integrated into continuous integration.
One of my personal favorite approach for testing is TDD (test-driven development), but ultimately each team need to evaluate and select the ways that work the best for itself.
The architecture and design of a software should always emphasize on the simplicity and evolution capabilities.
Concentrating into making the code readable and understandable for humans is the best way to ensure the frictionless future of the application. I cannot say it enough, read the clean code book and encourage every single team member to read it and apply it.
See the manifesto
Team members should always try to improve and learn, by themselves and through their peers.
If we limit ourselves to perfect work, we’d never accomplish anything! - Jon Acuff in Finish
Keep in mind that you have to deliver working software frequently.
A strong code ownership is a limitation factor in a team:
Technical excellence should be deeply anchored into the team culture. Teams that are always targetting those goals are the most effective, produce more value and adapt faster to changes.