What is Feature Driven Development?
Technically, FDD is said to be:
Here, the software development process amalgamated with agile methodology.
In FDD the project is divided into features. As per an essay on FDD and agile modeling, features are small, client-valued function in the form of <action><result><object>. For instance, “Calculate the total of a sale,” “Validate the password of a user,” “Authorize the sales transaction of a customer.”
FDD is desirable for:
- Organizations who are trying to passage to iterative approach from a phase-based approach.
- Another factor that organizations are worried about is post-transition. Even after trying to switch, the thought of getting rid of all tasks and assignments are something they are not comfortable.
Features of using FDD:
- It builds an object model of the domain problem.
- Focus on Domain Modeling.
Aren’t you curious to know more about Feature Driven Development and how it is beneficial to your company?
Let’s dive in details.
1. The five main activities in FDD
The 5 main activities in FDD are listed below:
- Develop an overall model
- Build a Features List
- Plan by Feature
- Design by feature
- Build by feature
I) Develop a global Model: Firtsly, you need to build the whole model for domainA whole model of the domain . The reason is to define the scope of the system and provide a common understanding of the system.
II) Build a features list: Once the overall model is built as mentioned in the earlier phase, in this step features have to be constructed. You can do it by the information collected in the previous period. These features should be valuable to the client and these would be guiding the project.
III) The plan by Feature: This step includes a development plan where one can find the order of the sets. Here it will be planned which chief programmers are responsible for which feature sets and which class owners are responsible for each class.
IV) Design by Feature and Build by Feature: Here, there is a launch of series of operations. They include tasks such as detailed modeling, programming, testing, and packaging of the system.
V) Repeat step 4 until no features exist.
2. Short Iteration Process
In the first step itslef, we build an overall model of the domain. The features are then made through various “design by feature, build by feature” iterations. These iterations result in such elements which are useful from the clients perspective of development.
With businesses hurrying for results within the stipulated time, you have to meet the 2 week limit for FDD. You need to build all the features within 12 days. But if wasn’t the case, then these features will be later on divided into an equal volume of features unless you meet the 2-week rule condition.
To know more in detail about how to implement the agile methodology in app development, you should Hire Dedicated Developers from eSparkBiz. He/She will be able to guide you regarding this subject.
4. Ownership of Class
- Class ownership is one of the most noticeable features of FDD.
- You need to build each class with a set of features which the developer knows.
- The reason behind this is whatever it takes while implementing the features into a class is solely the responsibility of the developer.
- Due to this, the role-based tasks retain their reliability and authenticity which in turn enhances the processes.
5. Methodologies at it’s best
- The methods like Scrum and Extreme programming are methods in Agile format.
- FDD comprises both XP and Scrum.
- Since the features of FDD achieves fast results, useful resources are brought under the same roof.
- FDD approach follows UML color standards as it makes the process trackable and comprehensible.
6. Results obtained are tangible
Since FDD has an incremental feature, the main focus is on developing features one by one. The advantage of this is the achievement of actual results in a short span. It, in turn, leads in confident proceedings with their plans with quality results.
7. Feature Teams
FDD has a concept of feature teams who have their tasks and responsibilities. Design decisions can be contributed freely as per the requirements.
8. Scaled to large projects
Feature Driven Development allows adding different modules and components in the project while development of the same thus providing flexibility. Another factor that hasn’t to be mind is about the consistency of the part separately.
9. An Inclusive Methodology
- If offerings are considered, FDD is comprehensive in its scope and range.
- Thus FDD becomes your companion as per different project needs.
- Some of the qualities of FDD are relevancy, comprehensive reporting to keep all in the loop, and so on.
- whole enables alignment and iteration of functions. Resources for the tasks are assigned for gaining maximum value and fast response for achieving optimum results.
What are the applications of FDD?
- Systems where businesses change rapidly during long projects.
- For web design and web development projects
- To build and design software.
- For an enterprise that uses application life-cycle management solutions.
Advantages of FDD
- With a shorter ramp-up time, the staff can be recruited if the five stages are practiced of FDD.
- You can reduce the risk due to iteration, and small chunks build up.
- While developing an entire model, two factors are kept in mind- clarification of the requirements for future phases and a better understanding of the entire system.
- Accuracy is another factor that one can obtain by costing the feature leads.
- It allows team working in parallel.
- Well defined tracking and reporting capabilities.
Comparison of FDD with other Agile methodologies:
FDD Vs. XP
|Points of Differentiation||XP||FDD|
|Units of Planning||User Story||Feature|
|Domain Modeling||Shared Metaphor||Color Modeling|
|Collaborative Construction||Pair Programming||Formal Inspection|
|Development Testing||Unit Testing/Test Driven Development||Unit Testing|
|Integration Testing||Automated Acceptance Testing||Manual Testing|
|Builds||Continuous Integration||Daily Builds|
FDD Vs. SCRUM
|Points of Differentiation||Scrum||FDD|
|Time Period for Iteration||2-4 weeks||2 days- 2 weeks|
|Team Size||All Sizes||Many members and more than one team|
|Suitable Project Size||All types of projects||More complex projects.|
|User Involvement||Involvement through the product owner.||Involvement through reports.|
|Documentation||Only basic documentation||Documentation is important|
|Major Practices||Sprint, Product and sprint backlog, scrum meetings.||UML Diagrams|
Drawbacks of FDD
- It is not powerful in the case of smaller projects.
- There is more reliance on the chief programmer as he has multiple roles like a coordinator, mentor and lead designer.
- No written documentation.
- Individual code ownership is promoted rather than team ownership.
- No well-defined iterations as others have.
- While working on the old systems where there is no system model, the model-centric aspect has a considerable impact.
The entire idea of Feature Driven App Development surrounds along the lines of Agile methodology where different teams are for different models. From now you will see, Custom App Development company adopting this practice and also getting rewards for that. Practices of Agile methodologies form the base of applications of FDD. That’s all from my side. If you want to share your ideas do comment in the box below.
Disclaimer: We at eSparkBiz Technologies have created this blog with all the consideration and utmost care. We always strive for excellence in each of our blog posts and for that purpose, we ensure that all the information written in the blog is complete, correct, comprehensible, accurate and up-to-date. However, we can’t always guarantee that the information written in the blog correct, accurate or up-to-date. Therefore, we always advise our valuable readers not to take any kind of decisions based on the information as well as the views shared by our authors. The readers should always conduct an in-depth research before making the final decision. In addition to these, all the logos, 3rd part trademarks and screenshots of websites & mobile apps are the property of the individual owners. We’re not associated with any of them.