Uncertainty, or the unknown, is a subject we face daily in our lives. When it comes to projects, people are looking for a method that allows flexibility, and rapid adaptation to changes, and in the article below, I will discuss how the Agile mindset helps us face the unknown in our daily tasks and in project management in general.
Uncertainty is a state we often experience in our personal or professional lives. It has become a constant in everyday life and no matter how much we prepare, no matter how well we do our job and no matter how many plans we make, we cannot prevent surprises. The fear of not knowing the best way to proceed or the exaggerated need to have everything planned down to the last detail can divert us from our objectives or ideals.
In personal development courses, we are often asked: "Where do you see yourself in 10 years?" Today, this question makes no sense in a world so influenced by change. A more appropriate direction is to focus on our way of thinking, on our experiences, or on the impact we want to have on society. Technological advances, globalization, and the need for interconnection – all contribute to this rapid pace of change.
Agile is a mindset, a way of thinking, a set of principles and values which emphasize flexibility, collaboration, quality, and especially a rapid response to change.
Responding to change over following a plan.
Does this mean we don’t need plans? Definitely not. The future is indeed uncertain, but this does not mean that planning is useless. We cannot move forward without any direction. There needs to be a plan that we can adjust as we get new information, and we need to have a vision, prioritize, and focus on a measurable outcome. How we react to change is more important than merely adhering to a plan. With Agile, we are encouraged to plan less in too much detail, to reduce the amount of analysis specific to the beginning, and to get to work, thus offering us greater adaptability to change. Working in small iterations naturally gives us the ability to adjust.
Welcoming changes in requirements even at an advanced stage of development.
The team needs to be open and prepared to receive modifications, to face uncertainty even when the project is underway. We often tend to continue with a plan, even if the results are not the desired ones.
Instead of getting stuck in a pre-established plan that may become irrelevant or inefficient during the project’s development or thinking that we cannot start a task if it is not described down to the smallest detail, it is better to increase our capacity to react quickly and efficiently to change, ready at any time to embrace a new direction. This approach leads to more relevant and valuable results for clients and end-users.
From my experience, uncertainty does not fit with the traditional way of doing project management, where all project requirements are known from the beginning and unlikely to change.
Waterfall is a linear methodology; we do not start a new phase until the previous one is finished. Due to its sequential evolution and because it doesn’t support changes, Waterfall is very rigid. Waterfall works well when we know in detail how the product will be built, how it will look, and how it will function.
Agile, on the other hand, works well in projects where there is a lot of uncertainty because instead of guessing and betting on many unknowns, you design and build in small pieces. Then you learn and adapt based on feedback as you continue the development.
For instance, if you have a restaurant and want to open another one, you know exactly what makes it work and how to do it successfully. In this situation, Waterfall could work very well.
But if you want a website where people can buy takeout food online, Agile might be a good choice because it's something new. Maybe you don't know what technology to use to build it, which types of menus to focus on, and many more. In this case, the recommended methodology is Agile because it offers the possibility to start with something simple that can later support changes or updates based on the new information that arises.
Here are some examples!
Changes in Requirements: Requirements can change as customers understand their needs better, or sometimes even due to conditions not in their control. We are all aware of projects where requirements change shortly after the start or in very late stages of development.
Changing Technology: Emerging new technologies (look at LLMs) or the rapid evolution of existing ones (take big data or DevOps tools as an example) can change how a product needs to be developed or delivered.
Team Dynamics: Team members come and go and, as a result, team performance can vary. When the team reaches the performing stage, it is even more difficult to deal with a colleague leaving the company. The team goes through several stages before reaching the desired maturity and performance. We will address the stages of team formation in another article, so stay tuned!
Estimations and Planning: Task estimates can be inaccurate, and plans may require frequent adjustments to reflect the current reality and the feedback received. When we find ourselves in a situation of not knowing which way to go, it is better to acknowledge that we do not know and to start looking for solutions (Spikes, proof of concepts, prototypes). We do not want to be absorbed by the perfect analysis; it is more appropriate to start, try out, and then decide on the next steps. Accepting and acknowledging when and what we do not know is at the heart of the Agile mindset.
External Dependencies: Projects may depend on third parties or external services that can introduce uncertainties, such as delays or changes in APIs. Active communication is mandatory in these situations to avoid wasting valuable time.
The Agile environment encourages teams to embrace and manage uncertainty and their response to change. Agile manages uncertainty through:
Flexibility – adapting to new information and customer requirements; the team is always ready to implement feedback from the end beneficiary.
Iteration – running projects in small stages that allow frequent adjustments and continuous improvements. These are small but sure steps!
Collaboration – working closely within the team but also with the client to understand his needs and incorporate feedback efficiently. A partnership is created where the common goal is to deliver the most valuable product possible even if this means deviating from the initial plan.
Rapid response through periodic reevaluation – changes are immediately put into practice without relying on other long-term plans that could quickly become outdated. Agile teams practice periodic reviews at both the product and process levels.
Minimizing waste – by accepting change requests (CRs) on features that may no longer be necessary, time is saved, and focus is placed on what is more important.
Uncertainty should not be seen as a burden, or as a state that generates problems. Depending on how we position ourselves towards it, it can become a great environment for creating new opportunities, and we can ultimately use it to our advantage.
The key question is: do we want to remain stuck, or do we want to move forward?
All in all, we can reduce uncertainty through:
Now let's take Netflix and Blockbuster as an example! In case you don't know, Blockbuster started as a mom-and-pop home video rental shop in 1985 but grew to a striking number of 9,094 stores and 84,300 employees worldwide in 2004. However, poor leadership and not adapting to the changing market led to their bankruptcy in 2010, allowing Netflix to rise to fame.
Netflix, on the other hand, a company that initially launched as a mail-based rental business, not only adapted to the market by offering new services such as online ordering, monthly subscription models, and recommendation systems but innovated the industry with its streaming media service, introducing video on demand via the Internet as early as January 2007.
I mentioned earlier that adaptability is a growing skill – this goes to show that this applies not only at an individual level but also at the company level.
Like everything in life, uncertainty is transient. In current times, we need to change our way of thinking and be open to transformation. We need to accept that we cannot control what happens and that the only thing that we can control is our reaction to change. It is our decision of how and when we can divert the trajectory of a situation.
Embracing change is a mindset that we can form over time. Essentially, Agile is about being flexible, being interested in continuous growth, and promoting a culture of collaboration. Scrum teams need to learn to live with uncertainty. In an Agile project, or any other project, not everything can be known beforehand, and in many cases, details emerge over time.
We can find support within the team through continuous and open communication, and, in turn, we need to be promoters of collaboration through active communication.
If you need help in implementing the Agile mindset and methodology across your organization, contact us anytime.
In her 12 years working as a Project Manager, Raluca Orha has successfully implemented over 20 IT projects. She has certifications in Scrum, ITIL, Prince2, and follows the Agile methodology in all her endeavors, promoting collaboration and strong teams.