For successful app development you need the right people, technology and processes. For this week’s article we interviewed our project managers. They encounter the challenges and strengths of app development in their daily work, and have learned to incorporate Scrum methodology in app development projects.
What makes app development and Scrum a good match (vs. waterfall)?
Mobile app development is a highly dynamic process, as OS updates, (design) trends and non-mobile optimised back-ends influence app development projects. Next to that, Scrum invites the customer to modify the requirements slightly during the project. Although the initial requirements are still the starting point, the actual customers needs are most important. During the process clients become more educated on the opportunities of app development. They receive additional budgets, scale up development or extend the project scope, influencing the apps’ roadmap. On the downside, customers learn that app development is rather unpredictable and does not happen in insulation.
Compared to waterfall, Scrum enables clients to approach us with their changed needs and gives them milestone checkpoints to compare the deliverable with the required result. The waterfall method is more like carving the requirements in stone, putting them in a black box and hoping for an accurate end result. In the case of a mismatch between the requirements and the end result, scrum gives the possibility to rectify it within the same budget. In a finalised waterfall-based project, it is very likely that all budgeted development hours will have been used.
What are the four characteristics of Scrum that add most value to the quality of the project?
- Team Engagement: Developers work in empowered, motivated and self-organised teams, in which developers commit themselves to a sprint delivery. The client is part of the project team and as a team they are responsible for the product.
- Exposes Wastefulness: In app development it is key to focus first on the 20% functionality that will be used by 80% of the users. Frequent testing, feedback and milestone deliveries to stakeholders contribute to the quality of the end-result.
- Customer Centric: Scrum helps to define and meet the expectations of the customer by refining and polishing the end result.
- Adaptive and lightweight: Scrum has transparent steps and fewer bureaucratic processes as the priorities and speed of development are adaptive.
Great. But what are the pitfalls of Scrum?
In app development, Scrum can’t deal with fixed date, fixed price and fixed scope, whilst still providing flexibility in the process to the customers. As a result, Scrum has a higher risk of scope creep. Unless there is a definite end-date, project stakeholders are tempted to demand new functionality. Furthermore, Scrum requires more experienced software developers, as they need to deal with uncertainties, make assumptions, and give accurate estimations on development hours for functionalities. Making good estimations is extremely difficult for novice developers, as they tend to be too positive.
Scrum does not mean: let’s just start and see where this ends up. Clients need to be advised as to what they can refine in each sprint or stage of the development process. Each acceptance and every finalised sprint narrows down their options for adjustment.
Basics of Scrum:
Sprint Planning: Success is clearly defined using the “definition-of-done” set up by customers in their role as product owner. The product owner is involved in the project and can adjust the output by setting priorities on the work to be developed.
Daily Stand- up: The team has daily updates on the progress. Each team member has several minutes to give a summary of the work done the day before, the tasks and priority for the upcoming day and possible relevant obstacles.
Sprint review & retrospective: The sprint review is a natural result of the end of a sprint and is held when the customer receives a working app. In addition, the way of working is discussed to improve for example the teamwork, productivity or quality.
Refinement: The discussion with the product owner about the roadmap for the app, is on whether to optimise or improve the product.