Agile — The Modern Approach in Software Development

Gafirazi Irfandi
5 min readMar 22, 2021

Before we jump into the materials, let me tell you a short story. Let’s say that you and your friends are CS students. You guys are planning to make software for a school project. But you guys are confused about how to plan the steps for making software. Worry less! this is where Agile will help you.

Before we go into Agile, let’s go to the Software Development Methodology 101 first.

Software Development Methodology

Software development methodology is a process or series of processes used in software development. Again, quite broad but that it is things like a design phase, a development phase. It is ways of thinking about things like waterfall being a non-iterative kind of process. Generally it takes the form of defined phases. It is designed to describe the how of the life cycle of a piece of software.

https://www.alliancesoftware.com

So to summarize it all in layman’s terms, software development methodology is a series of steps that are conducted to build software. Eureka! After you know what is a software development methodology, now we can move on to Agile.

What is Agile anyway?

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.

https://www.atlassian.com/agile

Agile methodology is one of the methodologies in the software development methodologies that implements continuous iteration of development throughout the software development lifecycle.

Now, that you have already know the overview about software development methodology and agile. Before we jump into Scrum Framework let’s dive deep into the Agile Manifesto Principles first.

Agile Manifesto Principles

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity — the art of maximizing the amount of work not done — is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Now, after we already know the Agile Manifesto Principles, we can move on to the next topic which is the Scrum Framework.

What is Scrum Framework?

nutcache.com

Scrum is a framework that helps a team to develop a product with a series of conventions that makes the software development methodology process fast and easy. Scrum Framework is one of the frameworks from the Agile methodology.

In Scrum, there are 3 roles in one team which are:

  1. Product Owner
    Product Owner is the bridge to connect the stakeholders and the team. Product Owner is responsible to identify the requirements from the stakeholders and transforms them into a product backlog, which the product backlog will be deployed to a sprint
  2. Scrum Master
    Scrum Master is the person who manages the developers to ensure that the developers follow the Scrum framework conventions.
  3. Developers
    Developers consist of a set of developers that are responsible to build the product based on the product backlog that the Product Owner made by following the Scrum framework.

Scrum Artifacts
In Scrum, there are 3 main artifacts that we should know to implement the Scrum framework which are:

  1. Product Backlog
    The product backlog is a list of new features, enhancements, bug fixes, tasks, or work requirements needed to build a product.
  2. Sprint Backlog
    The sprint backlog is a set of product backlog tasks that have been promoted to be developed during the next product increment.
  3. Product Increment
    A product increment is the customer deliverables that were produced by completing product backlog tasks during a sprint.

Scrum Events
In Scrum, there are 5 regular events that are used to perform the correct ways of Scrum framework:

  1. Sprint
    Sprint is a fixed length of event that the team will deliver the results from the product backlog that are already made by the Product Owner at Sprint Planning.
  2. Sprint Planning
    Sprint Planning is the first event in one Sprint. In the Sprint Planning, the Product Owner discusses with the Developers about the Product Backlog that will be inserted into the Sprint.
  3. Daily Scrum
    Daily Scrum is a 15 minutes event that occurs daily to discuss 3 things which are:
    - What have the developers done in the previous day
    - Is there a problem while working on the previous day?
    - What will the developers do the next day?
    The Scrum Master is responsible to ensure that the meeting does happen and keep the Daily Scrum within the 15-minute time-box.
  4. Sprint Review
    Sprint Review second to the last event in one Sprint. The purpose of Sprint Review is to review the results of the current Sprint with the stakeholders.
    Therefore, it can produce an overview of the possible Product Backlog for the next Sprint based on the Sprint Review.
  5. Sprint Retrospective
    Sprint Retrospective is an event after the Sprint Review event. The purpose of Sprint Retrospective is to increase the effectiveness and the quality of the team for the next Sprint. In Sprint Retrospective, the team discusses:
    - What went well in the Sprint
    - What could be improved
    - What can the team do to improve in the next Sprint

Reference:

https://www.atlassian.com/agile

--

--