Agile has been around since 2001 when its founding fathers published Agile Manifesto. The approach has become the status quo in the industry, completely ousting Waterfall and other software development methodologies.
How come Agile app development may ruin your mobile app? It’s like with bacon: too much bacon — and you’re in pain, can’t work; too little bacon — and you’re craving for more, can’t focus.
To bring this into perspective: there are too many flavors of Agile. It’s easy to get confused, lose focus and cause havoc to a mobile project. However, if you are starting an app development project, I’m telling you right off the bat — 80% of the time Agile is fine.
Keep on reading to learn how to sidestep most common mistakes in applying Agile to your mobile app projects.
What is Agile?
Agile is all about the pace of development process. A typical agile cycle is one- or two-week development sprint followed by a retrospective meeting where team members discuss what they have achieved and what they can improve.
Ideally, the result of each sprint is something tangible — a piece of app with certain features. Everything is geared towards soonest project delivery.
The agile development methodology focuses on communication between team members and on the product itself. The main agile principles line up as follows:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
So if Agile application development is so product-oriented, how come it can ruin your app? Let’s see.
1. Messed-Up Stand-Ups
Stand-up meetings are a signature attribute of the Agile approach. At the same time, stand-up meetings by themselves don’t necessarily indicate an Agile team. The important thing is to stick to the core nature of an agile stand-up meeting:
- Have a strict outline and rigid time frame for when and how long you stand up
- Report on what has been done, plan next steps, and pinpoint obstacles
- Do not try to solve any problems during the meeting
- Attendance is a must for all team members
By the way, did you know that the Agile Manifesto itself does not have a single word “meeting” or “stand-up”? What the Agile founders had to say on the matter is the following:
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Notice how every meeting adds to the Agile app development progress, so improve stand-up meetings.
Make sure each team member voices his or her concerns, even if there is only a small hint at some obstacles ahead.
Welcome constructive disagreement; all team members should freely share their opinions.
2. Obscure Roles
Scrum Master, Product Owner, Stakeholder, and other team members — they all build your app. And everybody should be clear about everybody else’s responsibilities. Our advice is to articulate who handles what at the start of the project. There are too many Agile flavors, and too many team roles accordingly.
To bring to the project the people who have never worked within the Agile framework is one thing. To gather novice programmers — is another. Those mistakes aside, you should look out for the following red flags:
When your Scrum Master takes on the duties of a project manager.
Agile is a bottom-up rather than top-down approach. Team collaboration prevails over strict task assignment by Scrum Master.
When your Scrum Master becomes the central hub for all communications.
If team members avoid talking face-to-face and rely on a Scrum Master to deliver messages, it’s a sign. Here’s how the Agile founders framed this in their manifesto:
Business people and developers must work together daily throughout the project.
3. Outdated Product Backlog
Your Agile team should always have enough tasks to work on and make progress with the product. After all, frequent deliveries are one of the Agile’s cornerstones. An empty backlog demotivates the development team and stops its momentum. No one wants a product backlog running low on tasks.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Even though product backlog is Product Owner’s responsibility, it makes sense to help him in at the start of an Agile app development project.
Brake down app’s functionality into separate measurable tasks.
Team members should provide high-level estimates for all features in the backlog.
Product Owner may need Team Architect’s or Tech Lead’s help with assigning priority to tasks.
In app building, there is a specific path to follow: from architecture to UI and server integration. Your Agile team must always work on the app’s functionality that has the most priority.
4. Lack of Retro
Retrospective meetings happen for a reason:
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
The keyword is “regular”. In an ideal world, retrospective meetings take place after every sprint. Team members reflect on progress versus expectations and work out a roadmap for the next sprint. Check out this video on what a perfect retro looks like:
You know something is wrong if retrospective meetings happen only on the if-time-allows basis.
Agile masterminds recommend to pre-plan a retrospective meeting after every single sprint. It’s not like these meetings should eat into the project’s time anyway.
Remember that the point of Agile to fine-tune and adjust as the product development unfolds, especially in mobile app development.
Apple and Google introduce yearly OS updates that bring access to new functionality. The Stakeholders may request to update their app to support the most recent features.
5. Toolset Chaos
Frankly, this typically happens with the teams that have just switched to a new Agile flavor: they start looking for new exciting tools. Like stickies on the wall or spreadsheets aren’t that good anymore. In all seriousness, switching to Agile app development doesn’t mean switching gear altogether.
To get the project rolling make use of the tools that your team already knows.
Chances are, these solutions offer some sort of Agile project management features. Otherwise, they’d be obsolete by now.
Focus on individuals and interaction rather than processes and tools.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Some of the Best Agile Tools:
There are so many popular tools in Agile software development that every app development team is likely to find the one that will work best. Here’re some Agile tools we recommend for Agile app development:
- Atlassian JIRA
- Pivotal Tracker
But there are many more reliable Agile project management platforms. So choose whatever looks familiar and works best for your app development process.
6. Two-Pizza Team Size
Jeff Bezos’ two-pizza team rule 100% applies to an Agile team working on a mobile app. As Jeff promptly put it, a team can be efficient if two pizzas feed all team members. Richard Hackman stresses that more team members lead to more links between people.
“The larger a group, the more process problems members encounter in carrying out their collective work.”
The cost of coordinating and communicating between team members gradually brings team productivity to a screeching halt.
Divide the teams of 10 and larger into separate subgroups working on a specific part of your app. For instance, you can split the backend and an app development teams.
Aim for six-eight people tops for a minimum action unit on your app development project.
7. Underestimated Documentation
The most prominent advantage of Agile is you don’t need to maintain extensive documentation. Contrary to this opinion, some teams take it as no documentation is required. The Agile Manifesto states loud and clear:
Simplicity — the art of maximizing the amount of work not done — is essential.
At Velvetech, we document everything to ensure project knowledge retention. Large-scale mobile apps can take more than six months to deliver. You would imagine it’s vital to have at least some documentation for the mobile projects of such scale.
Check out how Scott Ambler, author of several books about Agile app development, compares approaches to documenting in the traditional and Agile software development lifecycles.
Always document the app architecture.
Document everything else that adds value to the product for each sprint.
There should be a single person responsible for all documentation on the project.
8. We’ll Go SCRUM! … No, Kanban! … No, XP! …
There are so many Agile types that sometimes it’s hard to pick the one that works best for your mobile app project. Team members may favor various techniques from different types of Agile: Kanban, Lean, Extreme Programming, Crystal, Scrum, etc.
The guys at Silicon Valley picked Scrum at one point. See how it went:
What matters is that everybody on the team agrees on some app development processes, with or without extra techniques from different Agile flavors.
Benefits of Agile
If you follow the best practice I’ve outlined here, your mobile app is safe: Agile won’t ruin it. Instead, you’ll be reaping the benefits of Agile. What are the advantages of agile methodology?
- faster product delivery
- minimum efforts for maximum output
- product perfectly tailored to the customer’s expectations
- optimal app development team structure
As long as an app development team follows the best practices that I have outlined, the app will be a success — 80% of the time. Come for the Holy Grail 20% of success to us. We’ll help you setup the proper Agile app development environment for your mobile app and other projects.