Scrum-on-Agile: an approach to modern software development process

Haddad
5 min readMar 2, 2023

--

Photo by Lala Azizli on Unsplash

Developing a software product is a complex iteration so there is a well-known standard guideline software development that followed the waterfall methodology. It is a software development process model that follows a sequential, linear approach to software development. In this model, the development process is divided into distinct phases, with each phase being completed before moving on to the next one. The phases typically include requirements gathering, design, implementation, testing, deployment, and maintenance. Once a phase is completed, the development team cannot go back to the previous phase without starting the entire process over again. However, with advancements in technology, it has become clear that this method is not always suitable for keeping up with the software development lifecycle. The Waterfall model is often criticized for being inflexible and not allowing for changes or revisions once the development process has begun. One of the main problems is that with the waterfall method, one cannot deliver anything until the end of the development timeline. This becomes an issue when the product requirements become more complex and require more iteration. The more complex the requirements, the more development time is needed, which increases the risk of errors. Developing a complex product with the waterfall method can therefore be costly and time-consuming, with no guarantee that the product will be ready within the specified timeframe.

“Agile is not a methodology, it’s a mindset. It’s an attitude, a way of thinking that values individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan.”

— Agile Manifesto

In response to the disadvantages of the traditional methodologies, a group of software developers coined the term “agile” with the realization that waterfall processes were no longer suitable for software development. They came together to create the Agile Manifesto outlining a set of new guidelines to follow with values and principles for Agile software development. The most well-known principles as follow:

  1. Customer involvement: Agile teams prioritize the needs of their customers and involve them throughout the development process to ensure their needs are being met.
  2. Iterative development: Agile teams work in short iterations or sprints to deliver working software quickly and continuously improve their work.
  3. Self-organizing teams: Agile teams are self-organizing, meaning they are empowered to make decisions about how they work and how to solve problems.
  4. Continuous improvement: Agile teams continuously reflect on their work and make improvements to their processes and practices.
  5. Collaboration: Agile teams emphasize collaboration between team members, stakeholders, and customers to ensure everyone is aligned on goals and priorities.
  6. Emphasis on working software: Agile teams prioritize delivering working software over documentation or other artifacts to ensure that value is being delivered to customers.
  7. Face-to-face communication: Agile teams prioritize face-to-face communication to ensure that information is shared effectively and misunderstandings are minimized.

Agile is an iterative approach to software development that emphasizes collaboration, flexibility, and customer satisfaction. There is no one-size-fits-all set of rules for Agile so along with the time, “Agile Development Process” becomes an umbrella term to cover some framework implementations that follows it principles. One of the framework implementing Agile is, as we already know in this modern era, Scrum.

To achieves the best outcome, implementing Scrum could be tricky because there are severals new components we need to understand the roles and it related activities. So, Lets get into it!

Scrum Terminologies

Scrum is a flexible framework that allows change on it processes and some organizations may adapt the terminology to fit their specific needs, but there is common terminology that usually followed to implement a Scrum

  • Product Backlog: This is a prioritized list of user stories and product features that need to be completed in a project. The Product Owner is responsible for creating and maintaining the Product Backlog, and it is used to guide the work of the Development Team.
  • Sprint Backlog: This is a list of tasks that the Development Team commits to completing during a Sprint. The Sprint Backlog is created during Sprint Planning and is used to guide the work of the Development Team during the Sprint.
  • Increment: This is the sum of all the completed Product Backlog items at the end of each Sprint. The Increment is a working version of the product that can be reviewed and tested by stakeholders and customers.
  • Sprint: A Sprint is a time-boxed period of one to four weeks during which the Development Team completes a set of tasks from the Sprint Backlog.
  • Sprint Planning: This is a meeting held at the beginning of each Sprint to plan the work that will be completed during the Sprint. The Product Owner and Development Team work together to create a Sprint Goal and a list of tasks for the Sprint Backlog.
  • Daily Scrum: This is a daily meeting held by the Development Team to review progress and plan for the day. The meeting is time-boxed to 15 minutes and each member of the Development Team answers three questions: What did I do yesterday? What will I do today? Are there any impediments?
  • Sprint Review: a meeting held at the end of each Sprint to review the work completed and get feedback from stakeholders and customers. The Product Owner and Development Team present the Increment and discuss what was completed during the Sprint.
  • Sprint Retrospective: This is a meeting held at the end of each Sprint to reflect on the previous Sprint and identify areas for improvement. The Development Team discusses what went well, what could have been done better, and identifies action items for improvement.

Those kind of activities implemented by the three main roles on Scrum:

  1. Product Owner

Roles that creates and maintains the Product Backlog, which is a prioritized list of user stories and product features that need to be completed in the project. The Product Owner also communicates with stakeholders and customers to ensure that their needs are met and the product is delivered on time.

2. Scrum Master

Responsible for facilitating the Scrum process, removing any impediments that may be hindering the Developer, ensuring the team adheres to the Scrum framework. The Scrum Master also helps the team to continuously improve their practices and processes.

3. Developer

responsible for delivering a potentially shippable product increment at the end of each Sprint. The team is self-organizing and cross-functional, meaning that they have all the necessary skills to complete the work required in the project.

On the conclusion, Agile Development is the process to overcome the difficulties of traditional method to keep up with the complex product development. Scrum is one of the framework that follows Agile Development Process. To make it success, there are several roles and activities to follow so it won’t be a chaotic process. By understanding the Scrum framework and its components such as roles (Product Owner, Scrum Master, and Development Team), artifacts (Product Backlog, Sprint Backlog, and Increment), and events (Sprint, Sprint Planning, Daily Scrum, Sprint Review, and Sprint Retrospective), teams can work together more effectively and deliver high-quality products to customers.

--

--

Haddad
Haddad

Written by Haddad

Computer Science Graduate from Univertas Indonesia. Exploring Backend Automation, AI/ML Engineering, and Sofware Infrastructure. Github: @haddad9

No responses yet