Introduction To Agile
Agile methodology was originally developed for the software industry, to enable 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 that are known as sprints.
What is Scrum?
Scrum is a process framework that reduces complexity and focuses on building products that meet specific business requirements..Most often, the words scrum and agile are used interchangeably, however, there is a difference. While agile denotes the set of methods, scrum refers to the framework that is used to implement the agile methodology. Scrum is a subset of agile.
This article should serve as lightweight primer to implementing agile project management with scrum framework.
Where Does Agile Scrum Framework Find Applicability?
Agile methodologies are not just limited to the software industry, it has recently found applicability in many industries and organizations. Agile methodologies can be applied wherever there is a product involved. Both large and small organizations can benefit immensely from scrum if implemented correctly. General management also began to embrace agile. This was confirmed by the on ground research conducted by the Learning Consortium in 2015. There is plenty of literature available on topics such as tools. Processes and methods. However, the Learning Consortium found that mindsets and people are more important than processes.
Key Characteristics Of Agile
- Satisfy the client and develop software continually. Changing requirements are adopted so that client gains a competitive advantage.
- Constant communication with the user representative to determine features to be incorporated.
- Focussed 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 the work done, A decent working environment and a 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, periodically. After reflection, their work processes will be adjusted accordingly.
Benefits Of Agile
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. Also, the team works on building features that offer the highest business value to clients. All work sequences are time-boxed, this ensures timely delivery. Costs become predictable and are proportionate to the work that can be completed in each time-box. By using agile methods, high quality development and testing are performed as the project is broken down into small manageable units. Each build iteration is followed by testing and review, hence problems can be detected early and fixed. Any expectation mismatches can also 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 7-9 individuals in a scrum team.
The Product Owner represents the interests of the user. He is given the authority to determine what features are incorporated into the final product.
The Scrum Master supervises the scrum team. He is 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, they are defined through User Stories in the following format.
*As a <User / type of user>
I want to <An achievable goal/target>
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, sufficient detail is later added and then they are broken down to be implemented.
It is a repository where all the user stories are stored. It can be thought of 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 v/s actual effort for all sprint tasks.
Implementing The Agile Scrum Framework
Implementing scrum does not require special training, one learns on the go. It starts with understanding the basics of the agile methodology and then mastering the technique. Here are the 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. While prioritizing the backlog, the items on the top of the list must be clearly defined and with greater attention to detail. 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
There is a defined set of activities to be executed. These are Sprint Planning, Backlog Refinement, Daily Scrum or Stand-Up, Sprint Review and Sprint Retrospective.
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, 1-2 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 meeting, 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:
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 over. 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, irrespective of the industry. It not only benefits the development team but also provides several benefits to the client. A project is filled with numerous pitfalls such as cost, unpredictable schedule and uncontrolled growth of project scope. Agile enables teams to deal with these pitfalls in an efficient and controlled manner. Using Agile, project objectives are achieved using a lean and business focussed approach.