Agile — Respond to Change

Agile (Source: https://medium.com/pdb-r/software-development-agile-7a572c6e5a23)

Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment. — AgileAlliance

Before we dive deep into Agile, we need to understand more about Agile.

Why Agile?

Now, technology continues to grow with a rapid rate. You wake up next day with the world has a new technology, even small changes occurs everyday. You need to be able to adapt to every change happens. So, in short, Agile allows you to deliver a product while also allowing changes to take place.

“Alright, I’m going to use Agile.” — Someone

Okay, you have the intend to do so. You need to know what agile priorities. There are 4 key points of Agile:

  1. Individuals and interactions over processes and tools

When you allow each person to contribute unique value to your software development project, the result can be powerful. The interaction between team members is one of the most important factors of bringing a successful product.

2. Working software over comprehensive documentation

Maybe in the first time you program, many people will tell you that documentation is very important so your program can be read by people. But in Agile, working software is more preferred than comprehensive documentation. Doesn’t mean that you shouldn’t put ANY documentation, you just need to documentate the crucial/important part of your code.

3. Customer collaboration over contract negotiation

Before Agile was introduced, the customer only communicates with you when you are negotiating the contract, resulting that the product created may don’t live up the customer’s expectations. Agile makes the communication between you and the customer more alive, so they can give you continuous feedback about your product.

4. Responding to change over following a plan

Requirements may change overtime, so you need to be able to respond to the change. This may result in better product created.

Scrum

There are many methods that you can implement to use Agile Development. One of them is scrum.

Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value. — scrum.org

A scrum team consists of three roles, scrum master, product owner and the development team. These roles have different focuses in development of the product. The scrum master is like the manager of the team and responsible for keeping the process of the development. The product owner will create the product backlog, which is the task need to be done by the development team. Last, the development team, as the name said, are the developer of the product. This team will try to implement the goal of the product.

There are three main roles in a scrum team: the product owner, the scrum master, and the development team.

  • The product owner is responsible for the product backlog, an ordered list of requirements based on the product’s goal.
  • The scrum master is the coach of the scrum and is in charge of keeping the team right on track.
  • The development team are the ones who implement and add value to the increments.

There are five main events in Scrum:

  • Sprint Planning, where the team will plan by breaking the product backlog into small task, which then will be assigned a number representing the difficulty of the task. Then the team members will choose the task they want to do.
  • Daily Scrum, where the team held a short meeting (~30 minutes) to discuss the team’s progress. Each member will tell everyone three things: what have they done, what are they going to do next, and problems which might slow the progress of the development.
  • The Sprint, this is where the development team will do the task they choose.
  • Sprint Review are done at the end of a sprint. In this meeting, the stakeholders should be present and the team will show their sprint results live to the stakeholders. By doing this, the team will get some feedback by the stakeholders, or if there are any mistakes.
  • Sprint Retrospective, is some kind of reflections of how the sprint run. This will evaluate any weakness in your team and your team will try to improve based on by what your team think.
Sprint Review cihuy ❤

In my opinion, Scrum is one of the best framework for a software project development, because it enables us many amazing things such as sprint retrospective where you can discuss what to improve in your next sprint, daily scrum where you know how your team progresses, and many more benefits.

That’s all from me about Agile and Scrum, hope you have a nice day!

References

https://medium.com/pdb-r/software-development-agile-7a572c6e5a23

A Computer Science Student at Universitas Indonesia