Stage 4. Development with Scrum
Firstly, we concentrate on how development looks from the perspective of the management process. In the next article we will describe ensuring Quality Assurance that is also a crucial part of creating an app.
Software projects & processes can be very complex and challenging. That is why they need to be managed in a well-thought way. There are many helpful methodologies and frameworks coming to the rescue (e.g. Waterfall, Agile, Critical Path Method, Rapid Applications Development). The one we will concentrate on is Scrum – the most popular Agile development framework.
What is Scrum?
Scrum is one of the leading Agile frameworks, perfect for complex software development projects. As we can read in the Scrum Guide, Scrum is a framework for developing, delivering, and sustaining complex products.
Why we choose Scrum?
How does Scrum help to manage the process of your app development? At Innopolys, thanks Scrum we are able to:
- Provide you with a high level of transparency – you’re up to date with the current progress and time spent on the development
- Deliver a working Product Increment every 1-2 weeks
- Be flexible when it comes to your requirements adjustments
- Support a short feedback loop for the product from stakeholders and end-users
- Constantly inspect and adapt both the product and the process of product development itself
In short, the Scrum framework fosters the app’s quality and process transparency.
Who will be in your team?
Let’s introduce Scrum roles & responsibilities. The Scrum Team consists of a Product Owner (from your side), a Development Team, and a Scrum Master. Scrum Teams are self-organizing (choose how best to accomplish their work) and cross-functional (have all competencies needed to accomplish the work without depending on others not part of the team).
To put it simply: the PO is responsible for “What?”, the development team is responsible for “How?”, and the Scrum Master is responsible for the process. If you know your “what” well, then the development team will make sure to come up with the best, most optimal “how” and implement it through a smooth, painless development process, which is made possible by the Scrum Master.
The Development Team should consist of professionals needed to create your product: developers (iOS/ Android /Web etc.), designers (if you need design), and Quality Assurance specialist, who will take care of app quality. Below you can see an example of a team set-up:
What is crucial in your team’s set-up? [checklist]
📌 Make sure your partner ensures that:
- Your team can be extended if your project will need it (e.g. has a short deadline)
- The team is dedicated only to your project
If devs share their work-time and focus between two or more projects, they may be distracted. So, it would be perfect if they would work only on your project during this time.
- You know the rules of team rotation (e.g. you shouldn’t pay for onboarding a new dev)
Dev’s rotation is acceptable, provided that the software house will cover the costs of onboarding new team members.
- Your team consists of a Scrum Master
You need a Scrum Master who will keep an eye on the process of building your product. He or she is the team’s facilitator and coach, helping the team do their best work.
- Your project has a dedicated Account Manager
An Account Manager is a person who will manage the relationship between the team and you. He or she is the key person for understanding your product and is appointed by your partner (software house). This person is your representative for the team.
- The team will assure the code quality
We will write more about QA in the next article from this series.
What is Sprint?
The heart of Scrum is a Sprint, a time-box of one month or less (normally about 1-4 weeks) during which a “Done”, useable, and potentially releasable Product Increment is created. In other words, it is a set period of time during which specific work has to be completed and made ready for review.
A new Sprint starts immediately after the conclusion of the previous Sprint. Sprints consist of the Sprint Planning, Daily Scrums, the development work, the Sprint Review, and the Sprint Retrospective. What is more, at the time during Sprint, there is also a Sprint Refinement which is an ongoing process.
Below you can see how the Scrum Sprint Workflow looks like:
What is Sprint Planning?
Every Sprint starts with Sprint Planning (max. 2 hour for 1-week Sprint). Its’ goal is to decide which tasks should be included in the upcoming Sprint. The team talks about the things to do, making sure that the acceptance criteria for each task are clear and accepted by everyone. Product Owner joins this meeting (for example on Skype) so he or she takes part actively in planning the next iteration.
What is Daily Scrum?
The Daily Scrum is a 10-15-minute event for the Development Team & SM. It is held every day of the Sprint. The goal is to synchronize the team members’ activities and create a plan for the next working day. PO is welcome to join this meeting, but his or her presence is optional.
What is Sprint Refinement?
Sprint Refinement (Product Backlog Refinement) is the act of keeping the backlog updated, clean and ordered. It should be an ongoing process. However, it is useful to have a planned mid-sprint meeting for Refinement. For example at Droids On Roids, we discuss the tasks from the top of the Product Backlog, making sure that their acceptance criteria are clear, and estimating them. Then, during the Planning Meeting, there is less to review and planning is easier.
What is the Sprint Review?
A Sprint Review is held at the end of the Sprint to inspect the Increment (all tasks completed during the Sprint). It takes up to 1 hour in case of 1-week Sprint.
A great practice is if, after review, your team can send you:
- An app demo build (so you can check if the created app fits your expectations)
- A detailed review of what’s been done
- Information about eventual difficulties or additional work that has been done
- Information about how many hours the team worked on the project during the Sprint
According to the PO’s preferences, he or she can take part in the Review meeting, or just get the above-mentioned information with an E-mail.
What is Sprint Retrospective?
Retrospective meeting (about 45 m for 1-week Sprint) occurs usually after the Sprint Review. During this meeting, you and the team plan together ways to increase product quality by improving its’ work processes. The purpose of the Sprint Retrospective is to:
- Inspect how the last Sprint went with regards to people, relations, process, and tools
- See what went well and define potential improvements
- Create a plan for implementing improvements
How and when does the team estimate the next functionalities to implement?
The team estimates the next tasks while Refinement meetings. There are many methods, one of them is estimating with Story Points. Story points rate the relative effort of work in a Fibonacci-like format: 1, 2, 3, 5, 8, 13, 20, 40 etc. The team uses historical data and compares the features that should be estimated to other similar features implemented earlier in the same project.
What is more, on the basis of team experience and historical data, they are able to determine how many Story Points they can complete per Sprint.
So, when we have our tasks estimated in terms of Story Points, we can know how many tasks we can take for a sprint, and understand how many sprints we’re going to need to complete the project. And finally, we can convert these abstract metrics into real calendar timelines (Read more in these articles: Story Points vs Hours: 3 Reasons to Estimate with Story Points, The Best Way of Estimating Your Product Backlog Effectively and Quickly)
When and how often do you get your app to test it?
Always when a new app build is ready – it means minimum once for a Sprint, while/after every Sprint Review.
How long does the team wait for your feedback?
The best moment to give feedback is Sprint Review when you and the team review the increment together. That allows to include your feedback in the next Sprint planning if needed. But if you will have feedback later, during the Sprint, no worries, just let the team know about it. It can be planned for the next Sprint.
How can you make sure that the process of your app development will be transparent? [checklist]
📌 If transparency is important for you, check out how your Partner takes care of it. Below you can find a few examples of good practices.
- The Development Kick Off at the beginning of the development. It is worth to set the rules of your cooperation with the team.What is more, your PO should be introduced by the team to the communication tools that will be used in the process.
- Direct contact with every team member – you are allowed to contact every member of your team through Slack, E-mail, during Scrum meetings, or even live.
- PO Guidance – it is great if your Product Owner will be supported in his role. Make sure that PO knows how to use tools that help him or her to monitor the budget and maximize value delivered be a development team.
- Jira Dashboard – the team should provide you with a presentation of the most important data about the project on transparent charts.
- Sprint Review Email – it is nice if your team can briefly sum up what has been done, how much time was spent on the development and what is the goal for the next Sprint.
- Tempo Timesheet – it is a Jira tracking tool. At any moment you can check what the team is spending time on. Check out if it is possible to use it in your project.
- Forecast & Change Management – it’s great if the team forecasts the project budget and support you in its’ monitoring. What is more, the team may predict potential risks, so they can be prevented.
- Dropbox / Google – you should have access to all materials collected in one place.
- How your app will work – while working on more complex projects/features, developers can first plan how the app should work “underneath” before they write the code. They create a kind of schema or roadmap that facilitates development.
I hope that our checklists and short Scrum introduction will help you to understand how the app development process looks like, and how you as the App owner can take part in it. All of the good practices we have mentioned in this article doesn’t have to be a standard in every software house. We describe our way of working due to share with you our experience and ideas that may be helpful.
The business success of your final app depends, among others, on this how the development process is managed. Transparency, your active engagement, keeping you up to date, delivering you the app demo every 1-2 weeks – all of these elements play a crucial role and decide if you will be satisfied with the final product.