Since the pandemic, things change rapidly with uncertainty. This impact is also felt in terms of software development. The agile approach to working has become valuable solutions to face these changes during Covid-19.
So, what is agile?
The history of the Agile methodology began in 2001 with the Agile Manifesto which was created by software developers to deal with an ever-changing environment. With their new principles of offering continuous delivery, short development cycles, high-level communication, and adaptability to the environment, the Agile method has become a breakthrough for software developers. They combine these values and principles in the word Agile, which is stated in a manifesto called the Manifesto for Agile Software Development.
Manifesto for Agile Software Development
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more
Principles behind the Agile Manifesto
The following 12 Principles are based on the Agile Manifesto
- 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 behavior accordingly.
There are five points that I find very interesting in 12 agile principles. The first principle is “welcome changing requirements, even late in development”. I agree with this point because in the agile method, not all requirements must be determined at the beginning and the product development process in agile is step by step so that it is more flexible to change.
The second principle is “deliver working software frequently”. In the agile method, there is a term called sprint. Typically, a sprint runs 1–2 weeks and the developers are asked to complete a task within the sprint. After the sprint ends, the work that has been done will be evaluated to be tested for its feasibility. The existence of a sprint can promote the delivery of working software frequently.
The third principle is “build projects around motivated individuals”. In my opinion, teamwork is very important in the agile method. Therefore, each individual in the group is very valuable. If we are surrounded by positive people, the product development process will also feel more enjoyable.
The fourth principle is “the most efficient and effective method of conveying information to and within a development team is face-to-face conversation”. Even though face-to-face conversations are difficult to implement during the pandemic, my friends and I maintain good communication. If there are difficulties related to a feature, we will immediately contact people who are related to the feature to discuss it together.
The final principle that I thought interesting is “the best architectures, requirements, and designs emerge from self-organizing teams”. One of the important things in agile is the sense of initiative of each individual. With the initiative, each individual can take part voluntarily without coercion from others. Something that is done sincerely certainly produces maximum results.
Reasons why agile fits the pandemic situation
Agile provides a rhythm at work.
Agile provides a regular pattern to move forward when things become uncertain during a pandemic. This is accomplished through virtual daily stand-ups with the team and conducting a Sprint Review and Sprint Retrospective to review work every two weeks.
Agile allows fast movement
Agile “deconstructs” tasks into small units allowing developers to complete them one by one. Completing tasks incrementally provides opportunities for more feedback. As the situation changes during a pandemic, being agile allows for fast switching because each task has been divided into small units and over a short period of time.
Agile empowers people in teams
During a pandemic, many systems are required to move faster. An agile approach in which the interaction of the members is given priority greatly helps the movement of the team more quickly. The ability of team members to make the calls as needed while they are working on a project helps ensure speed and responsiveness to customer needs.
Tips for running agile methodologies.
Set a time to do tasks
In my Software Programming Project course, we are required to deliver 50% of our tasks in the middle of the sprint through individual review. This helps us to be more disciplined in doing the given tasks so that Tasks don’t accumulate at the end of the sprint.
In my Software Programming Project course, we are required to review the code to be merged with staging. Feedback from this review process is very helpful to improve the quality of the code we create.
Reflect and Learn
Usually, a sprint is closed with sprint retrospectives. Through sprint retrospectives, team members are asked to reflect on themselves during the previous sprint. This evaluation is very important to do so that team members can learn from mistakes to improve performance in the next sprint.
Agile can help developers in the conditions of the COVID-19 pandemic because its approach focuses on the quality of the individual and the interaction of the members within it. Agile can empower us to continually improve in facing uncertainty.
Scrum is an effective agile framework for delivering working software to customers iteratively and incrementally. The goal of Scrum is to satisfy a customer’s need through transparent communication and continuous progress. The development process begins with determining the product backlog (tasks that must be done and sorted by priority) by the product owner. Scrum is usually run for 1–2 weeks, which are called sprints. At the end of the sprint, the product backlog taken must be able to be delivered to the customer as working software
In Scrum, there are three roles. First is the scrum master. The Scrum Master is in charge of keeping Scrum up to date, providing coaching, mentoring, and training to the teams. The second role is the product owner. The product owner is a representative of the product’s stakeholders and customers. They are responsible for determining the responsibility of individuals. The last role is developers. Developers are a team that has the technical knowledge and is responsible for product development.