FDD is a software development framework. FDD stands for "Feature Driven Development". It is software which uses a lightweight model to organise, progress, and implement the features required. FDD is said to be a feature-driven approach that provides its client with functioning software that has timely updates. It has a feature for identifying errors swiftly and making upgrades to the project on a regular basis. This feature makes the whole process efficient.
FDD was designed in 1997 to fulfil the necessities of a 15-monthly developmental project driven by 50 people. A five-process formulation for developing software started which led to a successful project in Singapore which led to more implementations of further projects. In 1999, a book named "Java Modeling in Color with UML" was published which showed the description and discussions of FDD.
A complete process of FDD takes place in short iterations. The work in every iteration finishes in due time and all the projects get stored at a good speed irrespective of how small or large their size is.
FDD has customer-centric features. All the features are inspected by the client first. Only after the complete inspection, they are pushed into the main source code.
The frequent releases of any software are worked under FDD. In this way, the success of every project is maintained along with further future developments.
Building of feature list and domain model is the initial focus activity in an FDD lifecycle.
Building of feature list and domain model designing takes about 70% of the total effort.
There are many roles under the implementation of any project -
Manager of Domain
Release Manager
Language Expert
Build Engineer
Tools Manager
Administrator of System
Technical Writers
Deployer
Testers of final touch
The working of FDD takes place in five major steps.
At first, the building of an overall model takes place.
After that, a list of features to be added to the project is built.
The planning of the project.
Then the features to be added are designed.
Lastly, the software is built by feature.
There are many advantages of FDD -
FDD provides continuous reports regarding the project which, at all levels, helps with the progress tracking of the project easily.
Since the designing of the project takes place in smaller segments, the risk of things going wrong decreases.
The testing and analysing of software before its release gets easier.
The management of multiple teams working on large projects becomes much easier and doable.
Since the development of the project gets divided into five stages, the process becomes easier to manage.
With segmentation in features, the accuracy in the estimation of expenses increases.
The whole team working on the project can see the entire process without it being hidden from deployers, managers, and developers.
With the advantage of pre-developed standards, the implementation of strategies attempted by the team becomes fast and swift.
Certain disadvantages of the use of FDD are -
The support of FDD with smaller projects does not work well. It is more applicable to complex projects.
The coordination of managers, mentors, programmers, and lead designers is very much required. Without them coordinating with each other the whole process will start to burden some of them.
The proper documentation of the project does not exist which causes problems in the future.
Only highly skilled leaders with great experience should use this approach. It is not recommended for people who have a “learning with working” attitude.
A software framework is a model of software where software applications are made. These applications can be web applications or stand-alone applications like phone apps.
The ability of people working in an organisation to understand the opinion of their customers, and their expectations. The motive of customer centricity is to make all the decisions considering the customer as a focus. Customer satisfaction is considered the topmost priority and a loyalty is shown to the customer.
The written implementation of logic, design and features of an application in any programming language is known as the source code.
The end user is the major difference between the two. In the former, the involvement of an actual user is present whereas, in the latter, the product owner speaks for the customer.
It is a framework that emphasises software development. Scrum teams with associated Scrum Roles, Scrum Ceremonies, Scrum Rules, and Scrum Artefacts together constitute a Scrum Framework.