I am currently evaluating different Agile development methodologies for use in a fairly homogenous senior team. Of course XP seems like the most obvious way but we’ve came to the obvious conclusion that XP expects a lot of things to just happen; therefore since some of the members of my team (as it usually happens in my beautiful country) do not strictly do this hidden steps. We’ve decided towards FDD (Feature Driven Development) which follows the same essence of the Agile Manifesto. If I could summarize the benefits that inspired us I would mention:
- Discovering list of features instead of writing user stories, removes the risk of depending on strong communication between customers and developers; let’s get real how many times does the customer actually answers the phone to the developer.
- Feature by Feature implementation, instead of just implementing a user story.
- Clear Entry/Exit criteria while moving between phases
As an advice to my fellow ISVs / System Integrators, sometimes this world is not that utopist place that we wish for, so check out these points to see if going into FDD makes sense for you:
1) If you have the slightest belief that you won’t have a perfect level of communication with your customer during the development timeframe of your project;
2) If you’ve already realized that sometimes, and let’s just say sometimes user stories will differ from user expectations at the end of the project (most important if number 1 could happen)
3) If you believe that someone in your development team will skip a simple task like: writing unit tests, pair programming, and again excellent communication with your customer
4) If you want to keep a clear track the status of your project
5) If you have want to have a wish list for your project before you start coding
If you think at least one of this points could exist in your organization I strongly encourage you to read more about FDD.
I’ve finished setting up a SharePoint Portal 2003, Project Server 2003 environment to keep track of our projects and I just want to say this is the most beautiful expression of an integrated platform I’ve ever seen. I now dream with that “Choose methodology combo box” or “Sort by Iteration button” or “Current Issues list associated with lines of code in SharePoint” that you can see in the Visual Studio 2005 Team System Demo.
The wait has been to long now… (I’ll let you know about my experience driving FDD on the Microsoft Collaboration Platform using CVSJ)