Application development using an agile or waterfall method
Application development using an agile or waterfall method
Agile and waterfall methodologies are both popular for application design and development projects. At the beginning of a project, it is worth considering which method is most suitable for
- the task,
- the client's business needs,
- organizational structure, work culture, and
- available resources.
The waterfall method is ideal if the project is well defined and the available budget and time are also limited.
In contrast, the agile method was invented for projects where the exact scope and thus the time required for implementation are not yet known. For example, the implementation of a new water cleaning management software from idea to market launch.
But let's take a closer look at the two approaches!
In waterfall we plan a project in advance and divide it into steps, which follow one after the other:
- Definition of needs, survey, collection of information
- Design - UX, then UI design, functional specification, system design
- Application development - implementation of plans
- Testing - we check the correct operation, look for errors and incomplete operations compared to the plan, and then correct them
- Activation - we publish the completed application and make it available to users
- Operation - operation of the finished application
The steps assume that we are only moving forward in the project and define everything accurately in a phase, before we move on.
In agile projects we are off the beaten track
The work proceeds in sprints and phases, and this is how our product develops step by step. The agile project evolves flexibly, we try unique and risky solutions and often modify them.
In the agile project, the work takes place in sprints in short consecutive cycles: survey, planning, implementation, testing, feedback.
The members of the team - pm, designer, developer, tester, customer - work closely together with great autonomy, jointly define relevant functions and operations and define priorities representing the user's perspective.
Some characteristics of an agile approach
- Prioritization - the order of deliverables is determined based on business added value
- Self-organizing - the members of the agile team divide among themselves how to deliver the task according to given gardens and resources. This also results in a greater degree of cooperation.
- Time frame (Team-boxing), the team must complete the tasks it undertakes within the specified time frame.
Of course, both methodologies have their advantages and disadvantages.
Advantages of Waterfall
- The project runs step by step, and you can move on when everything is done. Any problem is immediately visible and affects the progress.
- Goals and deliverables are clear to all participants at the beginning of the project.
- During the project information is well documented so it can be easily hand over to new participants.
- The schedule and final deadline can be planned and changes can be predicted
- budget can also be planned in advance
Disadvantages of Waterfall
- Any major conceptual change is difficult to manage. Because of the alteration, you probably have to go back to the previous step, which causes an unwanted delay and an increase in costs.
- The end user does not participate nor represent in the project, so a faulty product concept reveals too late.
- The client can only test the application at the end of the project and implementation diverts easily from original plans.
Benefits of agile
- More satisfied users - since users are also involved in the development of the product concept, their points are also present during the implementation.
- Higher quality - more attention is focused on implementation in short sprints and iterations than in longer runs.
- Flexibility - frequent and continuous feedback and new aspects can also shape the scope of the project. This adaptation is the essence of the agile methodology.
- Predictability - the project team works in short, two-week sprints, where it is easy to plan tasks, resources, determine costs, and monitor progress.
- Low risk - team members constantly report on progress, problems and obstacles, which can be dealt with immediately.
- Effective communication - team members coordinate their tasks on a daily basis, define goals together, and constantly see each other's work.
Disadvantages of Agile
- For a larger project, it is not possible to plan resources and expenses in advance, as the scope is uncertain. This must be accepted by the internal and external customer.
- Incomplete documentation - the team members are constantly discussing, but since the discussed things are implemented immediately, this is often not documented. This is a disadvantage when a new team member arrives, who has more time to pick up the thread.
- Fragmented final result - if several smaller teams are working on a large project, the final result will be completed faster, but it is not certain that the parts will come together at the same time to form a consistent final result.
- There is no certain end result - as the product is constantly developing based on new needs and ideas, we don't know when it will be completely finished.
Examples of agile projects
- A technological product where deliverables change rapidly due to feasibility
- Implementation of a start-up service concept.
- A project team working closely together with the client and other external partners
- Several teams work on interdependent tasks, where frequent coordination is necessary for a successful project.
When do we work in a waterfall?
- For applications that provide critical services, where a lot of value or human life can be at stake and there is no room for error.
- In the event of a need that is precisely known or easily assessed. For example, a loan calculator on a web interface.
- Planability, project cost and deadline are important from a business point of view
Do you have a project?