In this current age, technological advances are ever changing. As a result, development teams need a way to respond and work with those changes. That’s where agile steps in. Agile is a modern take on software development that puts a spotlight on delivering a working software while also allowing changes to take place. It specializes in efficiency, adaptability, and customer satisfaction.
According to the Agile Manifesto, there are four key agile values:
Individuals and interactions over processes and tools
Agile highly values the individuals behind the development process. The way members in the team interact with each other can make or break the project. Great interaction between team members or with customers can lead to even greater products.
Working software over comprehensive documentation
Although detailed documentation isn’t a bad thing, what good is it if we’re so focused on it that we can’t deliver the product to our stakeholders. Product delivery is a main priority in agile therefore that’s where the focus should be. With this mindset, we can think of the documentation as a cherry on top.
Customer collaboration over contract negotiation
Before agile, contracts between the customer and developers were a done deal. Products were only specified in the beginning which led to products that don’t really live up to the customer’s expectations. Agile fixes that by allowing there to be continuous feedback between the customers and the developers. Customers and developers rely on this to ensure that the end product is in accordance to the customer’s actual needs.
Responding to change over following a plan
Let’s face it, change is inevitable. From time to time, requirements and priorities can evolve and agile is all about embracing it. If we ignore those changes, we’ll only be left with an outdated product.
Scrum is a framework that implements agile. Scrum tackles complex issues by splitting them into smaller, simpler parts that will be delivered in increments. By doing this, the developing team will get a better grip on how to deal with future problems based on their progress during the development process.
There are three main roles in a scrum team: the product owner, the scrum master, and the development team.
- The product owner is responsible for the product backlog, an ordered list of requirements based on the product’s goal.
- The scrum master is the coach of the scrum and is in charge of keeping the team right on track.
- The development team is the one who implements and adds value to the increments.
A scrum consists of several time frames called sprints. One sprint can range from two to four weeks. In my own experience, one sprint is two weeks long. During a sprint, the scrum team works on an increment based on their sprint backlog, which is a selection of requirements from the product backlog. After one sprint is done, another sprint will take its place.
A sprint is started off by sprint planning. During sprint planning, our team breaks down the backlog(s) selected for the current sprint into smaller tasks. Each task is then assigned an estimated weight based on its complexity. After all of the tasks are weighted, each team member selects the tasks they want to work on. We try to make sure that the task weights are evenly distributed among team members. Once everyone is happy with their tasks, the sprint commences. We use Gitlab boards to save these tasks so that everyone can also easily check their tasks anytime they need to.
Daily Scrum/Standup Meetings
In most developments, daily scrums are held every day, but our team does four daily scrums per sprint. The main objective of a daily scrum event is to check in on the team’s progress. Each developer reports what they have done, what they are going to do, and if there are any problems that they are facing. Usually, our daily scrums last from twenty to thirty minutes. In our daily scrums, everyone gives an update on their tasks. While everyone gives their updates, we also update the tasks on our Gitlab boards. When someone starts a new task, that task is moved from the “To-Do” board to the “Doing” board. When a task is completed, it is moved from the “Doing” board to the “Closed” board.
Sprint reviews are carried out at the end of the sprint. During the sprint review, the sprint work results are presented and demonstrated to the stakeholders. The stakeholders, then, can give input or feedback on the results.
The last event of a sprint is a sprint retrospective. The sprint retrospective is used to reflect and evaluate how the sprint has gone. Using the evaluation, the team examines what and how they can improve in the next sprint. In our sprint retrospectives, we review what was good and bad in our previous sprints. After that, we discuss the things that we can start and stop doing to better our next sprint. We like to use metro.io boards to help visualize our discussion better.
Agile Values in Scrum
Agile demands high-quality interactions among team members. Although the current conditions of the pandemic may push us into working remotely, it is still very important to maintain good communication and teamwork within the team. Online daily scrums facilitate that need. During the daily scrums, we get to communicate where we are in our work progress and share any troubles or obstacles we are facing. After the daily scrum, everyone gets a better picture of how things are going and it becomes easier to help out one another.
Another way that scrums implement agile values is through sprint reviews. Sprint reviews facilitate the customer collaborations and communications mentioned in the agile values by allowing the scrum team to gain insights and inputs from the stakeholders. If there is something that the stakeholders think can be improved, they can communicate and discuss that through the sprint reviews as well. These discussions may also lead to there being changes for the next sprint.
Agile and Scrum Values In Our Team
For my software development class, we chose to use Scrum as our methodology. From the experience, we have felt a lot of ways Agile and Scrum values have impacted our team and individuals. By implementing those values and principles, I felt that our team has become a lot more stronger and productive. Believing and implementing those principles and values in a team unified the team’s level of commitment and ensured that everybody is on the same page. This also led our team to be more comfortable working with each other and helped us be more communicative with each other.
Another benefit I got from the Agile and Scrum values is that I felt my productivity increase. Agile and Scrum values demanded me to focus on the main goal, which was being able to deliver the working product into the customer’s hands. By focusing on that, I managed to get a lot more work done than I usually would. It also helped that the team I worked in was also open and respectful towards each other, so when I was facing a hurdle, I could talk to them about it and they would help out.