Understanding Agile
Photo by Daria Nepriakhina on Unsplash
“Not just flowers, but ideas also bloom in spring.” In the spring of 2000, a group of developers, 17 people to be exact, held a meeting in Oregon to discuss about a new breakthrough in the software developing world. And this was the very start of Agile development. A methodology where, just like its name-agile, implements a very fast and flexible way of developing a software.
Why Agile?
Living up to the name, agile implements a quite dynamic way of developing a software, breaking it down to parts where it became something software engineers could develop and deliver within sprints. The idea might sound risky, but contrary to popular beliefs, this way of developing a software is well-thought and well-calculated. The idea was summarized into a manifesto, named “The Agile Manifesto”
The manifesto consisted of twelve main points:
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 timescale.
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 behavior accordingly.
Here comes scrum
Scrum is a framework part of the agile methodology, scrum is lightweight, iterative, incremental. In these few months, me and my teammates have worked using the SCRUM method, since this is our first time working with a real client, it was nerve-wracking and scary.
“What if we could not do it on time?” “The project looks big!” All of these questions came into our mind. We had no idea what to expect, despite our experience on working on a software for school projects.
As we applied SCRUM, we became more relaxed and the tasks seemed more feasible. We discussed about the ideas that we could do, how much weight does the product backlog ‘deserves’, and basic things regarding the product backlog items given by the product owner. It turns out that we really had fun doing everything. Up until now, everything is working and is still ongoing.
A few weeks prior to the sprint planning and first sprint, we had a guest lecturer in our class, Mr. Wiguno, Head of Engineering at Sirclo. Mr Wiguno really gave us a helping hand on picturing how the SCRUM method would be applied? what to do? what to not do? and many other informative, useful things.
Although I and my teammates are still struggling to avoid the things that Mr Wiguno told us not to do (such as telling stories on daily stand up meetings), we found that Agile and SCRUM is really helpful and amazing.
Sure, we had some problems along the way but with the help of our each other and SCRUM, it became easier and bearable to overcome!