Software Development with Agile and Scrum

Faza Aryoga
Electronic Logbook
Published in
6 min readMay 2, 2021

In the world of software development there are many approaches to the methodology of software development processes such as the Waterfall development, Spiral development, etc. Such development models are examples of a more traditional approach to software where developers would release software in massive feature updates. But these days with how fast people’s digital life goes with everchanging needs and requirements, developers need to address the constant changes they are required to make during the development process, this is where Agile comes to help.

image source: https://hackernoon.com/a-case-study-type-insight-into-agile-methodologies-for-software-development-cd5932c6

What is Agile?

Agile is an approach to software development methodology that helps developers to deliver to customer faster in more frequent, incremental releases. This allows developers to adapt to changes quickly because plans and results are evaluated continuously with the constant feedback. According to the Agile Manifesto, Agile touts 4 values with 12 supporting principles.

The 4 values are:

  • Individuals and Interactions Over Processes and Tools — people and using communication is what addresses changes, if the development is driven by processes and tools, the team are less quickly to adapt to changes.
  • Working Software Over Comprehensive Documentation — Extensive documentation was what hindered software development in the old days, causing long delays. Agile does not eliminate documentation but documenting requirements in form such as user stories should suffice to start development.
  • Customer Collaboration Over Contract Negotiation — Negotiation and renegotiation period where customer discuss the requirements of a software makes customers involved in the beginning and the end of development but not during it. In Agile, customers are engaged and collaborated with throughout the development process.
  • Responding to Change Over Following a Plan — Traditional software development regard change as an expensive expense, preferring to prioritize pre-determined plans with detailed set of features delivered in certain order with many dependencies. The short iteration cycle of Agile allows priorities to be changed in each iteration so that changes and new features can be quickly delivered seeing that Agile perceives changes as something that can always improve a project.

Along with 4 values, Agile also lists 12 principles to support the 4 values which are the following:

  • Customer satisfaction through early and continuous software delivery.
  • Accommodate changing requirements throughout the development process.
  • Frequent delivery of working software.
  • Collaboration between the business stakeholders and developers throughout the project.
  • Support, trust, and motivate people involved.
  • Enable face-to-face interactions.
  • Working software is the primary measure of progress.
  • Agile processes to support a consistent development pace.
  • Attention to technical detail and design enhances agility.
  • Simplicity.
  • Self-organizing teams encourage great architectures, requirements, and designs.
  • Regular reflections in how to become more effective.

With all that said, Agile itself is not a framework because Agile is just an approach to software development methodology that sets some values and principles. What developers use are framework that applies Agile values and one of such framework is called Scrum.

What is Scrum?

image source: https://www.scrum.org/resources/what-is-scrum

Scrum is a software development framework that applies Agile values. Scrum is one of the most popular agile frameworks due to it not only being usable in software development but also other teamwork related projects.

Scrum Values

The scrum runs on iterative cycles called sprints where the work being done is transparent, regularly inspected, and any changes or inadequacies are adapted and adjusted. To this end the Scrum team are expected to live to the five values:

Commitment, Focus, Openness, Respect, and Courage.

The Scrum team is committed to achieving its goal and having the focus of the team is to make the best possible progress toward these goals. The scrum team and its stakeholders are open on the work they are doing and any challenges they face. The scrum team members respect each other’s capability and independence and each has the courage to face tough problems and to do the right thing.

Scrum Team

The scrum team consists of three 3 crucial role: the product owner, the scrum master, and the development team. The product owner is the one responsible for creating the product backlog priority which would then be handed to the development team to work on. The scrum master is accountable for ensuring Scrum is carried out as defined. They do this by leading the the scrum team as a whole serving both the product owner and the development team. The development team are the people who are committing to creating usable increment of the project each sprint.

Scrum Events

A single developmental cycle in Scrum is called a sprint. A sprint can last ranging from two weeks to two months. There are four events happening in a sprint session: Planning, Daily Scrum meetings, Sprint Review, and Sprint Retrospective.

Sprint Planning

Sprint plannings are held at every start of a sprint session with the goal of determining what work can be done in said sprint session. This event is attended by every member of the scrum team.

Daily Scrum

The daily scrum is held to inspect the progress of work towards the goal and adapting the product backlog to changes if necessary.

Sprint Review

Sprint Review are held before the end of the sprint session to inspect the outcome of the sprint session, review the progress made, and determine future goals for next sprint session.

Sprint Retrospective

Sprint Retrospective is an event where team inspects how the sprint session went in terms of individuals, interactions, and various aspects of what happened during the sprint session. The team identifies what went well and what wrong during the sprint session and work out a solution on how to improve themselves on the next sprint session.

Scrum 2020

All the information regarding Scrum thus has come from the 2017 guide. The creators of Scrum have released the Scrum 2020 guide. Few notable differences other than the simplified language is that there is only “One” team in Scrum. Previously the entire Scrum team has three sub teams: product manager, Scrum master, and the development team. Now the whole team is accountable for the releasable increment every sprint, also the development team is simply called “developers” now. Also now a “Product Goal” is established, a state that the product is supposed to reach. There were also minor additions to the thought processes associated with Scrum.

Personal Experience with Agile and Scrum

So far I done two sprint sessions where in the first one our team were supposed to complete five product backlog but since we were unfamiliar with the tech stack of the project we were handed we had to familiarize ourselves first, causing delay which ended with us not completing some of the product backlog items. In the second sprint session, however, things went more swimmingly with us being able to deliver all product backlog items. Many things were learned from but two sprint sessions and it results in our team being more collaborative, efficient, and effective in software development.

--

--