November 25, 2009 5:40 PM GMT
I wrote about OSS requirements in an earlier post, but would now like to turn to how to deliver those requirements, and in this discussion I will focus on Agile development methodologies.
Agile has now been around for a while and of course it comes in many flavors (bullpens, pigs, chickens, scrums, sprints). I have found from experience that for Agile to succeed a very specific set of circumstances are needed:
- a high calibre small team
- a co-located team
- control of scope dictated by the team not external stakeholders
- a clear documented vision of the target solution that all the team understands
- a short term piece of work such as proof of concepts
- an engagement where the commercial constraints do not contradict the agility, such as an in-house development as opposed to multiple vendors and products
Some of the principles of Agile are valuable and admirable. I support flexibility in the delivery of projects, the ability to encompass changes during the course of the project provided the delivery is not jeopardized, and use case and test driven developments, but honestly, I have yet to see Agile truly be effective.
All too often Agile is interpreted as an approach that can short cut documentation and change management, and a belief that work can proceed without a clear vision of where the project is heading. After an Agile project, it is the users that had better be agile...
Isn't the real issue that all too often projects are poorly managed regardless of methodology - if you are missing Project Management 101, then does Agile make the delivery more likely to be successful?
Let me know your opinion on the value of different methodologies to deliver OSS projects. Have you seen Agile work? What were the circumstances?