Agile And Waterfall Methodologies
Agile
Agile is another popular project management methodology (especially for IT projects) that is "younger". It is characterized by the ability to cope with frequent changes in requirements or fulfill unclear initial requirements, as well as change the scope of the project as long as its objectives are achieved.
It is essential to work in stages (iterations) where at the end of each stage, an assessment of the current result is made, and changes, if necessary, for subsequent iterations are defined so that the final product is adequately met by the applicant's needs. To this end, it is crucial that there is a continuous collaboration between project staff and the applicant.
Agile is not only a standalone project management method, but it is also a framework of values, on the basis of which other methodologies are developed, the more popular of which are:
Scrum
The Scrum framework is the most popular of the Agile methodologies. Typically, the project is implemented by a small team (or several small teams) led by a scrum master who has the primary task of "clearing" obstacles to the project and thus maximizing team effectiveness. The process consists of separate iterations called sprints, lasting one to four weeks. At the end of each sprint, the team has a working version of the product that includes all completed backlog tasks.
Kanban
Kanban - Translated from Japanese 'signal card' - suitable for project management with a 'hard' deadline. It uses a visual representation of tasks (such as maps) and moving them through different stages (on a dashboard), with which a possible delay is quickly identified. It is also based on the capacity of the team to do a certain amount of work for a certain period.
Agile methodologies tolerate changes in requirements and their priorities, enabling adequate solutions to be implemented in the short term. Creativity, development, and self-organization of the project team are encouraged, without focusing on planning and documentation.
Significant involvement of the product owner in the process is required, including building good relationships with the development team. Due to frequent changes, some functionality may be implemented several times, the predictability of completing larger tasks is reduced, and there is a possibility of unplanned expansion of scope. No documentation is provided.
Waterfall
Waterfall - a traditional (classic) project management model, in which the execution phases are arranged sequentially (running like a waterfall). All project activities have been scheduled and approved in advance. Each of the stages in the development process begins after the previous phase is fully completed. In strict adherence to the methodology, reversion to the previous phase for the alteration of the created product due to changing requirements is not allowed.
It is suitable for projects with a well-defined scope and in which a change in requirements is unlikely and not critical. The finished product has detailed documentation and each element of it meets the customer's task and has been thoroughly tested.
However, it may be that the end-product does not meet the client's expectations or that changes have occurred between the start and end of the project that makes the end product inadequate. In this case, changing it (if possible) is expensive and time-consuming. Considerable efforts are made to document the project, rather than developing it, following specific requirements does not stimulate the creativity of the team.
Summary
It depends on the project concerned which of the methodologies is more appropriate to choose:
For example, the construction of a building follows the waterfall methodology, because no roof can be built without the last floor is ready, the number of floors/windows, etc., cannot change during the construction process.
If a certain project has very basic initial requirements and does not need to comply with strict regulations, the agile methodology will stimulate creativity in the team, will allow detailing the requirements in the work process, and each iteration will be evaluated if it goes in the right direction and it will generally reduce the time to create one.