Agile Software Development with Scrum
--
Agile Software Development Paradigm
The Agile SD Paradigm means that developments is adaptive, continual, and flexible. When developing softwares in Agile paradigm, requirement and solution discovery can happen at any time. The development itself requires collaborative efforts from all stakeholders(Including customers) and developer teams, whether it’s a self-organizing team or cross functional teams.
Agile methods is good for developing softwares that requires frequent updates in it’s requirements/implementation. It relies on strong teamwork, and individuals to keep up with the work and changes. Agile teams are self-organized and/or cross-functional.
Self-organized teams means that the work can be split and left to the individuals in the team. Cross-functional teams means that the whole team works to finish a specific work/task.
The Agile Manifesto
The Agile SD Paradigm is popularized and based on the Agile Manifesto, which contains 4 core values and 12 principles which become the basis of Agile Software Development. The document is made by The Agile Alliance in 2001 in response to the slow development progress of Waterfall Paradigm.
Based on the alliance’s combined knowledge and experience, they proclaimed the 4 core values. They are:
- Individuals and interactions over processes and tools
Each individuals and it’s capabilities is favored over the process/tools for software development itself. - Working software over comprehensive documentation
Making a working software that is usable is always favored over the documentations/overall cleanness. - Customer collaboration over contract negotiation
In development, contract negotiation isn’t always perfect. This made agile developers always trying to involve customers as much as possible in development and testing. With all the feedback given by the customer, the developers can make sure that the software is working as intended. - Responding to change over following a plan
Just like the point 3, there’s no perfect plan. Agile developers will choose to change plans as needed. The team needs to adapt to changes made, whether it’s planned change or surprise changes.
The manifesto is based on the following 12 principles:
- Customer satisfaction by early and continuous delivery of valuable software.
- Welcome changing requirements, even in late development.
- Deliver working software frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Projects are built around motivated individuals, who should be trusted
- Face-to-face conversation is the best form of communication (co-location)
- Working software is the primary measure of progress
- Sustainable development, able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity — the art of maximizing the amount of work not done — is essential
- Best architectures, requirements, and designs emerge from self-organizing teams
- Regularly, the team reflects on how to become more effective, and adjusts accordingly
Scrum Framework
Scrum is an Agile framework made to help people develop, deliver and sustain products. Scrum is designed for developer teams with 10 people or less. Scrum holds 5 value, which is Commitment, Focus, Openness, Respect, and Courage.
Scrum Events and Terminology
Sprint
Scrum framework develops product iteratively by breaking the workload into goals that can be completed within time-boxed iterations (“Sprints”, which is around 1–4 weeks, and mostly 2 weeks). Any changes related to the goals in a sprint can only be discussed after the sprint ends(in sprint planning ).
Product Backlog Item
The features that needs to be created(acquired from breaking down client specifications and goals), measured by Sprint Points. Different scrum teams uses different Sprint Points measurement. In PPL 2021, the score and time it took for a SP to complete according to DoD is:
- 1 SP = 30 Minutes
- 2 SP = 1 Hour
- 3 SP = 3 Hour
- 5 SP = 5 Hour
- 8 SP = 8 Hour
- 13 SP = 1 Full day
- 15 SP = 2 Full day
Scrum Board
A Scrum Board is used to keep track of the team’s progress in a sprint(or the whole development cycle). Everyone can monitor each other easier this way, just by moving the PBI cards around. If someone’s completed with their part, they can participate in helping the other teammates. In the team, this board will be used in daily meetings as the overall progress report.
Sprint Planning
At the start of a sprint, the scrum team holds a Sprint Planning meeting to:
- Decide how many PBI to take in a sprint
- Preparing the sprint backlog
- Decide the Sprint Goal
- Decide who does what
The result of Sprint Planning is used as a guideline for working in that specific sprint duration.
Daily Scrum
The Scrum Master(the leader) tracks the team’s progress with the use of daily scrums(short meetings usually 15–30 minutes). Usually it’s held to tell each other about progress, obstacles, or other things affecting the sprint.
Sprint Review
At the end of a sprint, the team holds an event called sprint review to check, review, and discuss the results of the sprint. The event also might include stakeholders to discuss about the next sprint.
The Client and Product Owner will attend to review the demonstration of the finished PBI. The Client can choose whether to accept or reject the demonstrated PBI. If it’s accepted, then it can be merged to master. If rejected, then it must be reworked and be reviewed again at the next sprint review. Rejection is usually caused by bad results, unexpected error, or changes in the PBI itself.
Sprint Retrospective
Sprint retrospective is held to reflects performance in previous sprint and improve for the next sprint. Team members are also encouraged to discuss, tell about problems and solutions, and increase the overall mood of the team.
Scrum in PPL 2021
In PPL 2021, the scrum hierarchy consists of one Scrum Master, one Product Owner, and the Scrum Developer team, consisting of 5 people. Each of the job’s description is:
- Scrum Master is responsible to maintain Scrum guidelines and ensures that the team is doing well. Scrum Master also leads and serves the Developer team so that the team can keep improving and moving forward.
- Product Owner is responsible to maintain communication between the Scrum team and Client, create Product Backlog Item from guidelines and goals set by the Client, and inform the team about the PBI.
- Scrum Developer team is responsible to implement the Product Backlog Item set by the Product Owner, in coordinated and planned sprints. Dev team is also responsible to work within boundary and rules set by the Scrum Master(along with the Definition of Done).
Thank you for reading!
References:
Agile software development — Wikipedia
https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/
Why Agile is important for Software Development — Digital Template Market
Scrum (software development) — Wikipedia