What is agile?
Quoted from the Merriam-Webster dictionary, agile means:
- Marked by ready ability to move with quick easy grace
- Having a quick resourceful and adaptable character
Well, agile is actually a thing in the software development world with similar meanings as stated above. In software development, agile is:
Agile is an iterative approach to project management and software development that helps teams deliver value 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. Requirements, plans, and results are evaluated continuously so teams have a natural mechanism for responding to change quickly.
— Atlassian, the agile coach
In short, agile is an iterative approach to software development that delivers work incrementally. Instead of delivering it once at the end, in agile development, we always deliver small changes but iteratively with the purpose to minimize wasted works.
Agile Software Development Manifesto
Agile Manifesto is a document that is written in February 2001 by seventeen software development practitioners. It consists of 4 values and 12 principles.
The values are:
- Individuals and interactions over processes and tools
Getting the right people and helping them to work together > Using particular tools
- Working software over comprehensive documentation
Making sure that the software is working > A bunch of documentation that describes how the software works
- Customer collaboration over contract negotiation
Collaborating with customers to be able to directly got what they need > Doing contract negotiation
- Responding to change over following a plan
Adaptive to changes > Insisting to follow that plan without any consideration of the present
We can see that agile values human interaction and working product more than the others. It surely is a breakthrough considering developers have always been using the conventional method the whole time.
The 12 principles can be seen here: https://agilemanifesto.org/principles.html
From the team side:
- Team efficiency
Agile teams are known to be productive at completing work. It is due to the known high level of collaborative of an agile team. Agile teams have meetings regularly so they can know the progress of each member on a regular basis, such as what is the most important work now, what are the blockers, and most importantly they know what are the goals to achieve. And if there are some misunderstandings, they can fix them immediately. These make the entire team can move forward in unison.
- Adaptive to changes
Due to the works that are being delivered small but iteratively, the agile development process is well known for being adaptive to changes. It is because the team receives feedback frequently and rapidly.
From the product side:
With steady delivery, we can market our products faster, so accordingly, higher revenue as well.
- Product quality
Unlike any other conventional development processes that conduct testing after the whole development process is finished, agile starts testing when a task (no matter how small it is) is done. Therefore, testing will be part of the lifecycle as well. This allows the product owner to make changes if necessary and gives the product team early sight of any quality issues. This makes the resulting product quality will be high.
What is scrum?
Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.
It’s an implementation of agile development becoming a framework. Scrum converts the values and principles that are brought by agile into concrete steps.
To make scrum works, there must be these roles involved:
- Product Owner
Product Owner is an individual that’s chosen to be accountable for the product being developed. Therefore, a Product Owner must really understand the details of the product especially the product backlog. The Product Owner is responsible to explain the product backlog to the development team.
- Scrum Master
Scrum Master is an individual that’s chosen to be accountable for establishing Scrum as defined in the Scrum Guide. A Scrum Master is also responsible to monitor the development of the Scrum Team and provide directions so that Scrum values can be maximally utilized.
- Development Team
People in the Scrum Team who are accountable to create any aspect of a usable incrementally in each sprint. The main task for them is to complete the product backlog.
Before we move on into scrum events, there’s this one term that we have to understand in order to get the picture of scrum, they are:
A sprint is a short, time-boxed period when a scrum team works to complete a set amount of work. Sprints are at the very heart of scrum and agile methodologies, and getting sprints right will help your agile team ship better software with fewer headaches.
— Atlassian, the agile coach
A sprint has a maximum length of one month. However, in reality, it’s usually shorter than that (1 week or 2 weeks).
All the things that must be done to complete the whole project
The subset of the product backlog and the scope is only for one sprint. So it’s a list of things that must be done for one sprint.
These scrum events that are going to be mentioned have to be held regularly within a sprint:
- Sprint planning
Sprint planning is held at the beginning of each sprint and attended by the entire scrum team. Its objective is to create a plan for each sprint such as sprint backlog and sprint goal. The sprint goal is determined by the product owner whereas the sprint backlog is determined by the development team with scrum master approval. In this step, each member of the development team discusses breaking down the product backlog item into smaller tasks and assign each task to the corresponding developer.
- Daily scrum
Daily Scrum is a short meeting that is usually held every day to inspect the progress of each scrum team member toward the goal which has been agreed upon. Daily Scrum is usually attended by the Scrum Master and development team. Usually, what is discussed are what has been done, blockers if any, action items to be done.
Whenever there are no official scrum events being held, it’s time for the development team to do the task that’s assigned to them.
- Sprint review
Sprint review is a meeting held at the end of each sprint. Its focus is on the product. Its objective is to see the outcome of a sprint. This meeting is attended by the entire scrum team. Any stakeholders, managers, etc are invited to attend to give feedback. Demo of what’s being completed in this sprint is usually part of this meeting. The product owner has the authority to decide whether to release the completed functionality or not.
- Sprint retrospective
Sprint retrospective is a meeting held at the end of each sprint as well but its focus is on the process. This meeting is attended by the scrum master and development team. For product owner, it is recommended to attend but not obliged. In this meeting, the scrum team discusses what needs to be improved and what went well. They can make their own plans to improve their own process.
- Grooming (optional)
While the other meetings are compulsory in a sprint, grooming is optional. Grooming is a meeting to discuss the product backlog that will be implemented in the next sprint. In other words, grooming is a preparation for the next sprint planning.
For PPL, my team uses Scrum as well. However, all of us must have roles as a developer. Hence, it’s needed to have teaching assistants as scrum master and product owner for this project.
For scrum events, my team apply all of them except grooming. But there is a slightly difference for daily scrum. Because we are still college students who still have activities in other subjects, daily scrum is not held everyday but twice a week.
That’s all for now. I hope you get new knowledge and new insight from my explanation and my experience. Thank you for reading this far, and I’m sorry for any mistakes that I make here :D
Glenda Emanuella Sutanto