I was researching on BDD, TDD and DDD and came across FDD (Feature Driven Development), after all:
- What is FDD?
- Does it have any relationship to BDD, TDD, and DDD?
I was researching on BDD, TDD and DDD and came across FDD (Feature Driven Development), after all:
It is one of the many development models created in recent decades to make the software development process better. None of them have clear proof of effectiveness and none is very different from using good general sense about project management, each with its positive and negative bias. The only point that really sets you apart from other well-known ones is that you do not have such well-done marketing and cause / consequence does not have wide adoption, it creates a vicious cycle.
As the name says it focuses on specific features of the application. Although it preaches being an agile methodology, as everything seems to have to be to succeed, there is no clarity that is tied to small interactions, but it seems to follow the original basic precepts of what is agile, which almost anything fits. p>
It tries to compartmentalize the project more or less as it does with the code, causing each feature to have an owner who is responsible in isolation. The other project members do not need to understand anything other than the public contract they need to interact with the component. More or less as with any project, including frameworks and known public libraries. The question is who can put a hand on it. What is cool, but depending on the size of the project this makes little sense and is even unfeasible since teams are not stable, which ends up being a problem.
The important thing is that everything is thought of as feature centrally. There is a flowchart of Wikipedia :
Directly has nothing to do with these other techniques or methodologies, but can be used together.
I usually do not like these things that end in DD because of the way they are created. They may be useful, but they are not fundamental as people believe, and it changes little how you develop software if you know what you are doing.
That is, it's just another little handbook on how you can manage your project, study it a bit, and decide if it's useful to you more than another way. If you think so, go deeper, apply, test, improve, and see that it did not give any benefit, that if you stop using it will have more benefits, do not hesitate to quit.