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

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:

  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.

Features of using FDD:

  1. Cross-functional
  2. Collaborative
  3. It 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 five main activities in FDD

5_main_activities_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.

3.  An Agile Methodology

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

  1. Class ownership is one of the most noticeable features of FDD.
  2. You need to build each class with a set of features which the developer knows.
  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 methods 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, useful resources are brought under the same roof.
  4. 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

  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. 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
Project Size 3-12 2-250
Units of Planning User Story Feature
Code Ownership Collective Individual
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
Approach Iterative Increments Iterative
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

  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 considerable impact.

To Wrap!

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.

Harsh Kundariya

Harsh Kundariya

Passionate about everything happening in the field of Enterprise Mobility. The Co-Founder of eSparkBiz @Mobile App Development Company where you can Hire Mobile App Developers.Interested in exploring various aspects related to Mobile Apps. Curious about knowing each everything that happens in the world of app development. It has landed him to be among the top-notch Entrepreneurs with 6+ experience in India and USA. Penning down his knowledge in the domain of mobile.

Search

Follow us

Subscribe Newsletter

Call us Today

telephone

Got any Questions?
call us Today!

+1 408 850 1488 [email protected]

Related Post

App Designing Rules That Every Designer Should Be Aware Of

App Designing Rules That Every Designer Should Be Aware Of

The successful mobile application requires an extraordinary amount of hard work from designing and development teams. The major reason behind that is, they are following…

Security Issues App Developers Need To Deal With While Developing a Mobile App

Security Issues App Developers Need To Deal With While Developing a Mobile App

In this era of software and technology, we are all aware of the role of mobile applications.  However, with this amazing technology, there also some…

Why Google Has Added Kotlin As Official Programming Language For Android?

Why Google Has Added Kotlin As Official Programming Language For Android?

Kotlin is a new programming language developed by the developers of the Android Studio (Jetbrains). Lately, Kotlin had created quite a buzz in the software…