Agile - culture of the quality by Wiktor Żołnowski
Agile - culture of the quality
Is Agile a culture of the quality? Or maybe we even don’t need this whole Agile/Scrum/Kanban/Lean things when we have high quality - maybe it’s just about engineering practices not buzzwords and fancy methodologies? So why we need this methods above? Do we need them at all? IMO: Yes - and I would answer why we need both practical/technical skills and process management methods like Scrum.
Two years ago I’ve been participating in some IT conferences and events. When I asked how many of you (various people from IT) heard about Agile, about 30%-40% raised up their hands. When I’ve asked how many of them are already using Agile or trying to learn how to use it, there was just few hands in the air. Right now at similar conference almost everyone heard about Agile. More than half of participants use or try to use Agile/Scrum/Kanban etc. But still there are only few hands in the air when I’ve asked: Is it working for you? Are you sure that it is really Agile? Are you agile - can you really respond to changes fast? What about culture and trust?
Later I’ve found this few people who raised their hands (and in a meantime found couple other organisations where Agile really works) and we tried to figure out what are the key factors behind Agile successful implementation. Is there any pattern which we can find in this successful organisations, what is the difference between them and other Agile or WannaBeAgile implementations?
In most cases the answer was that being Agile was very difficult without high product quality and great personal/technical skills of the team members. So is the quality of software so important?
Of course quality is not(?) any silver bullet, but sometimes it really can make Agile transformation much more easier.
First dimension of quality could be product quality - proper and clear vision, valid requirements, usability, value - we can define quality as something which users/customers defined as quality and at this level that definition could works for us well. “Do it right” is not enough anymore - now we also need “Do the right things”.
Another dimension of quality is a low level quality of code and quality of our daily work. This quality means that we are doing the best what we can do every day. We are using proper tools and methods. We are implementing “good practices” like: TDD, BDD, Continuous Integration, Continuous Delivery, Code Review, Pair Programming etc...
First of all we need to ask ourselves: “Why we need this whole quality?”. This whole Agile idea starts because whole world starts evolve very fast, and few months production cycles was too long. Responding to changes became the biggest challenge for IT. But respond once, two times or even twenty times is quite simple. Systems which we are currently building need to respond for changes every day and it is a bigger problem. Without quality, tests, quick feedback we cannot be sure that our changes do exactly what we want for them to do. So another dimension of quality is continuous and stable rate of implementing changes in software.
Agile is about Inspect & Adapt, Experiment & Learn - there is imposible to learn without making mistakes. If we are not using practices for assuring quick feedback loop we are afraid to change anything - so even if there will be “Inspect” no adaptation is possible. Experimenting becomes too risky if we haven’t proper tools to reverse our changes if something goes wrong. So how can we learn and be innovative? This is another dimension of quality which I call courage and possibility to learning from mistakes.
|Last Updated||28 Jan 09:16|