📜 ⬆️ ⬇️

Briefly about software development methodologies: Waterfall, Lean and Feature Driven Development

In our past material, we wrote about software development methodologies that help streamline workflows. Then it was about Scrum, Kanban and extreme programming. Today we will talk about Waterfall, FDD and Lean - we will evaluate the pros and cons of the approaches and take a look at the experience of the organizations that use them to help your companies optimize their processes.


/ Flickr / Hamza Butt / CC

Waterfall


Waterfall, or cascade model, is a traditional methodology that has existed since 1970. In it, the development of a project is divided into stages: from the analysis of system requirements to the release of a product.
')
Each step is a separate software development phase, and the team must complete one phase before moving on to the next. In the “clean” implementation of Waterfall, it is forbidden to return to the previous stage - you can “go only with the flow” to complete the full development cycle. Quora users compare this model with a train that moves from station to station and cannot turn back.

Initially, Waterfall author Winston Royce (Winston Royce) cited a cascading model as an example of an inefficient software development method that leads to errors and low-quality products. However, later in his article he brought the “to the mind” methodology, noting feedback and transitions from testing to writing code, etc.

According to a PMI study, 12% of companies use the Waterfall methodology on an ongoing basis, and 40% of respondents say that they are often approached. And according to LiquidPlanner, a cascade model is used by 25% of organizations.

The number of stages in Waterfall varies from company to company, but the general approach is as follows :


Among the advantages of the methodology can be identified clear structure and predictable workflow. This makes it easy to estimate costs and estimate deadlines before the project starts. Residents of Quora argue that such subtleties are important for financial and insurance companies or companies that develop hardware.

In addition, the model involves documenting each stage. This helps to create a base for future projects. Also, a large number of statements allows you at any time to show the customer or management at what stage the product is.

However, there are disadvantages. Clients often do not know what they really want until they look at the prototype. And by Waterfall you need to determine all the requirements in advance, so there is a risk to miss something. The study of the development process of the site of the company Ericsson AB showed that the cascade model led to confusion, and 26% of the initial requirements were useless.

However, the main drawback of Waterfall is making changes. The product is tested at the end of its life cycle, and it may be too late to edit anything. It was the cost of making changes that prompted Toyota to think about switching to another development methodology.

According to Satoshi Ishii (Satoshi Ishii), the chief project manager of the company, the correction of defects found after production costs 1,000-1,000,000 times more. Therefore, Toyota decided to abandon Waterfall and go to Lean, which we will look at next.

Lean


The term means "lean development." Its roots go deep into the history of Toyota and its approaches to solving problems. Companies make only those changes that are beneficial, cost-effective and take up no more than 30% of the planned time. This helped the Japanese company learn to switch conveyors to the production of another model in a matter of hours, while other automakers needed weeks.

The Lean methodology was applied to the development of Mary (Mary Poppendieck) and Tom Poppendieck. They wrote the book "Lean Software Development". Additional information can also be found on their Lean website .

According to a PMI study, 8% of companies constantly use Lean principles, and 26% often refer to them. Principles of Lean:


Among the advantages of the methodology distinguish quick release of the product. Joe Foley, manager of Intel Fab Operations in Leixleep, says that it took 14 weeks for the company to start producing new chips. Thanks to the principles of Lean, this process now takes 10 days.

At the same time, when the team follows the principles of lean development, it does not just perform the tasks, but seeks to make the product with the least amount of errors. In its study , the Air Force company found that Lean increases software development speed by 37% and reduces the number of bugs by 24%.

Also, according to a Lean Business Report study , one of the ten advantages of the approach is a reduction in the cost of projects - 27% of IT companies reduced costs by introducing Lean principles.

However, they are not suitable for everyone. The GlobalLuxSoft team notes that lean development should be applied only if experienced developers are connected to the project, as learning on the go is impossible and puts the creation of a product at risk.

All decisions must be supported by analytical data and monitoring results of processes, otherwise the team runs the risk of plunging into too many changes and forgetting about the main goal of the project. Here you can refer to the experience of Toyota: tight control from the side does not allow developers to deviate from priorities.


/ Flickr / Sebastian Sikora / CC

Feature Driven Development


Feature driven development (FDD) is a methodology that unites best practices and focuses developers on functional elements (features) that are useful from a client’s point of view. This link can be used to find an approximate FDD development algorithm. According to research , 11% of companies constantly use Feature Driven Development, and 31% use this methodology from time to time.

The creator of FDD, Jeff de Luca (Jeff De Luca), first proposed the methodology in 1997, when he was looking for the best solution for developing software for a bank in Singapore. Then he provided a combination of 5 processes:


The success of the project depends on the experience and knowledge of the lead programmer. In FDD, he plays all the main roles: leader, mentor, analyst, and so on. At the same time, the methodology was created for long-term projects, therefore, as residents of Stack Overflow note , it makes no sense to use it for small tasks.

However, there are pluses. Continuous reporting on progress at all levels helps to track progress and results. This allows you to regularly update the project, identify errors and provide the client with information at any time. And one of the residents of Stack Overflow claims that the main plus of FDD is the ability to assess at any time whether a project is behind schedule or moving faster.

As already noted, FDD is used in large-scale projects, since at the first stage, a common model is being developed to understand the product. The same property helps to attract new developers to work. At the same time, a deeper understanding of the project requirements and customer expectations reduces the risk of unwanted “surprises”.

PS What else do we write in our corporate blog:

Source: https://habr.com/ru/post/341932/


All Articles