dark agile

Table of Contents

1. dark-side-of-agile-janes-succi-splash-2012

1.1. Skeleton

1.1.1. Plateau of Productivity

a stage in which potential users are able to estimate the outcome of using a given technology, and the benefits of the innovations are widely demonstrated and accepted

1.1.2. Agile has followed the Hype Cycle and is stuck in the Trough of Disillusionment

1.1.3. Agile: stuck in the trough

1.1.3.1. Waterfall Process

based on the assumption that the requirements are there (in the minds of the customers), we just have to work hard enough to get

1.1.3.2. Agile keeps the cost of requirements flat instead of increasing

The Agile Guru understood that the management of requirements was a major plus for their approach.
So they reached the point of clarity that Agile manages to keep the cost of requirements flat in contrast to traditional methods where the cost of change increases

1.1.3.3. by defining requirements only when there is a strong need

The statement of Beck is not false:
giving up upfront planning and defining requirements only when there is a strong need for such definition lowers the cost of their modification.

1.1.3.4. This claim depends on the quality of the consultant (process+code) and the type of project

always of the calibre of Kent Beck to claim that it is always
possible to keep the cost of changing requirements constant.
To keep a long story short, not all the consultants pro-
moting Agile had the skills of Kent Beck in organizing the
process and the code and not all the projects managed by
such consultants were amenable to the application of Agile.

1.1.3.5. Agile is not anymore the solution for everything

Agile is not anymore considered the solution for
everything, the computer science departments of book
stores are not anymore paved with books about agile. The
attention went to other buzzwords such as Lean and Kanban.

1.1.3.6. When inflated expectations didn’t delivered

compared himself to Jack Kennedy: “Consultant, we know Kent Beck, we worked with him, and you are not Kent Beck.”
But still many, too many companies believed in them and their failure was reflected on a fall of the trust in Agility.

1.1.3.7. Not clearly understand when rules are useful not taking full advantage of agility

bility. We think that this is what stops software engineers
and software companies to take full advantage of agility: to
clearly understand when they happen to be useful and when
not.

1.1.4. The sceptics rise

1.1.4.1. Underline on page 3

premise in mind: it is not possible to plan every detail in
advance. This goes against conventional wisdom, which
teaches us to “first think, then do.”

1.1.4.2. Construction metaphor for software

Companies operating in the construction business provide the most disastrous examples of cost and time overruns whenever something new – with only few opportunities to reuse past experiences – had to be built.
There are endless examples like the following:

1.1.4.3. Underline on page 4

Our experience leads us to think that something similar happens also to software: if we had to rebuild something that had already been built, we would have only a limited time and cost overrun.
Look at the software houses doing

1.1.4.4. Underline on page 4

In software there is also an extra complexity that makes it more unlikely that a new project is similar to a previous one: the technology evolves very rapidly and so the desires and expectations of the customers.
The bias and incomplete compar

1.1.4.5. Underline on page 4

there is an
intrinsic additional complexity in developing software
linked to the high speed of change of the underlying soft-

1.1.4.6. “Scientific Management”

“management take over all work for which they are better fitted than the workmen [43].”
This statement builds on the assumption that workers deliberately work slowly to keep the productivity low so that all workers are needed.

1.1.4.7. Job Enrichment

Frederick Herzberg began to investigate how to improve
productivity by increasing the motivation of workers and
by involving them more in the decision making processes
through what was called Job Enrichment [44]. We can draw
a parallel: in software production the waterfall process
resembles scientific management and the propositions of
Agile are analogous to those of Herzberg.

1.1.4.8. Underline on page 5

All four methods, Scientific Management, Job Enrichment, Waterfall, and Agile Methods have their right to
exist, if used within the right context.

1.1.4.9. Underline on page 5

The problem arises when one method is used in a context where it does not belong to.
«That’s what the Cynefin Framework is for!»
Altogether, Agile went down

1.1.4.10. Underline on page 6

customers are not familiar with software engineering at all,

1.1.4.11. Underline on page 6

they imagine it as something they know and behave accord-

1.1.4.12. Underline on page 6

ingly. Some imagine it as building a house,

1.1.4.13. Underline on page 6

Such customers react very annoyed when con-

1.1.4.14. Underline on page 6

stantly asked for feedback or requirements throughout the
project since they planned to invest time in the project only

1.1.4.15. Underline on page 6

at the beginning.

1.1.4.16. Underline on page 6

Another thinking model is to see software development

1.1.4.17. Underline on page 6

