Project Management Methodologies for App Development: Agile, Scrum and Waterfall
It is no easy task to develop a mobile app for a mobile development company. No matter how simple or technical the app, it requires applying the optimal project management methodology to secure a successful completion of an app.
Business analysts, UX designers, UI designers, sound engineers, and developers all work on a common goal; to deliver a fully functional app.
How they work together in the process is going to affect deliverables, client inclusion, team spirit and overall app quality.
In this article, we’ll look at the 3 most popular approaches used in app and software development; Agile, Scrum and Waterfall. We’ll describe how each works and explain the differences between them.
Any reputable mobile app company should be able to deploy any of the three based on which fits the app requirements best.
- 1 What is Agile project management?
- 2 What is Scrum project management?
- 2.1 The core definition of Scrum
- 2.2 The three building stones Scrum consist of
- 2.3 The advantages of Scrum project management
- 3 What is Waterfall project management?
- 4 Final thoughts
What is Agile project management?
Labeling Agile a project management methodology is not completely correct. Instead Agile is more of a project management philosophy made for software development.
The Agile Manifesto describing the core values of Agile Manifesto was defined back in 2001 and it outline 4 values:
- Tools and processes are not as important as people and communication
- Detailed requirements are not as important as software that functions
- Contract are not as important as frequent customer interfacing
- Sticking to a set plan is not as important as dynamic adaption
An example: it is more important to have talented developers working on an app with freedom to solve the task at hand using the best possible way they know, instead of instructing them to follow strictly defined processes or tools.
In addition to the 4 core values, 12 software development principles were also outlined:
- Deliver software updates on a regular basis to make the customer happy
- Change of plans should be accepted throughout the entire development project
- Accept changes in the project plan also in later phases
- New software releases should happen weekly instead of monthly
- Keep an open dialog between everyone involved in the project
- Build projects based on happy team members and trust their decisions
- In-person meetings are prioritized for all communication
- The best parameter to measure results is the state of functional software
- Development should happen at a reasonable steady rate
- Continued focus on great design and sound technological techniques
- Keep tabs on missed tasks and document it as simple as possible
- Letting the team members make decisions make for the best requirements, UX and UI designs
- Have frequent meetings to discuss ways to improve and adjust work methods as needed
It quickly becomes clear that the core values of Agile is using each member of the development team’s strength and give them freedom to output the best possible result in a way they choose.
A project manager must be able to allow their team more reign to solve the tasks. Micro-management is NOT acceptable in Agile (or should be in any other project management style really).
There’s also emphasis on the importance of not using the old-fashioned management style of dividing people into a hierarchy of importance based on their title. The app development team is an organic entity and everyone’s opinion and contribution is equal.
The advantages of Agile project management
As one of the most popular management philosophies, it’s not surprising that there are many advantages to going with Agile.
It’s such a flexible and team-driven management style that motivates everyone involved to give their best.
Increased customer satisfaction
Closely tied with the third bullet in the Agile Manifesto, the customer is deeply involved in decision making throughout the app project.
This is different from other project management methodologies where the customer is only involved in the initial planning phase and moving forward has limited say in the app development process.
By offering the customer a stake in the development process they get ownership, responsibility and the opportunity to build the app they had in mind in an on-going process, instead of risking their idea being watered down as development progresses without their continuous feedback.
Unparalleled app quality
Using Agile in sprints where apps are built in smaller self-containing pieces, can help quality control more efficiently.
Team members are not focused on the entire project at once. Instead they can focus all their attention to a small section of the app per sprint and give their feedback on smaller pieces. Each sprint is usually divided into a couple of weeks.
Sprints also allow for change requests that will only affect a small part of the app, making the entire app much more robust.
The risk of having a certain part of the app break the app as a whole has also been minimized since every piece is self-contained. If some app features are no longer needed or wanted they can be removed easily and others can be added.
Motivated team members and increased productivity
By giving team members responsibility for their part of the project they experience a heightened sense of pride upon a successful accomplishment.
With the nature of Agile’s focus on smaller self-managing teams, there’s an increased collaboration happening making everyone more comfortable working together and that often affects the performance output.
Flexible metrics and budget control
Traditional project management methodologies often rely on less accurate and less relevant metrics of time and cost estimation and performance measurement. Agile teams use metrics that are more accurate and relevant.
By looking at cycle times (the time it takes to complete one cycle of the overall task) and lead times (the time it takes from the task is started until it’s finished) Agile based project management can provide almost pinpoint accuracy of production efficiency, overall productivity and identify any possible showstoppers.
Another great benefit from Agile is the opportunity to scale app projects in increments.
Sometimes a client may wish to launch soon or doesn’t have the budget to develop a full-fledged app from the get go. The Agile philosophy supports building the app in modules and adding new features as time and budget allows.
What is Scrum project management?
Scrum is another favorite of app development agencies. Like Agile its goal is to divide the project in smaller phases, with ongoing client interaction, and joint decision making.
The main difference between the two is that Agile is based on a set of values, Scrum is utilizing the values of Agile and defining the framework in which the values are used. You can’t use Scrum without using values from Agile, but you can use Agile with other management methods without applying the framework of Scrum.
The core definition of Scrum
Basically Scrum is used where there is a want for a self-managing team, who can distribute the roles and responsibilities among the team members in healthy synergy. Naturally, with the mindset of developing a mobile app as fast, economical and quality-laden as possible.
Scrum teams are usually no larger than 9 people at a time working on a common goal or task. It could be the search functionality in an app, while another Scrum team works on the navigation.
The scrum methodology acknowledges that not everything is understood from the team members at the beginning of the project, and that the team will grow as the project progresses.
Every work phase is divided into sprints lasting 3-4 weeks. There is a daily meeting where team members’ check-in to report on their status, and if they have any challenges they need help with.
At completion of every sprint there is a sprint retrospective to discuss with the project owner whether the sprint has been completed successfully or needs additional work.
During sprints the project is assigned a Scrum Master. He or she is responsible for the overall success of the sprint and will participate in the daily sprint meetings to determine continued improvement of the team members. The Scrum Master is also present at sprint retrospectives along with the project owner.
The three building stones Scrum consist of
There are three basic project tasks in Scrum that every member of the app development team must follow; the product backlog, the sprint backlog and the increment. These three tasks are revisited during each sprint.
The Product Backlog
Every app development project starts out with a Product Backlog. It is a list of tasks that must be completed in sprints and can include app functionality, feature implementations, fixes or changes to the app, similar to having a “to-do” list of what must be done to accomplish a goal.
The project owner is responsible for the success of the Product Backlog. Based on their knowledge of the project, they must revisit the Product Backlog on an ongoing basis throughout all sprints to accommodate the fluid structure of Scrum.
They make changes to the Product Backlog as features change, issues are solved or too much time is spent in the initial sprints of the Product Backlog.
The Sprint Backlog
Product Backlog items, bug fixes, and user feedback needed to achieve the Sprint goal are described in the Sprint Backlog.
In a Sprint Backlog, the features expected for the next increment are listed as well as the associated required work to complete those features. During a Sprint, the backlog is flexible, but the goal of the sprint cannot be changed.
This is the sprint goal and what can be used after completion of a sprint. During app development reaching the product increment often enables the team to demonstrate the functionality of certain features, such as a print button, a map search or other parts of the application.
The advantages of Scrum project management
Scrum is a popular choice among project managers for good reasons.
Since each team member is responsible for their part of the app, it’s easy to see if everyone is meeting their goals or if someone needs help.
Functional app to market sooner
An app can be functional while being developed as it is built in small increments. Because of this it can go to market sooner and start bringing in business and revenue. Bonus of being able to build out the app further without compromising the integrity of the app.
Delivering an app that meets expectations
With the ongoing client involvement, the app is more likely to meet the client’s vision on delivery. In return that makes for a happy customer who is likely to come back for more work.
Lower risk of errors through development
There are daily check-ins of progress and issues are addressed quickly, so no bugs are swept under the carpet but instead swiftly corrected.
What is Waterfall project management?
Waterfall is the traditional true and tried methodology for project planning with a consecutive, linear process.
Contrary to Agile and Scrum it requires solid planning at the beginning of the app project as no prior phases can be revisited upon completion of each app development phase.
The waterfall approach is much simpler to execute as all requirements, functionality, design, development and quality assurance of the app is planned prior to project start and afterwards each step is executed without any changes to the plan.
That means that defining requirements and project planning takes longer with waterfall as they are the foundation for the rest of the app development’s success.
Once the initial requirements and planning phase has been completed, the rest of the phases cascade down like a waterfall. For example, wireframes have to be completed for each app screen before moving on to design and so on.
When the waterfall plan has been approved there is little wiggle room for any changes or a scope change is likely necessary. If this happens it is significantly more complex and will impact the entire app development cycle as later stages likely have to be stopped in order for the changes to catch up.
Due to the nature of having to complete the entire app before you have anything functional to show the client, the risk of them not being as happy with the outcome has increased.
Waterfall project management is not a widely used methodology among app agencies due to the strict nature of the methodology. Where waterfall is most likely to end with success is on smaller app projects, where it’s easier to define the requirements and development phases than a large enterprise app.
Which methodology that works best depends on the app project at hand. It’s something you should discuss both internally and with the client. Choosing Waterfall over Scrum or Agile, even when it’s a small project may not be satisfactory to the client.
If the client expects to see ongoing results through the app development process, which can easily take 6 months or more, Scrum may likely be the better choice. You can build the app in blocks and show completed results every 2-3 weeks.
However, some clients prefer to know the predictability of the waterfall structure up front. They want a set structure throughout the project, so they know what to expect at each milestone date.
With that said, the flexibility and dynamic nature of Scrum and Agile are not to be underestimated and they are notably strong suits for larger app projects.