What is Agile?
Before we start talking about Scrum, let’s speak about Agile.
Agile is an iterative approach to project management in software development. It helps teams work together and avoid problems typical for their field. Agile methodology concentrates on delivering work in small parts, which are constantly evaluated so that if a change or a problem arise, software development teams can react and respond quickly and efficiently. It is also flexible as it takes into consideration the ever-changing requirements of the end-clients and adjusts to their needs.
All the assumptions of the Agile methodology were determined in 2001 by a group of frustrated software development specialists, keen to improve the way software development projects were planned. They were concerned with the fact that companies were so fixated on planning and documenting their projects that often they forgot their real goal was to keep their clients happy.
This is why they came up with the Agile Manifesto, which is a short document about the way software development projects should be managed. The most important assumptions of the document include:
- individuals and interactions over processes and tools,
- working software over comprehensive documentation,
- customer collaboration over contract negotiation,
- responding to change over following a plan.
Agile Manifesto was a great and interesting beginning, which made software development specialists create Agile frameworks, still used today. One of those frameworks is Scrum.
What is Scrum?
To put it simply, Scrum is a framework that helps teams working together and managing complex processes and unpredictable problems. It is an agile way to manage a project, most often a software development one. It encourages teams to learn through the process, to work on problems and reflect on what is done, with the main goal of improving their projects and delivering products of the highest possible value. Because Scrum’s principles are so broad and so positive, it is used by many different teams, not only software development ones.
On its website, Scrum states it is not a methodology. According to its creators, Scrum implements the scientific method of empiricism. It allows to see the relative efficacy of current management, environment, and work techniques, and facilitates the process of introducing improvements.
In a nutshell, Scrum requires a Scrum Master to foster an environment where:
- a Product Owner orders the work for a complex problem into a Product Backlog (a set of all tasks that must be done by the team),
- the Scrum Team turns a selection of the work into an Increment of value during a Sprint,
- the Scrum Team and its stakeholders inspect the results and adjust for the next Sprint,
more at scrum.org
Successful use of Scrum is determined by people taking part in the project and their level of proficiency in the Scrum’s five main values:
Key foundations of Scrum
Scrum is based on the important, empirical pillars, which make it so efficient. Those pillars are:
- transparency, meaning the work in progress must be always visible to all the people involved in it, as well as to the main stakeholders. This allows for quick and informed decision-making process, so important when dealing with complex projects;
- inspection, meaning all the work must be inspected on regular basis to find any potential problems, challenges and obstacles;
- adaption, meaning that if any part of the process or the final product is unacceptable, it must be adjusted as soon as possible, to avoid any further distraction. In Scrum, adaptation should be applied immediately once the team is aware about a new challenge.
Roles in Scrum
The very basis of Scrum, something it would not exist without, is a team of people, called the Scrum Team. It consists of:
a Scrum Master,
who is accountable for establishing Scrum and for the Scrum Team’s effectiveness. Scrum Master is a leader who serves the team and the organization by:
- leading, training, and coaching the team members and the whole organization,
- helping the team focus on their goal;
- helping to remove any obstacles in the process and any barriers between the team members and the stakeholders;
- ensuring all Scrum events take place and are positive and productive for all team members;
a Product Owner,
who maximizes the value of the Scrum Team’s work. Product Owner’s responsibility include:
- developing and explicitly communicating the Product Goal;
- creating and clearly communicating Product Backlog items;
- ordering Product Backlog items;
- ensuring that the Product Backlog is transparent, visible, and understood.
- creating a plan for the Sprint – the Sprint Backlog;
- adapting the plan when needed;
- holding each other accountable as professionals.
A Scrum team is not divided into any sub-teams or divisions. It is a collaborating, open-minded team of people working together to achieve their goal (the Product Goal) on time. What’s important, each team member must share Scum values. The Scrum Team should not be larger than 10 people, as smaller teams communicate better and are more productive.
The Scrum events
In Scrum, every cycle is divided into events. Each event is an opportunity to inspect the process and it encourages transparency. It is recommended to organize those events always at the same time and in the same place.
There are five main Scrum events:
As stated on Scrum’s website, Sprints are the heartbeat of Scrum, where ideas are turned into value. All the other events happen within a Sprint and a new Sprint is always started after the previous one is concluded. It can lasts 1-3 weeks, depending on the scale of the project and on the team that is working on it. During each Sprint the process and workflow is inspected and adapted in order to achieve the final goal.
This is the first event of every Sprint and its aim is to lay out the work which needs to be done. The things that need addressing at the time of Sprint Planning are:
- the importance of the Sprint,
- the aim of the Sprint,
- the way the work will be done.
The main goal of every Daily Scrum is to check the progress of work and adjust the upcoming work. It’s a short, 15-min max daily event, dedicated mainly to the Developers. Any larger issues that would require more time should be discussed during a separate meeting.
This is where the outcome of every Sprint is inspected and any decisions with regards to future adaptations or changes are made. It’s also where the Scrum Team presents their results to the key stakeholders. Ideally if it’s divided into demo sessions and a review.
The aim of the Sprint Retrospective is to think about the effectiveness and efficiency of the work that is being done. It is the time to think about what was achieved and how it could be improved in the future.
Advantages and disadvantages of using Scrum
Let’s investigate advantages and disadvantages of using Scrum to determine whether you should decide to take advantage of it.
Advantages of using Scrum
- It helps to plan the project and keep to the deadlines;
- It gives good visibility of the progress of work;
- It keeps the team together and informed about every stage of the project;
- The team have great support and is listened to at every stage of the project;
- It helps to identify problems and issues around the project and address them quickly;
- Roles are clearly divided and every team member knows what they should be doing;
- It helps keeping the communication between the team and the stakeholders.
Disadvantages of using Scrum
- It may be tricky to understand the whole concept and without it the team may not be as involved as it should;
- It works if your team is relatively small (up to 10 members);
- It works when all the team members are aware of the process and are equally keen to take part in it.
Why is Scrum a good choice for you?
Scrum is a great choice when it comes to software management but also when you work on some other complex projects. It gives you a fantastically well described framework and values and offers a high visibility to each stage of the project, ensuring the deadlines are met. It gives the space for feedback and helps identify any problems or challenges that may occur during the process.
It’s worth using Scrum if you are working with a team of up to 10 people and are looking for a good solution that will help all the team members feel included and listened to. When using Scrum remember that all the roles should clearly divided and the team should know the principles of working in Scrum – otherwise it may lead you nowhere.
Interested in Scrum or agile methodology, which you could use in your software development project? Feel free to get in touch with us today to discuss how Scrum can help you with your project management!