This article was written as an individual review assignment of PPL CSUI 2021

In this day and age, to compete with your competitors in the world of software development means to be able to deliver fast to the users while also thriving to have a better overall quality than your competitors. But fast has its risks. Because if it does not, everyone would be doing it. Many development teams these days have implemented the Agile method when it comes to developing software to be efficient, but not everyone knows that the agile method have some degree of risk involved and knows how to deal with it.

What is “agile”?

If you have never heard of the term “agile” in software development, agile is a way of developing software solutions effectively. It is a method that encourages rapid developments, frequent inspection, and adaptation. Agile developments follow the Agile Manifesto and the 12 Principles behind it.

The manifesto, which was developed in February 2001 by 17 software developers, that guides agile developments state:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

1. Individuals and interactions over processes and tools

2. Working software over comprehensive documentation

3. Customer collaboration over Contract negotiation

4. Responding to change over Following a plan

These are the principles that must not be forgotten when implementing the agile method:

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.

So what is there to worry about?

Nothing. You have absolutely nothing to worry about when your team is implementing the agile method because it’s a great way for developing software effectively. However, there are things that your team has to keep in mind because there are risks, certainly. And you and your team must know how to deal with them.

When working on projects that are implementing the agile method, chances are, the requirements of those projects are not defined properly. And because there is no solid agreement of what the requirements are, new additions may come when we are starting to develop the projects. The agile method welcomes requirement changes. However, the additions may sometimes come in ridiculous amounts, there may be a lot of additions that your team originally did not agree to work on, which may cause problems for your team.

How to prevent this:

  1. Get the requirements as detailed as possible before working on the project
  2. Form a scope agreement and get the stakeholders to sign it
  3. Develop a process for controlling requirement changes for the stakeholders and get them to agree to it
  4. Monitor the development progress so that it does not deviates from the original plan

Whenever we schedule any sort of timeline, there is always a chance that unexpected obstacles may come and ruin that timeline that we have planned. When it comes to agile development, problems may occur due to many reasons, from your agile team that may over or underestimate their tasks to unexpected bugs that have been missed because of the developments that are just too rapid, causing a task or your overall project to finish late.

How to prevent this:

  1. When creating the timeline, think of all the possible dates when the members of your team are most likely to take their days off due to holidays.
  2. Plan for unexpected sick days or any sort of unexpected disasters, because everyone has those days. You can only hope they never get them when working on the project.
  3. When a team member has to leave or has to postpone their work, make sure there is a backup buddy to cover for them.
  4. Give time for testing and quality assurance.
  5. There are times when your and your team’s work is not approved, give time to accommodate the adjustments.
  6. Though we cannot always be sure whether or not we are over or underestimating a task, we have to make sure to estimate properly by researching or asking for the opinions of experts if we are unsure of the weight of the task.

When we develop a product, the budget or cost of developing that product has to be estimated properly. Poor budget planning mixed with agile developments that seem to constantly adds more and more requirement additions can be a nightmare. An increase in cost over what was originally estimated is the last thing that we want.

How to prevent this:

  1. Ask for opinions from experts when we are in doubt about the budget that can accommodate the development.
  2. Make a procedure to handle cost changes. Whenever a change is required and that change may affect the original budget, follow the procedure so that the budget can be monitored and controlled.
  3. Make sure to prevent the flood of additions from the above.

Agile in my PPL 2021 group project

From my experience in my PPL 2021 group project, we had no problems concerning a flood of additions because, in my group project, the product owner has given us fixed requirements from the start. Even if the requirements have flaws that may confuse my team, we can freely discuss them further with our product owner and our clients.

We also had no problems concerning the product’s budget, because so far, we have not had a need for a budget because we have been using free platforms such as Heroku and Gitlab for our product.

However, we have had occurrences where there seem to be issues regarding our timeline. There are times when we had falsely approximated the needed amount of time to finish a task because of the unexpected surprise deadlines from other classes in our semester resulting in the failures for testing and quality assurance.

That is all from me, friends.

I hope this may help you to deal with the issues that may come from implementing the agile method for your developments.

God bless.

References

https://www.gratasoftware.com/common-risks-agile-projects-deal/

Computer Science Undergraduate at University of Indonesia