Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why should I use Feature Driven Development? [closed]

Extreme Programming, Scrum and Test Driven Development definitely seem to be the most popular Agile methods at the moment. But someone recently suggested that I take a look at Feature Driven Development.

Have you ever used this method with any success? What are the advantages of using it?

like image 309
Dennito Avatar asked Sep 02 '08 20:09

Dennito


People also ask

How is FDD different from scrum?

How is FDD Different from Scrum? FDD is related to Scrum, but as its name implies, it's a feature-focused method (as opposed to a delivery-focused method). Features are a foundational piece of FDD; they're to FDD what user stories are to Scrum: Small functions that are, most importantly, client-valued.

How does FDD differ from other agile methods?

Differing from others, FDD modelling is a cross-functional, iterative, and collaborative activity. The team members (development, domain experts, and chief programmers) work together to compose a model for the domain area and are guided by a Chief Architect.

What is an FDD and its purpose?

The purpose of the Franchise Disclosure Document (FDD) is to provide prospective franchisees with information about the franchisor, the franchise system and the agreements they will need to sign so that they can make an informed decision.


2 Answers

FDD is what I like to think of as a wrapper methodology, in that it allows you to apply a method to manage projects at a very high level, but it still allows you to use other methodologies at a lower level.

FDD's focus is on being able to set estimates and schedules and to report on the status of a project as a whole, or at a very granular level, but it doesn't prescribe a specific method to apply in order to create the schedule, leaving that up to you to decide. The idea is that you can look at your project and state with some certainty what the project status is, whether you are on time, slipping, early and so on.

I use FDD as a means to organise my projects into manageable stages, so that I know WHEN to sign off and commence any given stage. But by itself, FDD would be pretty useless. For example, I personally use Evidence Based Scheduling and a combined BDD/TDD as elements of a development processes that are managed under a kind of FDD umbrella. Personally, I couldn't do the full XP, or SCRUMM without running into problems because my projects and team would be hindered if they were forced to engage in practices from other methodologies that don't add value to our own unique circumstances.

In any case, it is better not to fixate on any given methodology, because the needs/conditions of the company and project are likely to change regularly, and you need to be flexible in how you approach managing projects if you want them to be successful. No single methodology is a silver bullet, so the trick is to determine which methods work for you and tune your methodology to suit your individual needs. This is what being "Agile" is fundamentally about.

like image 60
S.Robins Avatar answered Sep 16 '22 20:09

S.Robins


FDD is an older methodology. It has lot's of the ideas of other agile methodologies and misses some of them. Like Scrum it's a bit management-focussed and I think you need some elements from XP for practical implementations.

FDD is certainly interesting to look into. But just like Scrum and XP I think you have to understand the mechanics and not just implement the practices to be succesful. If you just "do FDD" or "do Scrum" you're not as adaptive as you should be.

The things I would look into if you want to understand agile would be

Scrum or FDD to understand what management can get out of agile.
XP to understand how enable agile from a technology perspective.
Crystal Clear to understand the communications aspects.
Lean Agile to get a completely different perspective on agile methodologies

I wouldn't call TDD an agile methodology by the way. It's an practice from XP but not a complete methodology per se.

like image 27
Mendelt Avatar answered Sep 20 '22 20:09

Mendelt