Originally developed for the software industry, agile methodology was meant to help developers to thrive in an environment of continuous change. It refers to a set of methods and practices based on the values enshrined in the Agile Manifesto. It advocates the use of incremental, iterative work cycles known as sprints.
Meanwhile, scrum is a process framework that reduces complexity and focuses on building products that meet specific business requirements. The words “scrum” and “agile” are often used interchangeably. However, there is a key difference. While “agile” denotes the set of methods, “scrum” refers to the framework used to implement the agile methodology. In other words, “scrum” is a subset of “agile”.
This article serves as lightweight primer to implementing agile project management within a scrum framework.
Agile scrums across industries
Agile methodology is not just limited to the software industry. It has recently found applicability in many industries and organizations. This article covers how agile can be leveraged beyond software development.
In fact, agile methodologies can be applied wherever a product is involved. Both large and small organizations can benefit immensely from scrum if it is implemented correctly.
General management has also started to embrace agile. This was confirmed by research conducted by the Learning Consortium in 2015. There is plenty of literature available on topics such as tools, processes, and methods related to agile methodology.
Key characteristics of agile methodology
- Satisfy the client and develop software continually. Changing requirements are adopted so that the client gains a competitive advantage.
- Constant communication with the user to determine what features are to be incorporated.
- Focused and self-organized teams are best for agile. Cross-functional teams work as a single cohesive unit.
- Project teams must consist of motivated individuals. Autonomy should be given to get work done. A decent working environment and support system must be established.
- Focus on delivering a working product frequently. Delivery preference is placed in the shortest time period possible.
- The primary measure of success is a working product.
- Resource availability and team capabilities are considered before committing to a project.
- Agile processes promote sustainable development. Developers, sponsors, and users maintain a constant pace.
- Technical excellence and good design must be continuously worked upon and improved.
- The team reflects on how it can improve and become more effective in a periodic manner. After reflection, their work processes will be adjusted accordingly.
Benefits of agile methodology
- There is constant communication between the project team and the client throughout the lifetime of the project.
- There is a greater level of collaboration, hence the team has a deeper level of understanding of the client’s requirements.
- The agile framework allows clients to be involved in prioritizing new features planning and review. This fosters transparency and honest communication.
- The team works on building features that offer the highest business value to clients.
- All work sequences are time-boxed, which ensures timely delivery.
- Costs become predictable and are proportionate to the work that can be completed in each time-box.
- High quality development and testing are achieved, as the project is broken down into small manageable units.
- Each build iteration is followed by testing and review, allowing problems to be detected and fixed early on.
- Any expectation mismatches can be dealt with effectively.
Building blocks of an agile scrum
There are several people and processes that make up a scrum. Here is a quick overview of everything that is required to implement agile methodology.
Scrum teams consist of developers, testers, database experts, support staff, the scrum master, and product owner. They work in close collaboration for a defined period of time to deliver the features as promised. There are usually seven to nine individuals in a scrum team.
The product owner represents the interests of the user. They are given the authority to determine what features are incorporated into the final product.
The scrum master supervises the scrum team. They are responsible for the productivity of the team and for resolving issues or concerns that arise.
A sprint is a predetermined interval of time in which a specific amount of work is completed. The time period can range from two weeks to a month, depending on the project and the needs of the team. During the sprint, the team works on tasks so that it is available for review, deployment, or production as the situation demands.
Scrum does not require heavy documentation for product requirements. Instead, these requirements are defined through user stories in the following format: “As a <type of user>, I want to achieve <goal>.”
User stories should be short, realistic, achievable and capable of being tested and measured. Acceptance criteria must always accompany the user story. These criteria act as supporting documents and further refine the user story. These have to be written with care as the test cases and scenarios will be drafted based on these acceptance criteria.
Epics are undefined user stories that are reserved for future sprints. These represent the features that may have to be incorporated into the product in the future. Most product features begin as epics. Details are then added afterwards and eventually implemented.
A product backlog is a repository where all the user stories are stored. In a nutshell, it acts as a wish-list that is maintained and prioritized by the product owner according to the user’s business needs.
During a sprint, the scrum team picks up user stories from the product backlog. The team then meets to understand if the user stories can be completed in the predetermined time frame. The feasibility is also discussed. The list of user stories that the team works on in a sprint is called the sprint backlog.
Burn Down Chart
A burn down chart is used to track the progress of a sprint. It shows the plot of estimated effort versus actual effort for all sprint tasks.
Implementing the agile scrum framework
Implementing scrum does not require special training. Instead, learning happens throughout the process. It starts with understanding the basics of the agile methodology and then mastering the technique.
Here are some steps that should be followed to effectively implement the agile scrum framework.
Clearly defined roles are crucial to successful implementation. It is important to find a willing product owner who can communicate with stakeholders and represent their business needs. The scrum master is responsible for all scrum events and resolves any obstacles that may affect sprint progress. The scrum team commits to the sprint tasks and delivers the product. Everyone must play their role effectively to ensure the success of a scrum.
It is important that one person never takes on the responsibility of product owner and scrum master at the same time. There should always be a balance between the two roles. The product owner always wants more items from the product backlog pushed into each sprint, whereas the scrum master must ensure that the team has everything it needs to execute the scrum tasks.
Create Product Backlog
The product backlog can include bugs, enhancements, risks, issues and anything related to the product. Functional and nonfunctional requirements should be added to the backlog. Everyone can contribute to the product backlog, but only the product owner can prioritize the backlog.
When prioritizing the backlog, the items on the top of the list must be clearly defined. Items at the bottom of the list are usually vague. As the project grows, new needs arise and these are continuously added to the backlog. Hence, the backlog is never complete.
Set Up Scrum Events
Here is a defined set of activities to be executed.
During this phase, the team commits to the work to be carried out during a sprint. The scope of work remains unchanged during a sprint. During the planning meeting, items that the team commits to are discussed in detail. The entire team should be encouraged to ask questions about each item so that it understands how and what it should do. Once the team commits to the work, they take up responsibility for the success of the sprint.
Participants in this meeting include the scrum master, product owner, and the scrum team. The duration of the sprint must be decided according to the nature of the industry. For fast-moving software products, one to two weeks is an ideal sprint duration.
Start the Sprint
The team begins work on committed tasks. Progress is tracked via daily stand-up meetings. These daily meetings should not last for more than 15 minutes and focus on three questions: What did you work on yesterday? What will you work on today? Is there anything blocking your work today that you need help with?
During the sprint review, the team presents the work they have completed during the sprint. A demo of the new features is conducted. This is an informal meeting where no more than two hours of preparation time is allowed and the use of PowerPoint slides is forbidden.
During this meeting, the team’s progress is measured against the sprint goals set in the sprint planning meeting. Participants include the scrum master, product owner, scrum team, management, and developers from other projects.
After the sprint, the team celebrates its success and reflects on its progress. The team focusses on what improvements they can make and how they can become more effective. The scrum team, product owner, and the scrum master participate in this meeting.
This meeting can be conducted as a start-stop-continue meeting. Each team member is asked to identify things that the team should:
- Start doing
- Stop doing
- Continue doing
After this exercise, the team votes on specific topics to focus on in the next sprint.
Once the first sprint is complete, the team starts again. More items are picked up from the product backlog to create a new sprint backlog and start a new sprint.
Agile is a powerful tool for projects, regardless of industry. It not only benefits the development team but also provides several benefits to the client.
A project is often filled with numerous pitfalls such as cost, unpredictable schedules, and uncontrolled growth of project scope. Agile methodology enables teams to deal with these pitfalls in an efficient and controlled manner. Using agile, project objectives are achieved using a lean and business-focused approach.