Scrum Methodology in the Agile Project Management
Today market is affected by uncertainly and sudden changes, in these conditions most of the models used in the 20th century to manage and develop projects are not still efficient. Waterfall model, probably the most famous between them, especially for the software development, is characterized by a strict “frame” which can’t cope with the turbulent needs of actual market.
In recent years innovative ways to manage projects are been developed with a particular focus on the flexibility of these methods in order to cope with the customer’s and market’s needs; surely Agile Project Management is between them. APM embraces the principles of lean production trying to apply them in the software development to avoid waste and increase responsiveness to change. It represents the solution to the unpredictability of the market in which customers require the right product for the right price at the right time, and the only way to do this is to have the capacity to welcome change even late in development.
In this article it will be introduced Waterfall model applied to Software Engineering with its main advantages and disadvantages. Then they will be explained the basics of APM and the reasons which made this model better than the Waterfall in the software development. Finally there will be a focus on the Scrum methodology which is used in the Agile Software Engineering.
Before APM: the Waterfall model
In the last thirty years of 20th Waterfall was the most used model to develop product , it was appreciated for its easy and clear way to manage a project. This approach consists in the identification of some consequential steps (Requirements, Design, Implementation, Verification and Maintenance) through which it is possible to reach the end of the project; for every step they are defined requirements, objectives and timing to achieved them.
Soon Waterfall model was applied to software development after adjusting its stages to software engineering. The result was a new list of five steps:
- Requirement Specifications: analysis and identification of the system requirements;
- System design and Software design: a first system planning in particular it is defined the software architecture;
- Implementation and unit Testing: beginning of the development of the single modules of which software is composed. Testing of each separate module;
- Integration and system testing: integration in a one software of all modules and final testing.
- Operation and maintenance: Release of the software to the commissioner and following actions of maintenance ( new release, upgrade, problem solving …);
This way to develop software has many advantages , between them we mostly remember the step-by-step structure of this model that makes easier and clearer the development of the project especially because it allows project manager to understand where he is with the project.
Despite of all these positive features there are some limits which make Waterfall model obsolete in software engineering:
- It is difficult to define all requirements at the beginning of a project, especially for software project in which requirements change through the whole development of the system;
- It is been conceived to follow projects with a linear model, step-by-step, but this doesn’t really happen as projects rarely follow the sequential flow that the model proposes;
- It doesn’t allow to see a working version of the software until the end of the fourth step;
- It doesn’t scale up well to large projects;
- Especially for the software development it is difficult for the customer to define all requirements at the beginning ;
- Customer are involved in the development process of the software only in the first phase;
Essentially this model is incapable to be flexible and to cope with market needs, this is the main reason that makes Waterfall model obsolete for software development.