Being agile is what we all strive for. We all want to be able to react to changes without having too much impact on our development and delivery schedule. That’s a good thing, because we are working in an ever changing environment and our business owners need to be able to react very quickly to market needs or to changes from the competition. But is being agile always the answer?
Well, it depends on what your definition of ‘being agile’ is. For some (and sometimes I get the impression that it is for most people) ‘being agile’ means that you use the scrum approach to your development. But is it? In my opinion, you can be right, but you’re not always right. It depends on the situation and how you look at it.
If you think agile equals scrum, then you’re only looking at the development cycle of your project. You only think about how you want to implement the changes. But being agile means so much more. It means being able to react, not only from a development perspective, but from a service perspective. That’s why I’m more in favour of the Lean approach, because it takes a more holistic view of delivering an agile service. Whether it’s about answering questions from customers, developing new functionality or even creating a whole new service, scrum is not the only answer to being agile.
Another aspect to keep in mind is the fact that ‘being agile’ means you react to changes in an appropriate manner. To me that also means that using a waterfall development approach can also be considered ‘being agile’, because some projects do not require a scrum approach and sometimes working in a waterfall model is way more efficient for a certain project. It all depends on the circumstances: what kind of project, what mentality in the company, team size, customer demands, etc. It all plays a role in selecting the best approach to handle a request or a new project.
So, for me ‘being agile’ is much more than working with scrum. It’s all about being able to react appropriately to a given situation and adapting your approach to the circumstances to take on the challenge in the most efficient way. But ‘being agile’ brings along another danger, namely the fact that ‘agile’ becomes an excuse.
‘What excuse?’ you may ask? Well, I have been in situations where the term ‘agile’ is being abused in the sense that a project is never finished for a release. There are always last minute changes. Working in an agile environment should all be about phased releases and ever evolving applications, which is a good thing, as long as they are managed correctly. Once you prepare yourself for a release, the scope needs to be locked to be able to be thoroughly tested. Of course the business owner will want to keep putting more changes in the same release, because all they care about is getting as many requests as possible things in there ASAP. But when the term ‘agile’ becomes an excuses to keep developing until the last minute before the release, that is where I draw the line!
Consider the side effects for such and approach:
- Huge strain on development to get all the stuff done in time, with the risk of having quick and dirty fixes
- Features cannot be thoroughly tested before being released
- Regression testing is not done sufficiently, ricking other applications or other parts of the application to be affected negatively as well
- Huge risk of having to rollback the release because of the feature not working properly
- Huge risk of having to conduct emergency changes to mitigate unwanted side effects
- An increased COPQ (Cost Of Poor Quality); time that could be spent on working on the next release
- … and the list goes on …
In the end you’ll probably spend more time on fixing things, upsetting customers and lossing time for a next release cycle, that it would probably have been more effective and efficient to adhere to a fixed scope with a decent QA timeframe where everything is thoroughly tested before the release.
And then I sometimes hear the remark “yes, but we are working agile! We should be able to change everything up until the very last minute.” Unfortunately, if you are reading this and feel the same way, I suggest you start reading up on what being agile is really like, either on my blog or in the many books you can find, because then you really didn’t get it at all!