Agile

Ryo Axtonlie
7 min readMar 21, 2021

This article is written as an Individual Review Assignment for PPL CSUI 2021

What is Agile?

Agile is one of Software Development Cycle, where it took iterative approach to managing the project. A special treat that was available in Agile was delivering software in incremental delivery. Due to having an incremental delivery, it is possible to have a change in requirements, plans and even results. Whereas in Agile, communication and collaboration between each other play a big roles to built a good product.

Manifesto for Agile Software Development

Kent Beck, James Grenning, Robert C. Martin, Mike Beedle, Jim Highsmith, Steve Mellor, Arie van Bennekum, Andrew Hunt, Ken Schwaber, Alistair Cockburn, Ron Jeffries, Jeff Sutherland, Ward Cunningham, Jon Kern, Dave Thomas, Martin Fowler, Brian Marick. The Snowbird 17 with their different disciplines, agreed on a same set that defined the Manifesto for Agile Software Development

  • Individuals and Interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

The 12 Principles of Agile

When there are the Agile Manifesto, there are 12 Principles that was based on the Agile Manifesto :

  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.

Scrum

Scrum is one of a framework in Agile Software Development. In PPL CSUI 2021, we are implementing the Scrum framework in our project development. Scrum will be implemented in a few Sprint.

Artifact in Scrum

There is three artifact defined in a Scrum Methodology.

  1. Product Backlog. The Product Backlog is a list of requirements or changes needed to be made in a product. It is consist of description, order, estimate and value.
  2. Sprint Backlog. The Sprint Backlog is a set of Product Backlog that was selected to be done in a Sprint.
  3. Increment. Each at the end of a Sprint, there must be an increment that was done. The definition of “done” in increment is the development team must deliver an increment of product functionality at every Sprint.

Roles in Scrum

In a project development team, there are three available roles :

  1. Product Owner. The Product Owner is responsible for defining the Product Backlog and for maximizing the value of product and work of the team
  2. Scrum Master. The Scrum Master is responsible to make sure that the Scrum is going well. The Scrum Master is the one that organize a scrum team and managing the scrum events
  3. Development Team. The Development Team is consist of few people that was responsible to develop the product in Scrum.

Events in Scrum

There are several events available in a Scrum, this event will be done in every single Sprint.

  1. Sprint Planning. In a Sprint Planning, the Scrum team will be talking about what can be delivered in the upcoming Sprint. To make it simple, in Sprint Planning, we will discuss about what do we need to make in a Sprint and it will create a Sprint Backlog based from Product Backlog.
  2. Daily Sprint. Daily Sprint session is when the Scrum team do their job. When the Sprint is running, no changes made to the Sprint Backlog.
  3. Daily Standup Meeting. This is a session when the Scrum team will be asked about what did they do since the last scrum, the obstacle they faced, and what will they do before the next meeting will be held.
  4. Sprint Review. This is the session held after an Increment is done. In this session, the Scrum Team will collaborate with the stakeholders, demonstrating the product and will be discussing about what to do for the next Sprint.
  5. Sprint Retrospectives. This event will be held at the end of the Sprint, here the Scrum team will be evaluating the team works and will identify what improvement need to be implemented in the next Sprint.

Implementation in Magic People group for PPL CSUI 2021 Courses

Implementing Scrum Methodology

In our group project Magic People, we used the Scrum methodology to do our work. Our Sprint is consisted by 5 sprints, where each Sprint will be held for 2 weeks. In the beginning, our Product Owner already had the Product Backlog made already. In our first Sprint, we started with the Sprint Planning, where we defined what Product Backlog we should finish first based on the priority. After the Sprint Planning session is done, the Sprint Backlog is created for our first Sprint. After that, we started do finish our assigned jobs. Each Wednesday and Friday, we will gather and having a Daily Standup Meeting where we will be asked about our work progress.

Implementing the Agile Manifesto

  • Individuals and Interactions over processes and tools

In our Magic People group, everything is done in communication instead of process. Whenever something happened, if it was general thing we will discuss it together in using the LINE application. When something concerned us about specific thing, we made a Discord server so we can discuss about that one thing without getting interrupted. Furthermore, by using Discord we can store some documentation or command so we do not have to ask the same thing again and again.

  • Working software over comprehensive documentation

In the Magic People team, we will prioritize the Working Software before documentation of course. However, that does not mean we forget about the documentation. Currently, we are making the documentation after the features is already done.

  • Customer collaboration over contract negotiation

When the Development Team is about to work, we make sure to the Product Owner first about the specific Product Backlog that we are going to working on. Also, when we found something is not clear we will communicate with the Customer and seeking for a better solutions. So far, we already have some Customer collaboration on going during our Sprint. If we find something is wrong, we’ll discuss it with the customer and then looking for a win win solution for both of us. Example of the event is when we are facing difficulties to validate a payment due to have no knowledge about how payment system work at all. So we discussed with the customer, and the customer willingly let the admin to verify the payment manually.

  • Responding to change over following a plan

Agile Software Development allowing change in requirements, plan, and results. In Magic People group, we are responding to change from customer as soon as possible. For example, our customer promised to gave us the Persona and Wireframe for the products. However due to the customer being busy, he can not provide them and then we responded by making our own Persona and the Prototype based on customer demand.

Commentary on The 12 Principles of Agile

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. I agree with this part, furthermore we have tried implementing this principle on our project. We make sure that the customer can see our progress with working product per end of sprint.

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. This principle is something that we have to do, because it is customer wishes. However, doing this principle is not easy when the requirement change on a features that has been made but having lot of dependencies on it.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. In our project, we have tried our best to deliver working software frequently on end of sprint. However, we faced quite lot of problem here. Due to we’re still a college student, we do have another courses task as well which make us having hard time to developing. Furthermore, we have faced some issue on the repository went down, forcing us to halt our progress.

4. Business people and developers must work together daily throughout the project. This principle is entirely true, business people need to interact with developers as much as possible to make sure to product developed like what the customer wanted. However, during our project sprint, we can not do this due to our client were busy almost all time.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Our team keep trying our best to do this biweekly during the Sprint Retrospective session. However we faced the problem from stressed out by another courses project, which would make it was not possible to keep things become more effective all time.

That was all I wanted to share about Agile and Scrum in this article. I hope this article will motivate the readers to know better about them. Have a nice day!

Reference :

What is Agile? | Atlassian

Is the Agile Manifesto Still a Thing? | Atlassian

Scrum slide from PPL CSUI 2021 Courses

Agile Development slide from RPL CSUI 2020 Courses

--

--

Ryo Axtonlie

Just an ordinary Computer Science Student at University Of Indonesia