A Glance About Agile
An overview of agile software development and its implementation
Intro
In daily basis we may know that agile means an act of moving quickly. In this article, I will discuss how agile can be applied to software development process which is called “Agile software development”.
What makes it different from other software development method is that Agile has focus on the people’s way of work in team. Each team member practices a self-organize and cross-functional work, but also collaborate with each other. Even though it is “self-organize”, the team still has a manager to guide them if there are issues that can’t be handled by them.
Agile software development has several frameworks and practices, some are listed below:
Frameworks
- Scrum
- Extreme Programming
- Feature-Driven Development (FDD)
Practices
- Pair programming
- Test-driven development
- Stand-ups
- Planning sessions
- Sprints
Agile Manifesto
Agile software development focus on things mentioned in “agile manifesto”, which is:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Agile Principle
The 12 “agile principle” also act as a guide to do agile software development.
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
Scrum and It’s Implementation on Team
In this article, I will discuss one of agile framework or methodology that being used in my PPL* team for developing a software, which is Scrum.
Scrum Team
Scrum team consists of:
1 Scrum Master +1 Product Owner + Developers
- Scrum masters are the person who acts like some kind of a leader for the scrum team. They lead and coach the team to do scrum framework. They make sure the developers can manage themselves to do each task that has been assigned, and also help the team if there’s some trouble.
- Product owners are the person who manage the product backlog items (PBI)
- Developers are the people who implement the PBI so it turns to be a usable increment on every sprint.
In PPL*, scrum master and product owner are the teaching assistants of PPL*, while me and my team act as developers.
Scrum Artifacts
- Product Backlog
Product Backlog is the feature list that needs to be work on. The chosen product backlog item (PBI) for a sprint will have to be breakdown again into smaller tasks. For example, in my team there is a PBI for homepage. After we select the homepage PBI to be done in the sprint, we break it down into a list of smaller tasks, which is:
- Installing sonarqube
- Setting up the CSS theming
- Create hero section + test
- Create navbar component + test
- Create services’ card component + test
- Create benefits’ section + test
- Create footer component + test
2. Sprint Backlog
Sprint backlog consists of Sprint Goal, set of PBI chosen for the Sprint, and actionable plan to deliver increment.
3. Increment
Increment is PBI that have been worked on and meets the Definition of Done, so it can be released.
Scrum Events
Scrum events are all the events that needs to be done in one Sprint. In PPL* a Sprint is 2 weeks long. Scrum events consist of:
- Sprint Planning
At this stage, developers discuss and choose what PBI they should worked in the next sprint, then break it down to a list of smaller tasks. Beside developers, this sprint planning is also attend by scrum master and product owner to guide the developers.
2. Implementation
It’s when developers implement the chosen PBI.
3. Daily Scrum or Stand-up Meeting
Daily scrum is a brief meeting attended by Scrum master and developers to discuss what have been developers doing on the PBI task, what task they want to work next, and is there any problem about the implementation or personal problem that can interfere the implementation.
In My PPL* team, we held our stand-up meeting every monday and thursday night.
4. Sprint Review
At the end of a sprint, sprint review is held. At this stage, the scrum team presents the PBI that has been done to the stakeholders, such as client and other key stakeholders. After the presentation is done, stakeholders will inspect the team’s work and discuss is there any drawback or mistake about the work.
In PPL* sprint review is attended by scrum team, client, our PPL lecturer, and teaching assistant who assess our score in this PPL project.
5. Sprint Retrospective
After sprint review is done and before entering next sprint, we held sprint retrospective. In this stage, scrum team discuss 3 points that happened in the last sprint, which is what went well, what problems that come up, and how those problems were or were not solved. Then, from those 3 points, conclude actions that should be done by scrum team for a better next sprint.
In my PPL* team, because we meet remotely, we do the retrospective online. The tools that we use is metroretro.io.
Conclusion
We have reach the end of the article. We have learn what is agile, its manifesto, its principle, and also one of agile methodology, Scrum, and its implementation on my PPL team. To conclude, Agile methodology is one of software development methodology which may not be suitable for all. Although it provides flexibility, immediate feedback, and has less defective product as a result, agile also has some cons, such as very little documentation, and client may ask for more system improvement because of agile’s flexibility, but it will result to mismanaged projects.
So choose carefully the most suitable methodology for your software development. That’s all, thank you for reading!
Note
*PPL (Proyek Perangkat Lunak) is a course about software engineering project in Faculty of Computer Science, Universitas Indonesia.