The Agile of My Eye
For you who don’t get it, this article title is actually a pun to the famous saying:
“The apple of my eye”
In Old English, the pupil of the eye (the round, dark centre) was called the ‘apple’. It was thought that the pupil was a round object much like an apple (a piece of fruit). When you look at someone, their reflection appears in your pupil. So if someone is the ‘apple of your eye’, he or she is someone that you look at a lot and enjoy seeing.
On today industry, especially in Indonesia, agile somehow is like that apple of many people eye and many companies have already used it. But what exactly is agile and why it matters?
There is only one thing certain in software development, and that is change. On the first meeting with your client, both of you agreed what the requirements are. Three days later, your client says that the requirements must change because the industry also changes. That’s a moment a software developer will face once in their career. How to handle those rapid change? yes, one of the answers is using Agile Software Development.
A deeper dive into “Agile”
Agile Software Development is a group of software development methodologies that are based on the same principles or short-term system development that requires rapid adaptation from the developer to changes in any form.
In the case of conventional software product development methodologies, any software product development will be governed by a set of rules and will generally take months or years to be completed.
The example is waterfall development model, where you don’t get to see or test the progress in the software development until the entire product is built. That kind of methodologies will usually take a lot of time and effort for any phase in software development life cycle.
But the agile development model works on iterations, which allows rapid testing and implementation of results. Ultimately, it promotes faster project completion and makes the developmental process highly efficient.
Each iteration will generally have fixed time duration and depending on the user reviews and the test results, you can improve the product after every iteration. That’s why a change in requirements is easily handled in agile.
Actually, there are so many definitions for agile methodology. Each group or company who use agile have their own definition for agile. That’s why I want to focus on its implementation in my faculty project.
A month as an agile developer
Extreme programming and scrum is the most famous agile implementation in today industry. My faculty decides to use scrum for this year’s project. Scrum is part of the Agile Manifesto.
Before we start, scrum is known to have some particular roles and each role has its own responsibilities. The roles generally consist of:
- Product Owner
As described in the Scrum Guide, a Scrum Product Owner is responsible for maximizing the value of the product resulting from the work of the Development Team. How this is done may vary widely across organizations, Scrum Teams, and individuals. - Scrum Master
The Scrum Master is responsible for improving interactions between the Scrum Team and the client in order to maximize the productivity of the Scrum team. Finally, the Scrum Master is responsible for arranges and facilitates the team’s meetings — daily Scrum, planning sessions, sprint retrospective, and etc. Scrum Master is like the superior officer of scrum team. - Development Team
The development team is like the player on a football club. They are the one who makes and develop the actual product for the product owner. Usually, the development team have 5–9 members. But on this project, we only have 5 people who all have the same responsibility.
Now let’s get to the first day, shall we! Assume that the requirements are already set.
Sprint Planning
Sprint planning is an event in the Scrum framework where the team determines the product backlog items they will work on during that sprint and discusses their initial plan for completing those product backlog items. So this is where I and my team get to assign tasks for 1 sprint duration.
We use GitLab board to manage thing easily and here is the result of our first sprint planning.
We could see that each backlog or task, is assigned to a different person. Our scrum master helps us to make a rational decision about what we will do on each sprint.
Daily Scrum Meeting
During sprint, each member must implement the tasks that they’re responsible for. There are usually daily scrum meetings where each member gives updates about the tasks they’re currently working on. Scrum master must be present when the daily scrum is going.
Even though it’s called ‘daily scrum’, My team decided to only have 2 daily scrum meetings in one week due to time limitations. These meetings only take 10–20 minutes each person and are always held on Monday and Thursday. So it is 4 daily scrum per sprint. On each daily scrum, my team is always open about every problem we had. My scrum master also always try to help us if we faced any problem during the sprint. Not only technical problem but also any kind of problem.
Sprint Review
After 2 weeks of sprint full of blood and tears, there will be a working product that can be presented to the client. The clients will evaluate and decide if the product that we working on meet their standard. Lucky for us, the client accepted our first sprint. Oh and also, at this time, we can discuss any changes in the requirements from the clients.
Sprint Retrospective
Sprint retros is an opportunity for the Scrum Team to inspect itself and create a plan for improvements to be enacted during the next Sprint. Sprint retrospective is held on the same day after the sprint review. We use metroretro.io for our sprint retrospective.
Here is the sneak peek of our sprint retrospective. It helps us to identify our weakness and our strength. As we can see, after we evaluate our strength and weakness, there is an action section and that’s where our solution to our problem belongs.
After the sprint retrospective is finished, we repeat the same cycle by going back to the sprint planning phase, and so on.
Well, know that we now what agile is, agile sounds all nice and perfect, doesn’t it? The phrase the agile of my eye sure fit perfectly with how agile helps us in today industry which full of changes. It’s beloved and I think, every people in the industry should know basic things about agile.
Cheers!!