Scrum Framework and The Cost of Being Agile in A Software Project
Before we get into the realm of Scrum and Agile, let’s get the initial understanding of why our project is implementing these methods and principles first.
First of all, Scrum Framework is one of the many methods to manage a project. There are also the Waterfall, Lean, and Integrated Project Methods, to name some. The methodology we choose depends on how we want to map the progress of our project from start to finish. It is important that we pick the methodology we use based on the characteristics of our project because the chosen methodology will accommodate our activities throughout our project development process. In our case, we have a project where the output of the project is not well-defined, client feedback is expected as soon as possible, and a high-risk project. In these circumstances, it is wise to utilize Scrum as our project management methodology.
Fundamental of Scrum
Scrum is a lightweight framework that helps people, teams, and organizations generate value through adaptive solutions for complex problems.
-Ken Schwaber and Jeff Sutherland, 2020
Scrum itself is not a process, technique, or methodology. Scrum is a framework to assist the usage of agile methodology that helps teams structure and manage their work through a set of values, principles, and practices. Scrum works for high-risk and dynamic projects since it combines iterative and incremental approaches in developing client solutions.
Scrum Events
Scrum encourages us to hold five key events during a project development, all intended to help us work efficiently and closely together, as well as to improve our knowledge and become more effective in the future.
These five events are:
1. The Sprint
“With scrum, a product is built in a series of iterations called sprints that break down big, complex projects into bite-sized pieces,”
-Megan Cook, Group Product Manager for Jira Software at Atlassian.
A sprint is a short, time-boxed period when a scrum team works to complete a set amount of work. The Sprint is a container for all other events. Each event in a sprint is a formal opportunity to inspect and adapt Scrum artifacts.
2. Sprint Planning
Led by the scrum master and attended by the scrum team (scrum master, product owner, development team), Sprint Planning initiates the Sprint by laying out the work to be performed for the Sprint. This resulting plan is created by the collaborative work of the entire Scrum Team. In sprint planning, Product Owner ensures that attendees are prepared to discuss the most important Product Backlog items and how they map to the Product Goal.
The Sprint Goal, the Product Backlog items selected for the Sprint, plus the plan for delivering them are together referred to as the Sprint Backlog.
3. Daily Scrum
The purpose of the Daily Scrum is to inspect progress toward the Sprint Goal and adapt the Sprint Backlog as necessary, adjusting the upcoming planned work. The Daily Scrum is a 15-minute meeting event for the Developers of the Scrum Team. It is typically held in the same time and place every week to track progress toward the Sprint Goal.
4. Sprint Review
The purpose of the Sprint Review is to inspect the outcome of the Sprint and determine future adaptations. In sprint review, The Scrum Team presents and discusses the results of their work with key stakeholders.
5. Sprint Retrospective
Sprint Retrospective is a meeting that takes place at the end of a sprint. The purpose of the Sprint Retrospective is to inspect how the last Sprint went with regard to individuals, interactions, processes, tools, and their Definition of Done. In sprint retrospective, the scrum team identifies the most helpful changes to improve its effectiveness. They may even be added to the sprint backlog for the next sprint.
Scrum Artifacts
Scrum’s artifacts are visible items that provide key information that the Scrum Team and the stakeholders need to be aware of for understanding the product under development, the activities done, and the activities being planned in the project. There are three main artifacts in Scrum Framework:
- Product Backlog
- Sprint Backlog
- Increment
The Product Backlog contains all features, functions, requirements, enhancements, and fixes that the product should have in each release. Product backlog is the only requirement that will be used during the product development process. It also contains the main product goal to be realized by the scrum team.
The Sprint Backlog is the set of Product Backlog items selected for the Sprint, as well as a plan for delivering the product Increment and realizing the Sprint Goal. The Sprint Goal is the single objective for the Sprint. Although the Sprint Goal is a commitment by the Developers, it provides flexibility in terms of the exact work needed to achieve it. The Sprint Goal also creates transparency, coherence, and focus, encouraging the Scrum Team to work together rather than on separate initiatives.
The last artifact, Increment, is the sum of all the Product Backlog items completed during a Sprint combined with the increments of all previous Sprints. At the end of a Sprint, the new Increment must be a working product, which means it must be in a usable condition. The commitment of increment is the Definition of Done which describes the passing parameters of success metrics.
Scrum Framework is a framework that implements the Agile Principle. Agile is an iterative approach to project management and software development that helps teams deliver value and viable product to their customers faster and with fewer headaches. Instead of betting everything on a “big bang” launch, an agile team delivers work in small, but consumable increments. In agile development, requirements, plans, and results are evaluated continuously so teams have a natural mechanism for responding to change in a quick and adaptive manner.
Although agile development can be considered a faster, more adaptive, and more fitting method of project management in the current modern days of exponential growth of the digital world, agile development does come with its cost. Sometimes, the cost can even be concluded through the agile principles themselves. There are twelve principles in Agile development called. Some of the principles are the heart of Agile development and is known as the “Agile Manifesto”:
- Individuals and interactions over processes and tools. Continuous communication with all involved parties is prioritized in order to respond to business needs and drive the development process. Not only is continuous communication prioritized, but it is also required the project can sometimes get too dynamic and changes could be hard to document. You can easily get confused at finishing a task or a changing Sprint Backlog as its requirement wasn’t clear enough.
- Working software over comprehensive documentation. In agile development, working software is considered the measure of progress. This leads to prioritizing the development of working software and accommodation of customer and business needs over the amount of documentation produced. This implies that products built through Agile may lack documentation, and this could lead to potential hassle and extra work in handoffs as well as delays in development.
- Customer collaboration over contract negotiation. Collaboration with customers in order to meet the customers’ needs is encouraged in agile development. This could lead to sidetracked priorities and unused works as the Sprint went on.
- Responding to change over following a plan. Agile development prioritizes the ability to adapt to changes and requires the development team to be responsive, rather than sticking to a fixed plan. Because of this idea, it’s much more challenging to predict efforts like cost, time, and resources required at the beginning of a project and this leads to poor resource planning.
References: