The word "Agile" is one of the buzz words that some time ago was spoken by everyone and
in all circumstances. Many organizations "implemented" Agile and
expected spectacular results that ... did not come. The great hype about this
methodology is becoming more and more common, and we increasingly see that the
topic is a little deeper than we thought and a bit more complicated.
How is it with Agile then? Works or not?
Yes! Properly
used, it works very well. It's like a road roller - it will be the best tool
for leveling the road, but you will try to swim with it ... you will sink.
Does this mean that we use Agile incorrectly?
There are
many factors that favor the use of Agile methodology. There are also many
environments and projects in which Agile will not help. Agile is a bit more
than a methodology and goes much deeper in the way the company operates than we
think.
How do we implement Agile?
Agile
"implementation" often requires a change in the mindset of a
significant part of the organization, which is neither easy nor quick.
Therefore, usually after the initial success and a series of IT training, the
organization claims that the implementation has already have been completed,
even though only the first step towards agility has been done. Often, after a
period of initial euphoria, there is a time of first disappointment with
agility and wondering if it works properly.
Agile on the side of software suppliers
Nowadays,
on the wave of a general trend, every software supplier declares that its
organization is Agile. Unfortunately, in the vast majority we can come across
one of several cases:
- The organization only claims to use the Agile methodology while the whole team works as usual. The customer pays for a specific amount of resources while the supplier juggles resources between projects. To find out about it, It is enough to ask for the name list of developers assigned to us with emails and telephones, and then check from time to time how often they answer questions to find out that they are now not on the subject of our project.
- The organization is divided into small teams that have kanban boards and does daily morning stand-up meetings. It's a little better here than in the previous case, but often, apart from these two elements, nothing else happens. The team often fails to deliver what has been declared in the sprint, and the project manager creatively explains to the client that this is what agility is all about and then gradually transfers the unfinished tasks to the next sprint. Over time, the supplier's PM builds large time buffers to show that his team is getting in time, but the effectiveness of such an organization is very low.
- The organization is divided into small teams that are dedicated and tailored to projects. The basic principles of Agile are followed, and tasks from each sprint are implemented in time. The problem begins to appear when we want to release a product because it turns out that quality does not quite meet our expectations, which means that SCRUM at the level of the team itself works, but at the level of project management it does not quite work.
Agile on the client's organization side
Agile
"implementation" usually starts with the IT department. Project
managers and engineers learn that instead of working on a requirements
document, they will now be working on user stories. A tool supporting task
management is being implemented, and a whiteboard with yellow stickers appear
in the room. Everyone organizes daily stand-up meetings. We have enthusiasm for
a while. After several months, however, it turns out that:
- Projects implemented in Agile tend to drag on forever
- Business owners behave like children in a candy store - every few minutes they are at a different shelf and want everything
- PM is pushing more and more functionalities into every sprint because the dates are running out
- After a few months from the start, it turns out that the project is not delivering the expected functionality and additional resources are needed to complete it
In a
standard approach, IT is responsible for final user satisfaction. In other
words - If the finished product does not suit the users - this is an IT
problem. So IT has analysts, who describe what exactly is to be done. It is
done at the beginning of the project, through a series of workshops with a
business client and business users. The disadvantage of this solution is that
it is often impossible to do it accurately enough or business conditions change
over time (often also business owners changes). Sometimes, users do not know precisely
what they want until they see the finished product, then it turns out that
"a few" additional functionalities are still missing.
Agile meets
the problems described above and reverses the situation slightly. IT is only a
service provider and contractor, and a significant part of the analysis is
carried out by the business. IT still helps, but the involvement of the business
side is significantly higher.
And here
the problems begin, because it turns out that Agile has not been fully "implemented"
in business and the business side is not aware of the benefits, risks, and
potential problems associated with Agile. In particular:
- The business side is not fully aware that the burden of analysis rests on it and most importantly prioritizing of what will be done through the project
- Since never before, no one asked the business side how an application should be made, and now suddenly business side can decide, it begins to decide, and generates many changes focusing mostly on non-essential additions instead of the most important elements of the new product
- Because the conditions around the business change frequently, the backlog changes often, and thus the direction of application development is altered. In moments of panic, the business owner pushes another "critical" functionality into the current sprint or even adds new features during the sprint.
- Sometimes the business prerequisites necessary to perform IT tasks in a sprint are not ready before the sprint starts and the project team gets them only a few days before the end of the sprint.
- A business owner without experience or proper training is not able to correctly set the priority list for tasks, allowing to deliver a working project on time by focusing on the essential elements only.
- The organization as a whole is not yet ready for agile projects and does not give the business owner sufficient autonomy. As a result, having no other choice, the business owner is under pressure and adopts more and more insignificant changes coming from project stakeholders.
It is clear
that the business side has a difficult position here. In the case of Agile, all
these activities require much more time from the business than with the
traditional approach. The role of the business owner is much more important
here. An organization that wants to act agile must be prepared to delegate 100%
of the business owners time to the project, instead of adding the project as an
additional element to current tasks.
It is one
of the fundamental problems that arise in organizations that are starting to
use agile methodologies because it requires changing the approach and
communication of business with IT and acquiring the necessary competencies on
the business side. What's more, it is often necessary to make further changes
in the organization, such as developing project management competences on the
business side.
If we go
further and want to provide software on a continuous basis - using DevOps,
Continues Integration and Continues delivery, allowing for even greater
agility, the organization must change even more (this time more on the IT
side). Thus, Agile initiates a whole series of far-reaching changes in the
organization, which implementers are often not aware of at the beginning of the
journey towards Agile.
If for some
reason we stop our walk to agility halfway, we will not be able to take
advantage of its benefits even though we will bear its costs. That is why Agile
is more of a business philosophy that ultimately covers a significant part of
the organization and goes far beyond IT. Well implemented Agile can
significantly accelerate the implementation of some IT solutions. It should
also be clearly emphasized that the delivery of some projects will still be
more effective using standard methodologies.
No comments:
Post a Comment