Agile Practices vs. Agile Methods
You can benefit from using Agile Practices, both in Agile and Predictive environments, but they don’t necessarily make you Agile. You need to use Agile Methods/Frameworks for that purpose.
This is important, because some companies falsely believe that using Agile Practices is enough.
What’s an Agile Practice?
The following are examples of Agile Practices:
- Collective code ownership
- Daily stand-ups
- Information radiators
- Continuous refactoring
Why are they called “Agile” practices? Just because they are more common in Agile environments, and mostly invented or promoted by Agile practitioners. However, most of them have been in use for long, in one form or another.
Some people might not be comfortable referring to some of them as “practices”, and have some other things in mind. There’s no clear definition for practices that I know of.
What’s an Agile Method/Framework?
- Kanban Development method
These are what you need to become Agile.
Why using Practices alone doesn’t make me Agile?
Using the Practices can benefit you in any environment, as long as there are no conflicts between them and the rest of the system. For example, self-organization might not be applicable to all environments, while having information radiators is simple, and always possible.
You can be using a full-blown Waterfall system, along with information radiators and daily-standups for improving communications. That’s OK; that’s good; but it doesn’t turn your Waterfall system into Agile.
What extra things does a Method/Framework provide?
A Method/Framework is not a set of Practices. In fact, many of them do not insist much on the Practices, and it’s up to you to add suitable ones.
So, what does a Method/Framework provide that we cannot have with just a set of Practices?
It’s simple: A development lifecycle.
The lifecycle tells you what steps to take. To make it practical, roles and responsibilities are required, as well as some management products (artifacts).
Why is it important?
If you never had a proper system (e.g. Waterfall), and try to become Agile just by incorporating some Agile Practices, the result would be just a chaotic system that may or may not work.
See also my other article: When it’s neither Agile, nor Waterfall
But people are doing it and are successful!
Chances of success are much lower when you’re not using a Method/Framework, and only dependent on incorporating some practices. It doesn’t mean that you will definitely fail; after all, many projects had never been managed systematically, and some of them succeeded because of having better than average people, good environment, and luck.
Besides that, be careful with judging others’ systems; you see the practices when you’re looking at others, but it’s harder to see the framework that forms their development. You might fail to see that essential part, and believe that all they are doing is following some Practices.
Are you saying that we shouldn’t use Agile Practices?
It’s a very good idea to use them, as long as you make sure they are not in conflict with something else in your project. My point is that you should know what to expect from them: they won’t create a complete system for you.
They are helpful, but not enough.