Agile Software Development & Scrum

Yafi Ahsan Hakim
Portelier
Published in
6 min readOct 8, 2020

As a developer, we have a lot of choices as to how we want to build our application, if you are a straight forward person, you might like waterfall software development, if you are not that straight forward, maybe consider doing iterative software development or even spiral software development. There sure is a lot of option, but this time we are going to talk about agile software development.

Photo by Austin Distel on Unsplash

What is Agile?

Agile is an iterative approach in software development that helps in delivering value to the customer faster, usually by breaking the product into cycles so that we can do ongoing releases with small improvements in each cycle. this methodology requires significant interaction between the customer, tester, and the developer to work and is considered one of the realistic development approach.

Agile Manifesto: The 4 Values and The 12 Principles

In doing agile software development, there are many frameworks that we can use namely Scrum, Kaban, Extreme Programming, Crystal Clear, and many more frameworks. Even though there are a lot of frameworks, the creator of those methods once agreed on 4 values that will make software development better, that is Agile Manifesto, and it consists of:

1. Individuals and interactions over processes and tools

This means that we should focus on creating good teamwork and reach a state where we can work effectively rather than look for better tools.

2. Working software over comprehensive documentation

Customer will always prefer having the actual software rather than full documentation of what we want to build.

3. Customer collaboration over contract negotiation

Only the customer knows what they want, so it is important to work closely to the customer to create the software they want.

4. Responding to change over following a plan

It is more important for us to respond to changes rather than following a plan because sometimes the change that’s happening can make the plan irrelevant.

That is the 4 values of Agile Manifesto but it doesn’t stop there, to further explain their idea the Agile Alliance break it down even more into 12 principles, which consists of:

  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 time scale.
  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 behaviour accordingly.

What is Scrum?

You might notice that we already mentioned Scrum before, but what is Scrum actually? Scrum is one of the most popular agile frameworks mainly because of the fact that Scrum can be used in not only software development but also other teamwork related stuff.

The main idea of Scrum is that a Scrum team pushes each other to learn through experiences while working on a problem and reflect on their mistakes to improve. A Scrum Team consists of the Product Owner, Scrum Master, and Development team members. There are a lot of sections in a Scrum cycle and we are going to mention that later.

source: https://www.dewaweb.com/blog/wp-content/uploads/2017/11/Scrum-Methodology-Project-Management-Blog-Dewaweb-1280x720.png

Scrum Roles

A Scrum team consists of three roles which is the product owner, scrum master and the development team members, but what exactly did they do? We will find out right here.

1. Product Owner

The main job of a Product Owner is to set the priorities of each task, which ones need to be done first, and which can be delayed for later. Other than that a Product Owner needs to manage the scrum backlog and decide if things is ready to be released or not.

2. Scrum Master

Scrum Master’s job is to make sure that all the scrum activities are done successfully. Scrum Master needs to encourage and guide the development team until they can self-organize and make sure that the scrum is done transparently.

3. Development Team Members

The development team is actually the most important part of a Scrum team because they are the one that is actually delivering values to the stakeholders and the customer.

Scrum Cycle

The Scrum cycle consists of repetitive sprints, which is the period when a scrum team works to complete a set amount of work. Now sprints consist of smaller events such as planning, daily scrum, review, and retrospective.

source: https://startinfinity.s3.us-east-2.amazonaws.com/t/54ksa0Is7WiztNXeqL0fI0snREVVHLlcOZwLaSBH.png

1. Sprint Planning

In every start of the sprint, we always do sprint planning, the purpose of doing this is to define and discuss what can be done in the current sprint and how the team will achieve that. Sprint planning is done with the presence of all the scrum team, the product owner explains the goal for the sprint and then the dev team chooses the works to be done.

2. Daily Scrum

This daily scrum is done to inform everyone in the team about what’s going on in the team, it should not be conducted longer than 15 minutes. Everyone in the team should tell about what they’re doing yesterday and what they’re going to do today.

3. Sprint Review

The sprint review is where our deliveries and result is reviewed, we do demonstrations to make sure the delivery satisfies the acceptance criteria. Then it will be decided if the task can be considered “done” or not.

4. Sprint Retrospective

A sprint retrospective is done for the team to reflect on the past to improve the future. Find out what’s working and not working in the team and find a solution to that as a team.

After the retrospective is done, it’s time to do another sprint planning for the next sprint and the cycle continues.

My Experience in Doing Scrum

I actually haven’t done many Scrums, I was just started a couple of weeks ago, and I’m currently in the middle of my first sprint. During the first sprint planning, the product owner already prepared us with the backlog, me and my team decided to choose five tasks that we decided to break into 9 smaller tasks, then with the guide from scrum master, we discussed the scrum value of each task before eventually assigning people to those tasks. we did the daily meeting each Monday and Friday to know what everyone has been up to. We find kind of a blocker because we are not really familiar with the tech stack, but yeah, that is my experience up to this point doing scrum.

Thank you for reading my blog!

I hope this can be helpful!

--

--