This article was written to help you with basic knowledge of Agile Methodology and as an individual review assignment of PPL CSUI 2021

the image is taken from pinterest

Yesss Agile !!!. Agile methodology is a response to the traditional development method, eg. the Waterfall method. The industry is a place that is in flux so traditional methods can’t handle it. The need to create products that fast deliverable and able to quickly adapt to changes and requests from users is a major requirement. It means the developer team needs to constantly improve and innovate their products to keep on top of the market.

The traditional methodology can’t handle this thing

In the case of the traditional methodology, the software development cycles take a long time to release, not flexible, and are hindered by the multitude of rules. These things are the main reason why many programmers leave the traditional methodology and moves to other methodologies that can meet their needs, agile methodology.

Agile methodology is a concept in software development where provides a rapid solution to every change in the development procedures. The solution evolves through a collaborative effort of self-organizing and cross-functional teams and their customers.

Agile development methodology

Agile development methodology works on iterations, which allow rapid testing and implementation of results. Each iteration will generally have a fixed time duration depends on the user reviews and the test result, you can improve the product after every iteration. It promotes faster project completion and highly-efficient in the development process.

Benefits of an agile development methodology:

  • Rapid software delivery and development.
  • Continuous user feedback.
  • Reduced software development timeline.
  • Friendly for change.

Agile Manifesto and Principles

Agile Manifesto is a term of a document about agile development methodology. The Agile Manifesto stated four agile values :

  1. Individual and interactions over processes and tools. Collaboration and communication between the team members are more important than tools or processes to solve the problem.
  2. Working software over comprehensive documentation. Software delivered to the customer is the highest priority.
  3. Customer collaboration over contract negotiation. The focus should be on continuous development. So collaboration between user and developer team is a need to build a feedback loop to achieve a satisfactory product.
  4. Responding to change over following a plan. The industry is always changing, Software teams should have the ability to pivot and change direction over the plan whenever they need to be able to compete in the market.

As a response to the manifesto, there are 12 agile principles as guidance to be agile.

the image is taken from selleo

How to agile in software development?

Agile development methodology has many frameworks in it. All of the frameworks follow the same agile procedures, features, and philosophy. Examples of these frameworks are Scrum Framework, Kanban Framework, Feature-Driven Development, Dynamic, Extreme Programming, and etc.

Here I’m going to share my experience about implementing agile in Software Development using SCRUM Framework.

Scrum Framework

Scrum is a framework that concentrates on manage teams effectively on collaboration. There are five values of the Scrum framework, commitment to the software product, openness to accept changes, courage to try new development processes, focus on a unified outcome, and respect the outcome of each sprint.

Scrum has three actors,

  • Product Owner, responsible to make requirements of the product. It designs the features/story to be implemented in the product development process.
  • Scrum Master, responsible to make the developer team works well under the Scrum process. It manages the team to be agile and complete all the tasks given.
  • Developer Team, responsible to implement tasks given by the scrum master to the software.

Scrum Artifacts

  • Product Backlog
example of the product backlog

Product Backlog is documents consist of features/stories to be implemented in the software, priority of the stories, actors in the stories, acceptance criteria, and additional notes.

  1. Priority, a value that represents the level of difficulty of a story. The value was discussed between the developer team member and usually, these values ​​follow a Fibonacci sequence.
  2. User Story, describes the actor and their need for the story.
  3. Acceptance Criteria, provide states that should be achieved after the story is implemented.
  4. Additional notes, information related to the story.
  • Scrum Board
example of the scrum board

Sprint Backlog is a document that contains information about the status of stories taken by the developer team. The story is broken down into small jobs to do and assigned to one or more developers to work on it. It helps the developer team to manage their job and communicating with each other.

Scrum Process

scrum process in each sprint
  • Sprint Planning

Sprint Planning is a phase when the team together plans what to do for the sprint. Here we determine which story to work on, their priority, and divide the story into smaller tasks to implement then put it on the scrum board.

  • Sprint

Sprint is held to the developer team works to execute the job that has been planned on the sprint planning. In this phase, there is a term called Daily Scrum.

the image is taken from starinfinity

Daily Scrum is a 15-minutes event for the developer team to give updates on their jobs and any problems that faced. Usually, the daily scrum is held 4 times each sprint.

  • Sprint Review

Sprint review is a phase to evaluate the job that has been done by the developer team. Here the product owner uses the acceptance criteria defined on the Definition of Done (DOD) documents to assess whether the story has been implemented properly or not.

Change in the requirement is likely to happen here. If a change appears, the developer team usually needs to re-implemented the change to meet the new requirements in the next sprint.

  • Sprint Retrospective

Sprint Retrospective is an event to build a reflection and grow up again motivation to the developer team. The developer team will gather to communicate their problems in the recent sprint. In my project, we usually share problems in the recent sprint, things that I should do and stop for the next sprint, and the happy and sad moments.

End Words

Thank you for your enthusiasm. I hope this article can help with your assignment and project. I know Scrum is a long journey. Keep motivated !!!

Reference

Buku Panduan Definition of Done PPL 2021

Buku Panduan Scrum PPL 2021

Computer Science Enthusiast