CALL US
Get Free Quote

Why to choose Feature Driven Development for Software Development

  • Feature Driven Development (FDD) is a software development process centred around clients and architectures to speed up development time and reduce cost. The ‘client’, as referred to in FDD, is a stakeholder or a customer of the project.

Feature Driven Development

Feature-Driven Development (FDD) has gained widespread use, especially in larger organizations. FDD is a software development process centred around clients and architectures. The ‘client’, as referred to in FDD, is a stakeholder or a customer of the project. Although introduced to the world in 1999, FDD was first applied in 1997 on a 50-people project spread over 15 months for a large Singaporean bank. The challenges during the implementation of the project led to the development of five processes—developing an overall model, and listing, planning, designing and building of features. These processes, although slightly modified over the years, have remained the cornerstones of the entire feature-driven development framework. These five FDD steps ensure that teams follow the best of engineering practices as they develop small features over 1- or 2-week iterations. These steps ensure that project development is continuous, and also that new members can be easily added to the team and made to come to speed much faster.

‘Feature’ in FDD

Features are a fundamental part of feature-driven development. They are to FDD what user stories are to scrum: small functions that are valuable to the client. An example of a feature in the FDD context could be “complete the login process”.

History

The primary architect of FDD was Jeff De Luca, who developed the methodology as a process for computer software development. The major objective behind development of such a methodology was reduction in development cost, time and efforts. Since it was developed, the FDD approach, along with its five basic steps, has been continually used to develop enterprise software because it is seen as both agile and pragmatic. FDD combines the key advantages of eXtreme Programming and Scrum with model-centric techniques such as Domain-Driven Design and modelling in colour. Moreover, it can be easily scaled to large teams, thanks to concepts such as Just Enough Design Initially (JEDI) and peer reviews and dynamic feature teams. 

Objectives of Feature-Driven Development

Its main purpose is to deliver tangible, working software repeatedly in a timely manner in accordance with the principles behind the Agile Manifesto. It works in short iterations to deliver frequent releases. The customer or the stakeholder is often involved in the initial design and iterative development reports. 

Core Principles of Feature-Driven Development 

    • Domain Object Modelling: The teams involved in a software development process build class diagrams to identify and describe the objects that are identifiable in a domain, and the relationships they might share. 

    • Development on feature-level: If a particular process or function cannot be implemented within two weeks, it should be broken down into smaller features, which can be managed more easily.

    • Individual Class (Code) Ownership: Different pieces or groupings of code (class) are assigned to different individuals. The owner takes responsibility for the consistency, performance, and conceptual integrity of the class. 

    • Feature Teams: There exist many small, dynamically formed feature teams that work on a single activity. Multiple people work on a single decision or design, before one is chosen as the final.  

    • Configuration Management: Refers to the process of keeping a record of the source codes of all the features and all the classes that have been developed to maintain a history as they are further enhanced. 

    • Regular Builds: ensure that the system is always up-to-date and always ready for client demonstration

    • Visibility of progress and results: The course of the project can be steered using frequent and accurate progress reporting from all levels of the project.

Advantages of Feature-Driven Development 

  • The five-step approach of FDD ensures big projects can move smoothly by getting work done in an easy and fast manner. 
  • Feature-driven development is centred around the standard set for the software development industry. Thus, it deploys the best practices in the industry. 
  • Feature-driven development provides well-defined progress tracking and reporting capabilities. 
  • FDD provides support for multiple teams to work together. 

 

Where Feature-Driven Development Works

Previous software project development methodologies were usually centred around small teams of skilled and disciplined developers. Although such methodologies could be scaled to bigger teams, it was not often without challenges. However, Jeff De Luca’s Feature-Driven Development is designed with the idea of making it scalable to large teams. Smaller teams of developers can be easier to manage and more likely to succeed regardless of the agile method they use. However, in larger teams, not everyone might be so skilled and disciplined. 

To ensure that FDD can be applied to larger teams, FDD uses the “just enough” technique. Under this, planners and reviewers review and modify the assignment of feature sets and classes to developers. However, not all classes are assigned at the same time -- only just enough -- and classes keep on increasing as the project grows. 

How is FDD different from Scrum

Both Scrum and Feature-Driven Development are methodologies for efficient software development. However, FDD is more focused on features rather than delivery. Features are foundational, important components of FDD that are important to clients. In FDD, a feature is delivered every 2-10 days, while in Scrum, a sprint, the equivalent of a feature in FDD, is delivered every two weeks, and sometimes, four.

Other than this, FDD gives more weight to documentation. This makes daily meetings redundant. The teams rely more on documentation, for official communication and problem solving, and do not meet a lot. On the other hand, with scrum, teams meet up on a daily basis. Also, while in FDD, the actual user is viewed as the end user, in Scrum, the product owner is usually viewed as the end user.

Why Choose Evon for Feature-Driven Development

Evon Technologies, an offshore software consulting and development company, has successfully completed several software development projects using methodologies like FDD, Scrum and Agile. By using FDD, Evon Technologies promises an iterative and incremental software development process which combines various industry-recognized best practices into a cohesive whole. Our extensive hand-on experience in software development and availability of skilled resources make us a go-to technology partner for software development. Email us at This email address is being protected from spambots. You need JavaScript enabled to view it. to share your requirements with us, our experts will analyze those and get back to you shortly with solutions best suited for your software development project.

What are the Key Practices to hire a Salesforce Co...
What to consider before Outsourcing your Salesforc...

Related Posts

SEARCH BLOG

development Salesforce CRM offshore software development business offshore software development company software outsourcing application C++ apps web java Cloud computing mobile app development Big Data Analytics web development mobile app development company J2ee cloud custom Big Data app development javascript website project management IT developers IT consulting and software development developer software development Salesforce customization QA Offshore development India Evon Technologies NodeJs Web app development Salesforce Cloud Services consultant Salesforce consulting Software development and testing testing Web 3.0 Automation programming Offshore development Product Development Android development data security MVP Development Progressive Web Apps offshore digital marketing services india iOS apps Salesforce Lightning consulting Python Agile Development Social Media Marketing software development outsourcing Agile product Development mobile project management methodology Salesforce CRM Offshore software development services Salesforce Mobile Development enterprise risk management Joomla developers QA and Testing business analysts Blockchain EmployeeEngagement Salesforce cloud startups DevOps data Salesforce development language digital marketing services sales AI in mobile apps project Real time data data protection Virtual reality accessibility business management Artificial intelligence Start-ups QA services VR Apps Web application Staff Augmentation salesforce apps Popular CMS WordPress Android app development outsourcing Azure mobile app testing task management

Our Team

We are a group of technology experts committed to designing, developing and delivering solutions for our clients, since the year 2006. Our team of 425+ stays ahead of the ever-evolving technology landscape it works in. Thus, we keep honing and expanding our expertise in order to cater to both startups as well as established enterprises. Know more about us here.

Certifications

  •   CMMI - Level 3
  •   ISO 27001 : 2013
  •   ISO 9001 : 2015

Get in Touch

  +91 97199 65550

  +44 203 372 4609

  +1 408 454 6110

 (HR) +91 8266041801

  evontech

 This email address is being protected from spambots. You need JavaScript enabled to view it.

  A- 5, IT Park, Dehradun, Uttarakhand, India, PIN - 248001.

follow us on

We are proud to allocate our CSR funds to support the PM's Citizen Assistance and Relief in Emergency Situations Fund for the FY 2022-23.

PMCares logo
×
We use cookies on our website to provide you with a more personalised digital experience and for analytics related to our website and other media. For more information, please review our Privacy Policy and Cookies Policy.