as to cook – you just need to assemble different compo-

1.1.4.18. Underline on page 6

nents in the right combination.

1.1.4.19. Underline on page 6

When developers are con-

1.1.4.20. Underline on page 6

fronted with problems they have never seen before and
need time to develop a solution this is seen as the fault of
the developer that does not know all the available compo-

1.1.4.21. Underline on page 6

nents. A similar way is to see software developers like
configuring a video recorder: there are a predefined number
of switches and buttons and the skills of the developer
decide whether he or she is able to setup the system in the
right way or not.

1.1.4.22. This also applies to proffesional developers

The described difficulties do not only apply to non-
technical people. It is also hard for professional developers
who have been trained and whose experience is mostly in
formal, waterfall-like methods and approaches (e.g., struc-

1.1.4.23. Underline on page 6

In summary, different types of stakeholders have expec-
tations that for them are obvious and therefore are not
communicated. Nevertheless it is necessary to deal with
them:

1.1.4.24. Underline on page 6

managers might come to the conclusion that what

1.1.4.25. Underline on page 6

Agile Methods are proposing does not lead to the aimed
objectives, i.e., that Agile Methods are not aligned to the
business goals. Customers might come to the conclusion
that such a company is incompetent because its developers
constantly ask for feedback.

1.1.4.26. all stakeholders need to agree on:
1.1.4.27. Underline on page 6
  1. Where we are: an assessment of the current situation
  2. Where we want to go: a description of the goals
  3. How to get there: a plan to achieve the goal
1.1.4.28. Underline on page 6

To claim “to follow an Agile Software Development
Method” is not enough. As we have explained that the
different stakeholders have an entirely different understand-
ing of how development is carried out, it is necessary to
explain what this means, which practices will be used, why
these will be used, and what kind of outcome is expected.
Unfortunately, this is not always possible, and defending
agile approaches is sometimes difficult since they acquired
a reputation in the management community as a sloppy,
undisciplined method to hack, not develop software. The
next section gives some reasons why this happened.

1.1.5. The dark side of Agile software development

1.1.5.1. Underline on page 6

they have not yet reached the
Slope of Enlightenment, meaning the precise boundary of
their applicability are not yet fully understood.
This all boils down to the fact that Agile

1.1.5.2. Underline on page 7

Unfortunately, often the proponent of Agile Methods in-
stead of providing a rational explanation of their applica-
tion cites the gurus, the holy texts, and, worse, does not
really understand whether the Agile Method first should
have been applied in such context, and just feels like being
a prophet.

1.1.5.3. Underline on page 7

drome emerged. They wanted to be better, to support Agile
Methods with all their strength, and the means became an
end. They interpreted the Agile Manifesto as in figure 7.
The dark side of agile caused a set of misconceptio

1.1.5.4. Underline on page 7

Dark Agile Manifesto: teams need to understand how much to
value the items on the left – how much working software,
how much customer collaboration, how much responding
to change – or the items on the right – how much planning,
how much contract negotiation, etc.

1.1.5.5. The Dark Agile Manifesto

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

  • Individuals and interactions over and not processes and tools
  • Working software over and not comprehensive documentation
  • Customer collaboration over and not contract negotiation
  • Responding to change over and not following a plan

That is, while since there is no value in the items on the right, we value only the items onf the left more

1.1.5.6. Cynical Interpretation of Agile
  • Individuals and interactions over processes and tools:
    “Talking to people instead of using a process gives us the freedom to do whatever we want.”
  • Working software over comprehensive documentation:
    “We want to spend all our time coding. Remember, real programmers don’t write documentation.”
  • Customer collaboration over contract negotiation:
    “Haggling over the details is merely a distraction from the real work of coding. We’ll work out the details once we deliver something.”
  • Responding to change over following a plan.
    “Following a plan implies we have to think about the problem and how we might actually solve it. Why would we want to do that when we could be coding?”
1.1.5.7. Misconception that Agile is config without discipline

Such translations show that to some, Agile Methods appear
as approach that advocates coding without discipline, plan-
ning, and documenting: “this is nothing more than an at-
tempt to legitimize hacker behaviour [8].”

1.1.5.8. The Cowboy coder

The agile community developed another term to de-
scribe such behaviour and to dissociate itself from it: the
cowboy coder. The cowboy method ignores defined pro-
cesses to be faster.

1.1.6. The guru problem

1.1.6.1. Underline on page 8

The guru is the person with wisdom – he or she knows
what, when, and how things should be done to achieve the
desired goal. It is the interest of the guru to hide the as-
sumptions on which the rules are based, on which previous
works he or she based his or her findings, how he or she
verified that what is claimed really works. For example, it

1.1.6.2. Underline on page 8

The guru has no advantage in making his or her follow-
ers independent adults, otherwise his or her role as a guru
would vanish. In this way, the adopters remain dependent
on the guru: the adopters need the guru to continue to use
the method in cases not described by the guru up front, e.g.,

1.1.6.3. Underline on page 8

This is not always the case. The guru
does know when it is the case and has several consulting
opportunities. So he or she picks smartly only those where
such approach is suitable and winning.

1.1.6.4. Underline on page 8

the market is dominated by
a few “enlightened” gurus that keep the knowledge secret
among themselves, followed by many quacksalvers.

1.1.6.5. There is no silver bullet
1.1.6.6. Underline on page 8

“agile method practices sometimes lack clarity and the underpinning rationale is often unclear [12]”.
Some authors define Agile Methods, Extreme Programming in particular, as irrational and vague [13, 14].

1.1.6.7. Underline on page 9

Other authors claim that the agile method practices are on a
too high level of abstraction which causes an inconsistent
interpretation and implementation [15, 16, 17].
Not having a clearly stated rationale behind method and
practices makes it also difficult to tailor a method to specif-
ic needs [18, 19, 20, 21, 22, 23]. Without this knowledge
we don’t know what we are risking if we omit one method
or if we extend another.

1.1.6.8. Underline on page 9

Stephens and Rosenberg compare Extreme Program-
ming with a ring of poisonous snakes (sometimes depicted
as in figure 8), daisy-chained together. Each snake repre-
sents a practice that has issues that are compensated by the
use of another practice. „All it takes is for one of the snakes
to wriggle loose, and you’ve got a very angry, poisonous
serpent heading your way. What happens next depends on
the snake and to an extent on how good you are at damage
control [14].”

1.1.6.9. Ring of poisonous snakes
  1. Requirements are elicited gradually, which – since developers do not have a complete picture – can result in wasted effort.
    This problem is alleviated by incremental design, i.e. to be ready to change the design incrementally.
  2. Incremental design avoids designing everything up-front to minimize the risk of being wrong.
    This practice is considered safe because the code is constantly refactored.
  3. Constant refactoring involves rewriting existing code that was thought to be finished: it went through discussions and thinking to get the design right.
    It potentially introduces new bugs, but it’s considered safe because of the presence of unit tests.
  4. Unit tests act as a safety net for incremental design and constant refactoring. With unit tests it is difficult to verify the quality of the design of an architecture.
    Pair programming alleviates this problem.
  5. And so on

1.1.7. Towards the plateau of productivity

1.1.7.1. Underline on page 9

To summarize, different underlying assumptions of com-
puter scientists, economists, project managers, engineers,
etc. can lead to different interpretations of what is happen-
ing during the project. Agile zealots create excessive ex-
pectations that move Agile Methods up the Hype Cycle but
at the end of the day cannot be met. In part this is possible
because Agile Methods are promoted by gurus, not inter-
ested in explaining what is behind their practices.
To overcome these problems we propose to co

1.1.7.2. Underline on page 9

To overcome these problems we propose to collect and
disseminate know-how about Agile Methods in the form of:
“To achieve objective o we use tactics y that has the cost c,
its performance can be understood observing m and we use
this tactic until m reaches the target value v.”

1.1.7.3. Underline on page 9

In the same way we recommend to collect software pro-
cess tactics, i.e., decisions whether to shape the process in a
certain way or not to achieve a given quality (e.g., code
quality, time-to-market, low turnover, etc.) about Agile
Methods.

1.1.7.4. Underline on page 9

Practitioners who want to productively use Agile Meth-
ods need to collect such set of tactics to adopt in different
circumstances [25, 32, 33, 34]. It is also necessary to know
the advantages (the achieved objective o) and the draw-
backs (the costs c) of using a specific tactic y. Since soft-
ware is invisible, and projects can progress towards the
wrong direction for a long time until this is noticeable, it is
necessary to define a way to understand whether the tactic
y is profitable or not (the measure m).
To make an example, the practice o

1.1.7.5. Underline on page 10

Tactics that help to achieve a common goal could be
then grouped into strategies. Agile software development
strategies could describe a set of tactics that help to achieve
a common goal (e.g., fast time-to-market).

Author: Julian Lopez Carballal

Created: 2024-10-21 Mon 09:11