There are several ways to manage projects. In the traditional view, which is what most people think of while imagining such a process, a project is created linearly, in a specific order, stage by stage. It’s called the Waterfall methodology and has, of course, many advantages — the scope of the activity is known right away and the progress is more easily measured. On the other hand however, at an early stage, it can be difficult for a client to envision the result solely on the basis of what has been agreed with the team and the outcome may be disappointing. This kind of problem can be solved thanks to the introduction of Agile methodology. And what’s that? Let’s find out!
The agile approach — a few words of introduction
The Agile approach is an iterative way of project management that focuses not only on the outcome but also on people. It involves planning the next stages of work in a way that fits the client’s needs and vision. The goal is to continuously improve the project doing it quickly and flexibly. It allows a team to create a solution that meets the client’s expectations 100% and to avoid a situation where months of hard work result in disappointment.
The time for a particular phase of a project is called a sprint. Each sprint lasts a specific amount of time, usually 2 to 4 weeks, and has particular goals to be achieved. As work is completed, it can be reviewed and evaluated by the project team and the client during daily meetings and end-of-project demos. Agile relies on a very high level of client involvement throughout the project and uses the client’s feedback to modify further work.
Everything has its pros and cons
Both ways of working on projects have their advantages and disadvantages. Let’s start with something positive and take a look at why Agile methodology can be an attractive solution for a customer.
- First of all, a client has a strong feeling of being involved in the whole process because of the direct cooperation with a project team. This way, the customer not only gains a strong feeling of project’s ownership but can also make changes at an early stage of each phase and adapt the product to their expectations. Addressing problems quickly enough saves a lot of time and gives the customer a sense of empowerment.
- Another important convenience offered by Agile is the fact that the team can develop a basic version of working software and modify it later. It enables the customer to use the product faster and thus promote their services earlier and make money even before the product is released with all functionalities. New features can be added in future iterations.
- We can’t forget that Agile also provides a greater level of transparency which results in higher trust, openness, and communication for all parties involved. Last but not least, thanks to constant feedback, the development is often more user-focused which allows creating a unique product.
- On the other hand, the high level of client involvement may also be a drawback for customers themselves — they may not have time for meetings or may not be interested in participating at all. What’s more, customer involvement often leads to new ideas connected with new functionalities which can increase the overall cost of the project.
- It is also important to have close working relationships in the team which is possible thanks to meeting in person in the same location. As we know, it’s not always possible. However, nowadays we have a lot of solutions enabling such contact even from a distance, e.g. Google Meet or Zoom.
- Apart from that, the iterative nature of this methodology may lead to refactorings if the first arrangements drafts don’t include the full scope of the system. Those refactorings are necessary because they help prevent a reduction in a project’s quality.
The Agile methodology — crucial steps
Every project has a certain, sometimes conventional, framework. In the case of Agile, there are four very important steps. Let’s take a look at them:
- Discovery — before starting any new project, the team has to find out more about the client’s needs, visions, and goals. It happens during a meeting with the team when there’s a chance to exchange ideas and brainstorm together.
- The Product Backlog — during the first phase the team creates a list of all functionalities that are desired by a client or their customers. The client has a chance to determine which elements are the most important and should be focused on first. It helps the team plan their work.
- Iterations — once the wishlist is completed, the team begins to work on the project. Each sprint which is a determined period for one iteration lasts usually 1–4 weeks, but it depends on the project.
- Additional Sprints — they are conducted if there’s a need to work on additional functionalities of the project. Each Sprint improves what has already been done and adds some new features.
Once we agree on the final list of functionalities and make sure that the client’s expectations are understood, we start to work on the project — develop, test, and accept one functionality after another. The team meets daily to discuss recent progress and difficulties, as well as plan the next goal.
During the meetings, after each iteration, a client has a chance to see what has been accomplished and provide their feedback. Then, the project is placed in a demo environment so that the client can review it again. After that, everybody meets for a retrospective to discuss the way the development was conducted and to determine which elements need to be improved.
The Team of Agile
Since we are talking a lot about the team in Agile methodology, we should know whom that actually involves. A Scrum Team is a notion that concerns three to nine people — software developers, analysts, testers, designers, and other team members fundamental to the project — they work together and bring the client’s ideas to life. A relatively small team is crucial even for bigger projects (we usually employ more people in that case) because it guarantees the quality of the job done.
Another noteworthy person is a Product Owner who represents the client and future users of the product. His main duties are to keep an eye on the product backlog, prioritize the functionalities, and guide the team throughout the client’s vision. Last but certainly not least, we have a Scrum Master who leads the team, takes part in all tasks performed during the development, and addresses all the issues emerging in the process. Interesting? Stay tuned — you will have a chance to read more about Scrum Masters on our blog soon!
How to choose a methodology of development ideal for the project?
First of all, you should avoid the solutions that meet current trends. It is not about looking fancy, it is about proper functionality. Choose the methodology that works best for the particular project, culture, and company you work for. How to do that? Here are some points you should take into account while making that decision:
- client’s preferences,
- client’s availability,
- client’s openness to possible cost variations,
- client’s tolerance for scope changes,
- project complexity,
- project size,
- implementation to the market date.
Think about the best solution before proceeding with your project. Know its goals and identify the variables and activities that are critical to your product. Identify the most essential success factors and analyze each approach. Let your team participate in the decision-making process. Evaluate their experience with different project management approaches and frameworks. However, once you have figured out what methodology is best for your project, act and stick to what you have decided. Changing the course of action while the process is already on, is usually not a good idea.