Software development is a constantly changing arena. Apps add an extra layer of complexity to the whole process.
Owning an app, or even coming up with an idea for an app means you need to keep up with all the demands, juggle the changes to features, and manage the build pipelines.
So, how do you work as efficiently as possible? The answer is to incorporate agile principles in your software development processes. The industry has fully embraced using Scrum for software development, and so should you.
Read on to discover how using Scrum can improve your workflows, tighten up deadlines, and bring you into the agile world.
Scrum Software Development
So, you’ve developed your idea, or you have an app already. You’ve done your research (or hired someone to do it for you), and you’re ready to do some development.
Scrum has changed the way we look at software development. It has introduced efficiencies and measurable actions in a way that works well for project managers, developers, and clients.
The scrum framework tries to move away from the traditional way of developing software. In the past, software was mostly developed using the waterfall methodology.
While this worked well in many situations, it had some flaws that made it difficult to keep track of deliverables and didn’t deal well with more complex projects. It was for these reasons that the agile movement began.
Agile vs. Scrum
The place of scrum in agile is difficult to separate. Often, people use the terms interchangeably. It’s easy to keep track of the differences though – agile is an approach to development work while scrum is a particular way of performing tasks that encompasses agile ideas.
Think of it this way – Agile is the way you build a house. You build your house by first breaking down the plans to see where to start and prioritize sub-projects and tasks.
Once you have a good grasp of the parts of your house, you can start working. You choose to work in small chunks of time, called “sprints”, and at the end of every sprint, you check in on your progress.
Scrum is the specific way you build your house. It tells you how to manage the various meetings and processes that are part of the Software Development Life Cycle.
What is Scrum?
Scrum proposes some options rules that help you and your team become more efficient. This includes dividing work into manageable chunks known as tasks or stories, dividing development time into sprints, and holding daily or weekly ceremonies to see how the team is doing.
What Are Sprints?
A sprint is a defined amount of time, usually two weeks. This is a long enough time that developers can make progress on tasks and milestones but is short enough that you can switch priorities easily.
What Are Scrum Ceremonies?
The original scrum guide laid out four ceremonies that each team should be used for software development projects. Since then, two more have been added and are used by most teams.
Sprint planning happens every two weeks, at the beginning of each sprint. A sprint planning session helps the team collectively decide which items should make it into the next sprint, and which can be moved back for later.
It’s often a good idea to run sprint planning in the middle of the week to avoid situations where some team members are out of the office on Fridays. Mondays are historically also bad days to plan.
Daily standups are VERY short meetings (15 minutes maximum) to organize, coordinate and plan for the day. This is not a place to give status updates, it’s just for collective planning in the short term.
Your standup should focus on people, not processes. Go around the room and ask each member 3 questions to see what’s happening:
- What did you do yesterday?
- What will you get done today?
- Are there any blockers in your way?
Sprint reviews are exactly what they sound like. Use this meeting (60 minutes maximum) to go over what happened in the previous sprint. This is not the time for long discussions about what the next sprint will look like – it’s all about showing what you’ve done.
The development team should showcase what’s been done during the last period and discuss what to do next. Managers and other interested parties can give feedback that will be incorporated into the next sprint planning.
The retrospective can be a daunting prospect but it doesn’t need to be. Use this meeting to reflect on what your team has achieved in the last sprint, check in on each member, and see what can be done to get rid of blockers.
One of the benefits of scrum is that it gives teams time to celebrate their successes. The sprint retrospective is the time to do this. Focus on the achievements of your team as a whole, or choose to highlight each sub-team as required.
What Are the Six Scrum Pillars?
Scrum deals with six main pillars of development. These should always be at the forefront of your planning and development. They are:
- Process control
- Time Management
An agile framework like Scrum uses strengths that are baked into the process. This goes a long way to ensuring that your team can work effectively. Processes should be adaptable, transparent, and checked frequently.
Controlling your processes in this way means that your team ends up working towards a common goal. You can focus on improving your app constantly without worrying about endangering long-term goals.
At this point, it shouldn’t be too much of a surprise that your teams need to communicate well and work together as smoothly as possible. Collaboration is important to the software development life cycle as it encourages teams to take ownership of their processes.
Ultimately, scrum encourages your team to live or die as a single, cohesive unit. As management, you will reap the rewards of this new collaboration, and your app will improve dramatically.
Scrum encourages team members to manage themselves. This is essential to the scrum process. Self-organization leads to teams that have both a personal stake in what they’re producing and a sense of accountability.
Unlike the waterfall methodology, Scrum encourages change. In fact, in an agile-driven development cycle, change is built-in and expected.
Just as the software development world is constantly changing, so do the requirements for your app. Your team needs to learn to deal with new demands and ever-morphing client needs.
The time-chunked nature of scrum means it’s easy to swap out priorities without compromising the project as a whole. Each goal or milestone is strictly controlled with sprints so moving one into a pending status and focusing on another is simple.
As we said higher up, sprints are usually two weeks long. Scrum dictates that everything should be time-boxed, and that goes deeper than just your sprints.
Each task or story within a sprint should be as well-defined as possible. Wherever possible, you will want to set an hour or day-based value that represents effort.
Unlike traditional software development, even the ceremonies that scrum proposes are time-boxed and should follow strict timelines. Of course, in reality, meetings will run longer than they should but knowing that there is a preferred timeline for your team’s daily standup helps keep everyone as close to the scheduled times as possible.
Agile means movement. Not only is that movement shown in your sprints, but it also shows in the form of iteration. Agile moves quickly, and it’s understood that you will be delivering the best possible product by building iteratively.
Rather than one long drive toward a complete app, iteration gives you flexibility and a high-quality app. It can take time to embrace iteration as a software development strategy but it’s well worth it.
Scrum gives you two key artifacts that help you plan, and know exactly what has already been done. You can also use these artifacts to see how close your task and story estimates were. This helps you tighten up your estimates each time a sprint ends.
The product backlog tracks all the requirements for your app. This is a living list and may change substantially from app inception to delivery. At the start of every sprint, your team will select tasks from the backlog and move them into the next sprint.
Tasks that were brought forward from the product backlog start off in the sprint backlog. Your development team is responsible for maintaining the sprint backlog and should be moving tasks and stories into columns depending on their status. There are four standard columns but you may choose to create your own depending on your team.
The backlog is essentially an icebox. Items that have been moved into the sprint wait here until someone on the development team can grab them and work.
Items should stay in the backlog until they are ready to be worked on. Many teams make the mistake of moving stories and tasks into other columns before they’ve been tested, vetted, and groomed.
This column contains tasks that are ready to go. That means they’ve been properly groomed and developers have all the information they need to do the work.
It’s generally a good idea to keep a manageable number of tasks in this column and, if at all possible, to not have anyone allocated to particular tasks. One of the ideas behind scrum management is that anyone should be able to grab a task from the “to do” column and work on it.
Only tasks that are actively being worked on should appear in this column. That means that if a developer is pulled off of a task, that task should move back to the “to do” column.
Each developer should have a single “in progress” task at a time. That means that the maximum number of items in this column should be the same as the number of developers you have working on the project.
Once a task has been finished, it moves into the complete column. There is a little leeway here – you can choose whether your team considers a task as complete when the coding is done, or when the code review has been completed.
This is often the area where a lot of teams insert extra columns. Sometimes it makes sense to have columns like “Code Review” and “Testing” to the left of the Complete column so that you’re sure a task is finished.
How Does Scrum Help?
If you’ve ever been frustrated with the chaotic nature of software development or felt like you needed more control over the processes, Scrum is the solution. Scrum works together with standard development tools to help your team be more efficient and have a faster development process.
It’s important to realize that Scrum won’t solve all your problems. What it will do is give your team a platform to communicate, collaborate, and work more efficiently. As a manager, you’ll also get a much better view of what’s happening in your project and be able to deal with emerging problems faster.
Using scrum for apps will mean that you can produce a much higher quality MVP. That, of course, leads to happier clients.
Using Scrum for Software Development can seem complex, and it can be difficult to keep track of all the ceremonies, requirements, and rules. The good news is, you don’t have to figure it all out yourself. There are many excellent guides to help you get started and professional services that can make your life easier.
If you’re interested in getting help with your development, testing, or quality assurance, contact us, and we will be happy to help.