Agile Methodology – Why Feature Driven Development is Considered Agile

agiledevelopment-methodologies

In several places Feature Driven Development (FDD) is called an Agile methodogoly – e.g. the Wikipedia entry on FDD.

Yet in general, to be considered FDD it seems the following requirements have to be satisfied:

  • Coloured UML has to be used (but documentation isn't necessary);
  • Instead of pair programming the team is divided by software features;
  • refactoring is discouraged or, at least, isn't a task with explicit scope;
  • unit testing is discretionary, the team leaders can decide;
  • the work flow has to pass through the five FDD phases;

On the flip side it seems to me that Agile is

  • UML is an optional tool
  • Tests are documentation
  • Tests are obligatory
  • refactoring is a consequence of the change requests of the customer and it isn't discouraged.

Am I wrong with my understanding of either concept?

Best Answer

Maybe this link will explain more of the details. FDD came before the Agile Manifesto, so don't always think you have to practice XP or Scrum to be agile or no one considered the benefits long before.

From your wikipedia link:

"Its main purpose is to deliver tangible, working software repeatedly in a timely manner."

Isn't that the whole point of being agile? Like BDD, FDD isn't appropriate for all projects. You may be the biggest UML hater on the planet, but there could be a project that will be eaiser to manage if you have a few.

Look at the reasons/problems solved by certain methodolgies. What aids you in being agile in one type of project could hold you back in another especially if you think the way to not rely on documentation, contracts, etc. is to exclude them completely.

Related Topic