- Published on
Waterfall Difficulties Create Agile Methodology
- Authors
- Name
- Advis Tasyah Mulia
- @licacila_
Have you ever heard the term agile? In Indonesia, this word has become popular, especially with the growth of many technology startups, and it has become a concept applied within them. Agile is closely related to the process of developing information technology products. Agile emerged from the dissatisfaction of some individuals with the waterfall methodology. But what is agile? And what is its relationship with waterfall?
What is Waterfall and Why Switch to Agile?
Waterfall itself is a traditional software development methodology where the creation process occurs iteratively from requirement gathering to development. Waterfall starts with a client's request and is transformed into a plan that will complete all the features in those requirements in a process called a waterfall. Waterfall is considered inefficient due to lengthy processes in requirements and long gaps to product delivery. It is also seen as inflexible to changes because it forces adherence to a predefined plan. Therefore, the dissatisfaction with these aspects was the main driving force to create the foundation for agile, known as the agile manifesto.
What is Agile?
Agile is a method for software development designed by 17 developers in 2001. In that year, they created the agile manifesto, consisting of four main points:
- Individual and interaction over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
From these four points, it can be concluded that speed in developing software and collaboration with application users are key elements in software development. The manifesto prioritizes acting "agile" or, in Indonesian, being agile in every situation.
By setting priorities in development, deliverables provided to users can be quickly delivered with satisfying results without being disrupted by other tasks, such as creating comprehensive documentation. The prioritization of speed is the reason why Indonesian startups use this methodology to compete and provide the fastest impact to users.
There are several frameworks that support agile methodology, including:
- Scrum
- Scaled Agile Framework
- Lean Software Development
- Kanban
- Extreme Programming
In the PPL (Software Engineering Project) course itself, the framework used is Scrum, which will be the main topic of this article.
Scrum as an Agile Framework
In creating an agile software development cycle, a framework that supports its methodology is needed, and one such framework is Scrum. Scrum focuses on breaking down complex tasks into smaller tasks that will be completed in several sprints. Scrum consists of three main components:
- Scrum Master, serving as the sprint planner and moderator in meetings
- Product Owner, determining business value and its relevance to the upcoming sprint
- Developers, serving as engineers who will complete tasks in the created sprint.
The significant tasks are broken down into smaller tasks and can be considered as features. The following features are commonly referred to as the backlog. In sequence, here are the activities that occur from before the sprint to its completion:
- Sprint planning: Determining the backlog to be worked on and assigning assignees to their respective features.
- Daily Standup: This activity takes place mid-sprint and serves as a forum for discussing difficulties and sharing experiences during the task completion.
- Sprint review: A forum to determine whether the deliverables provided align with the planning that was carried out.
- Sprint retrospective: An activity at the end of the sprint, serving as an evaluation forum for the completed sprint. In this forum, all parties can express concerns and provide suggestions to each other.
In the implementation of Scrum, the Scrum team can be formed into a hierarchy, often referred to as the Scrum of Scrum
A larger task can be classified as an epic. This epic can be broken down into smaller tasks whose scope can be handled by a Scrum team. If the features within an epic are too numerous, these features are divided among other Scrum groups, which still fall under the responsibility of the Scrum of Scrums. The Scrum of Scrums is then focused on managing the Scrum teams underneath