Quick Inquiry

Top 9 facts to know about Feature Driven Development

Top 9 facts to know about Feature Driven Development

What is Feature Driven Development?

Technically, FDD is said to be:

  1. Client-centric
  2. Architecture-oriented
  3. Iterative
  4. Incremental
  5. Pragmatic

This software development process is 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:

  1. Organizations who are trying to passage to iterative approach from a phase-based approach.
  2. 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 with.

Features of using FDD:

  1. Cross-functional
  2. Collaborative
  3. Builds an object model of the domain problem.
  4. Focus on Domain Modeling.
  5. Scaling

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 5 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 an overall Model: An overall model of the domain is built. 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. This is done on the basis of the information collected in the previous phase. These features should be valuable to the client and these would be guiding the project.
III) The plan by Feature: This step basically includes a development plan where the order of the sets will be realized. 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: A series of iterations are launched in this step. They include tasks such as detailed modelling, programming, testing, and packaging of the system.
V) Repeat step 4 until no features exist.

2.  Short Iteration Process

An overall model of the domain is built in the first step itself. The features are then built through various “design by feature, build by feature” iterations. These iterations result in such features which are useful from the clients perspective of development.

3.  An Agile Methodology

With businesses hurrying for results within the stipulated time, the two week limit of FDD has to be met. A feature is built within 12 days. But if this wasn’t met, then these features will be later on divided into an equal volume of features unless the 2-week rule condition is met.

4.  Ownership of Class

  1. Class ownership is one of the most noticeable features of FDD.
  2. Each class is built with a set of features which is assigned to a developer.
  3. The reason behind this is whatever it takes while implementing the features into a class is solely the responsibility of the developer.
  4. Due to this, the role-based tasks retain their reliability and authenticity which in turn enhances the processes.

Read also: How Can AR/VR Help You In Increasing The B2B Sales?

5.  Methodologies at it’s best

  1. The methodologies like Scrum and Extreme programming are methods in Agile format.
  2. FDD comprises both XP and Scrum.
  3. Since the features of FDD achieves fast results, functional resources are brought under the same roof.
  4. UML color standards are also followed within FDD approach 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 tangible results in a short span. This, 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 own 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 component separately.

9.  An Inclusive Methodology

  1. If offerings are considered, FDD is comprehensive in its scope and range.
  2. Thus FDD becomes your companion as per different project needs.
  3. Some of the qualities of FDD are relevancy, comprehensive reporting to keep all in the loop, and so on.
  4. This enables alignment and iteration of tasks. 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 5 stages are practised of FDD.
  • The risks are reduced 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 is obtained by costing the feature leads.
  • Allows team working in parallel.
  • Well defined tracking and reporting capabilities.

Comparison of FDD with other Agile methodologies:

FDD Vs. XP
Points of DifferentiationXPFDD
Project Size3-122-250
Units of PlanningUser StoryFeature
Code OwnershipCollectiveIndividual
Domain ModelingShared MetaphorColor Modeling
Collaborative ConstructionPair ProgrammingFormal Inspection
Development TestingUnit Testing/Test Driven DevelopmentUnit Testing
Integration TestingAutomated Acceptance TestingManual Testing
BuildsContinuous IntegrationDaily Builds
FDD Vs. SCRUM
Points of DifferentiationScrumFDD
ApproachIterative IncrementsIterative
Time Period for Iteration2-4 weeks2 days- 2 weeks
Team SizeAll SizesMany members and more than one team
Suitable Project SizeAll types of projectsMore complex projects.
User InvolvementInvolvement through the product owner.Involvement through reports.
DocumentationOnly basic documentationDocumentation is important
Major PracticesSprint, Product and sprint backlog, scrum meetings.UML Diagrams

Drawbacks of FDD

  1. It is not powerful in the case of smaller projects.
  2. There is more reliance on the chief programmer as he has multiple roles like a coordinator, mentor and lead designer.
  3. No written documentation.
  4. Individual code ownership is promoted rather than team ownership.
  5. No well-defined iterations as others have.
  6. While working on the old systems where there is no system model, the model-centric aspect has a huge impact.

To Wrap!

The entire idea of Feature Driven App Development surrounds along the lines of Agile methodology where different teams are assigned to different models. 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.

hire-ui-ux-application-developer

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.

Harikrishna kundariya

Harikrishna kundariya

Harikrishna Kundariya, a marketer, developer, IoT & Blockchain savvy, designer, co-founder, Director of eSparkBiz Technologies, an IoT app development company. His 8+ experience enables him to provide digital solutions to new start-ups based on IoT and Blockchain. A Blockchain development company, eSparkbiz has reached to greater heights with his immense contribution.

Have an App Idea?

Get your free consultation now

Get Your Free 20-Minute Website Discovery Consultation

To explore how we can help you create a sales weapon that’ll capture and convert more customers, fill out your details below and we’ll be in touch within the next two hours.