Series
Drupal Project ManagementI think everybody and their dog should know something about agile development by now. Most companies seem to offer agile development at least on some level. Most customers say that they have at least some experience with agile. This being said it seems that many people are still missing the point of agile. Many suppliers are using agile mostly as sales pitch without really understanding it and many customer still insist on "fixed everything" contracts (fixed scope, price, schedule).
Instead of trying to cover all aspects on why agile is so great I will just concentrate on a single one: Postponing decisions to the last responsible moment.
In the beginning of a project we know as little about it as we ever will. Vice versa at the end of a project we know as much as we ever will (during the project). Do you want to make important business decisions with minimum or maximum amount of knowledge at your disposal?
Naturally it's impossible to decide everything at the end of the project. It's wise to postpone them to the last responsible moment. Responsible here means a point after which not making a decision will start causing problems to the project. Some times it can be worse not to decide than to make a bad decision. We can learn from a bad decisions and fix the problem, but indecision can just stop everything including the learning.
In traditional project models we start by doing the most important decisions at the very beginning of the project. The same is true for "agile" projects with fixed everything contracts.
This means writing a detailed requirements definition that has to be met before the project is done. This means that we will do the most important project decisions even before we have started the project. Many trivial details are left for the initial design phase, but most major things are already listed as an appendix of the project contract.
This also means that we don't really have any reason or even opportunity for learning during the project. In real life we will of course always learn things during the project, but applying them in a meaningful way would mean changes to the project contract. Even if the supplier would like to add something in order to make the end result better there is still the worry of completing all requirements listed in the original contract.
In agile we don't fix the scope of the project in the beginning. While this requires a lot more trust between the customer and the supplier it definitely means better results as well. Agile means higher risk of not meeting the initial scope of the project but much lower risk of not meeting the goals for the project.
When doing an agile web development project with Drupal we can actually see a partially completed web site, use it, learn from it and do decisions based it what we have learned. This often leads to major changes to our original plans and to much better end results.
Even if there were no additional benefits to agile this would be big enough reason on it's own to use agile instead of traditional "design first" methods.




Comments
Very, very useful article on Permalink
17. February 2012 - 9:16 - SourceSqr (not verified)
Very, very useful article on Agile, finally getting to know a little bit on what the framework is all about. Any advice on how to quantify the project cost to clients?
Hi Vesa, Thanks for sharing Permalink
17. February 2012 - 14:14 - Anja (not verified)
Hi Vesa, Thanks for sharing your insights on this. You should check the image style setting for your d.o Planet Feed, the images are huge :)
Planet text formats Permalink
17. February 2012 - 15:33 - Vesa Palmu
I also realized that Planet removes width & height settings from images, they are still in there in our RSS feed. Whoops. :-)
The damage is already done since I don't think planet updates aggregated posts. Next time I will let Drupal resize the images for me...
It does update, this happened Permalink
19. February 2012 - 17:55 - Anja (not verified)
It does update, this happened to us and it changed on the Planet after a couple of hours :)
The real "heart" of Agile Permalink
17. February 2012 - 17:11 - Ken Whitesell (not verified)
I think you missed an opportunity here - this sentence: "Agile means higher risk of not meeting the initial scope of the project but much lower risk of not meeting the goals for the project." should be displayed in bold 72-pt type. At the end of the project, that's really what's important - did you meet the client's goals?
And after agile, comes lean Permalink
20. February 2012 - 19:27 - Osma Ahvenlampi (not verified)
Right on. Not committing to a decision you don't know how to make yet is good. Once you've gotten through the mental hurdle of admitting that at the beginning of the project, you might not actually know everything you need to know to get to the end, comes the next one: launching earlier with a version you're embarrassed to show to anyone, you will learn faster. And not only faster, you'll learn the most important answer there is: will your business benefit from completing this project, or some other project?
Do get there, you'll need not just agile development processes, but lean and measurement-oriented business processes.
Moi Vesa, Permalink
23. February 2012 - 21:43 - luke (not verified)
Moi Vesa,
Absolutely great graphs and writeup on agile. Your point about fixed contracts between contractors and suppliers not accommodating for agile process is interesting - it’d be great to hear more of your thoughts on ways to overcome this?
Luke Winter
Community Manager
OneDesk
Agile contracting Permalink
23. February 2012 - 22:13 - Vesa Palmu
You brought up a very interesting topic. First of all I have to say I don't have any silver bullets for agile contracts.
We do have plenty of experience on this topic and a very nice contract model that we use in our projects. Reality of contracting for large software projects is however often quite ugly in my experience. Dealing with lawyers that have no idea on software development in general and especially not on agile development makes life difficult for all parties involved. Fixed everything contracts just don't work with agile.
Add new comment