Press "Enter" to skip to content

GOTO 2015 • Agile is Dead • Pragmatic Dave Thomas

welcome thank you for coming um before I
start I have to apologize I have to
polish for a couple of things first of
all this is by far my most cynical
darkest meanest ugliest talk I don’t
really mean it to be I just can’t help
so I apologize for that it does have an
uplifting message at the end so please
don’t walk out in the middle it’s also a
talk that’s really quite hard to give
because I need to separate the
implementation of something from the
specification of something and we all
know how hard that is so please bear
with me give me just a little bit of
slack if if I ruffle any feathers so let
me just start off with a statement you
know I shouldn’t have put my email and
stuff down there because now I’m going
to get problems all right agile is dead
I’m going to show you why over the next
half hour or so but that doesn’t mean we
have to stop doing it to say why I think
I have to kind of go back in time a
little bit so let’s go back to 1999
because I think we can party right
so back in 1999 January first you’ll
celebrated the destruction of all your
currency the adoption of the euro in
Bill Gates became the richest man on
earth also in 1999 Apple Rim introduced
the Power Mac g4 I wish they would bring
that form back it’s just so wonderfully
retro I like it
ah what else do we have oh yeah Bill
Clinton didn’t get impeached
we had Phantom Menace released Napster
came about DeForest Kelley died which is
sad I met him I met him when I was about
12 years old and we were both at
SeaWorld in California and I actually
said hello to him and he said hello back
to me so therefore I officially I
haven’t met him but of course most
important of all 1999 saw the first
episode of Spongebob Squarepants upon
which I will base the rest of this talk
no but it does lead quite nicely into
the next slide how are we developing
software back then well one way we’re
developing software is we were drawing
pretty pictures we’re using the unified
modeling language UML to draw pictures
of our our classes and of our
interactions and everything else
in fact UML is probably responsible for
the destruction of object-oriented
programming because its total focus on
classes and not objects has corrupted an
entire generation of programmers but I
mean it does lead to some really nice
pretty diagrams that are terribly useful
things like this there will be a test
afterwards and then as well as our UML
we may well have been developing our
software using the rational unified
process run that’s as opposed to the
irrational unified process no maybe
there was one um not necessarily a bad
process but badly applied most of the
time but that was kind of like what was
wrong I was around however the reality
was very very different
99% of software projects looked like
valiant people Manning the barricades
do-or-die mostly died chaos smoke gun
fire death that was your average
software project and clearly that’s not
sustainable it’s fun and you get to wear
cool uniforms but it’s not sustainable
so roughly the same kind of time there
was kind of like a counter it’s not a
movement just a whole bunch of people
weren’t very happy with the way things
were going now
the chronology of this is not quite
right but people were thinking these
thoughts definitely in the 90s late 90s
so Kent Beck was experimenting with
extreme program and he was at that point
probably still working on the Chrysler
come see project the whoever and he and
Wool Cunningham Ron Jeffries were all
experimenting with XP and you know how
you can push a team to focus on just the
important things
Jim Highsmith was looking at his own
adaptive software development techniques
and the hunter and I were looking at
pragmatic programming not really a
methodology but just more common-sense
ah scrum scrum
I mean scrums been around since the mid
80s but being used in software more more
by then and of course we have Alastair
Coburn who was pushing the crystal clear
ideas around about this time so we had
all of these I different ideas all
focused on you know how can we cut down
on all of the bullshit basically and
just focus on writing software and most
of the people involved in this attended
oops lot object-oriented suffer I can’t
remember what it stands for now
programming that whatever right and we
all sort of sat there and chatted
and bemoaned to the state of the world
as people are tending to do and the idea
came off hey we should probably get
together and balloon this in private
so a meeting in Snowbird Utah was
arranged and we all turned up and on the
first day I think we had a two and a
half days in total I can’t remember my
memory is horrible so forgive me if I
get this wrong Jeff can probably tell us
better but on the first day we turn up
in this room we immediately removed the
tables and just set the chairs up in the
circle and then said okay now what are
we going to talk about and somebody
handed out index cards and we all wrote
down what we wanted to achieve a couple
of index cards and then we all had great
fun trying to fling these index cards
into the circle and make pretty patterns
and things like that so that was a good
interesting hour and then we picked up
the index cards and we divided them into
piles too depending on what they were
about and it became clear that what we
wanted to look at was kind of like the
values of our software you know what is
it that we we value when you’re writing
software and that actually came together
in the next hour or so
the initial stab at the we value x over
y formulation was done by the end of
lunch and then we discussed it we
refined it in one went in one came and
it was just basically fine-tuning from
then on and then we sat there and we had
extra time and as software people tend
to do we just then filled in the time by
creating random stuff so we produce some
principles and everything else but
fundamentally the values is what we’re
happy with and the statement of the
values we felt expressed what we wanted
to express about software development
that’s kind of cool and I think
everybody who is in that room will look
back on that with some pride yeah I mean
maybe you would have changed it slightly
if we were doing it again but I think
given what we had then everybody is is
pretty happy with it and so what
happened well we all basically went back
ward cunningham and i put up a website
where we published the manifesto and
people could sign up and say yes i
support this and as far as i was
concerned and mostly other people there
that was it we’d launched this thing out
on an unsuspecting world and then we
just waved our hands of it and said
that’s fine move on um and that was
probably a mistake because what has
happened since is that the values have
been totally lost behind the
implementation let me show you why I
think that is you’ll notice we were
careful to call it the manifesto for
agile software development that’s what
it says on the website sort of said in
Dutch that’s what it’s called but that’s
not what people call it people call it
the agile manifesto and this is the root
of all the evil that has followed no I’m
serious can anybody tell me why it’s the
root all evil I’m sorry
yes this sentence says that we produced
a very agile manifesto which presumably
means if you put on a table it’ll start
yeah because agile is an adjective you
cannot call if you mean to talk about a
manifesto about agile software it’s not
an agile manifesto right the best you
can do is the agility manifesto or
something ugly like that because agile
there’s a definite black spot here for
clickers agile as it says
there is an adjective I want to stress
this and I’m going to stress this by
hypnotizing you all with a word
adjectives from now on anybody here who
uses the word agile as a noun as in I’m
doing agile I’m going to come and I’m
going to find your scrum master
certificate now I’m going to tear it in
pieces all right
agile is not a noun so it’s perfectly
okay to talk about things like an agile
gymnast an agile programmer possibly I
don’t like the concept of an agile
methodology because I don’t think there
is such a thing I mean there’s a j’l
meta methodologies but not agile
methodologies but I mean you can
possibly say that at least it makes
sense as a sentence and so that makes me
what does it make me happy are when
people use it as a noun do you do agile
what is agile agile Alliance I mean even
Kosmos getting in the act
do you notice by the way that not only
do they use it as a noun but they spell
it with a capital letter it’s a proper
noun just like God so this is not good
this is not good so why do I think this
is the root of all evil
it’s really really simple if I have some
adjectives like for example green right
I can’t sell it to you I can’t come up
to you and say here have some green
doesn’t work if I said have some green
paint or some green vegetables
absolutely I can sell you that I can
sell you nouns but I cannot sell you
adjectives and the industry that sprang
up around the agile manifesto oh I just
used the word agile manifesto the
industry that sprung up around that
manifesto wanted to sell you things this
is where the cynical part starts by the
way all right they wanted to sell you
things and therefore they needed to
convert agile from an adjective into a
noun and they succeeded very very
quickly and so we have this thing and
now they can sell you they can sell you
training and consultancy and books
Maricopa and actually not really because
agile web development is actually an
adjective so I can get away with that
um and conferences there are a lot of
agile conferences and they make a lot of
money for people so this whole industry
has grown up around the noun right I’ll
have a kilo of agile please yes sir
here it is but that’s nowhere close to
the spirit of the original manifesto and
the values of the original manifesto but
it gets worse because how do they sell
you agile
the same way they sell you medicine and
all sorts of things they use fear speak
to me because agile has all these new
words scrum Kanban write spikes all of
these kind of things that people not
heard before and people get nervous
particularly management where new people
are talking to them about it’s weird
things what on earth II took him how do
I use this right this is this is strange
so you have to bring in a translator
who’s going to sit there and spend a day
and charge you 2,000 euros to tell you
what a spike is and okay that’s a small
thing there are also new rules gone is
the hierarchical project structure and
instead we have these flat teams with a
scrum master and maybe we you know we
don’t have QA people anymore and we got
all these kind of weird things going on
so again people are afraid that
particularly organizations who rely on
that structure in order to manage people
you know that’s that’s kind of tough new
ways to measure things to back in the
good old days
all right everybody filled in a
timesheet and before project started the
project leader would tell you this
projects going to take 200 hours and you
look at the timesheets and when it got
to hundred hours you would know that the
project was hard for you done
so I mean that was comforting right you
had numbers you could draw graphs it was
wonderful now they’re reporting progress
using meatballs or some other kind of
weird like you know measure of velocity
velocity right I don’t want you’re
moving right so it’s all it’s all funky
it’s all strange and then underneath it
all is this concern whenever anybody
starts doing something new are we doing
it right because if we’re not our
competitors are going to be just so we
have to make sure we’re doing it right
and then last but by no means least cool
cells and this is where we take a large
part of the blank because as developers
and to some extent as managers in the
industry we are drawn to bright shiny
new things
okay I mean you have to look at
successive JavaScript libraries to know
that so when anything new comes along
it’s like oh I want to try that I want
to be good at that and so you got and
you will try it right but that’s kind of
because once you have tried this brand
new thing then you have this kind of
weird sense of power that you know
something that other people don’t know
all right this is this is my step up in
the world and so you’re actually kind of
in a way want to make it harder for
other people because this is your kind
of thing now I know it’s not a conscious
thought no one here is evil like that it
happens I am okay I’m going to take a
potshot here at the Ruby community
simply because I’m allowed to Ruby
community is fantastic it is wonderful
all right I love the Remy community over
the last 12 15 years I would say the
Ruby community has done more to push
forward testing than anyone else has
done in the history of computing right
they have a culture of testing but not
just that they’ve
with many different forms of testing and
they’ve produced a whole bunch of very
cool frameworks which is then be copied
into other languages so the Reba Trinity
is really big on testing and I’m very
proud of them for that that’s great what
I am not so proud of them for is it’s
gone one step further and they now have
this total bigotry about testing so if
you’re a Ruby programmer and you are not
getting a hundred percent test coverage
they look at you and they go you know I
thought you were a programmer yeah we’re
not interested in your stuff go away go
away and they kind of like have the
backing of the majority of people there
because testing sounds like it should be
something you do right I am going to
tell you right now I mostly don’t test
and when I was my son my son was five
years old living in Texas
okay Texas is Bible Belt and my son was
five years old and he was at a school
where all the other kids were parroting
kind of religious stuff that was told to
them by their parents and he got really
sick of this so he did what any
red-blooded five-year-old will do he
climbed up on top of the swing set and
said if God exists
have him strike me with lightning or
something right and he did that three
days in a row and the school phoned us
up and said this isn’t too good you know
but that’s how I feel when I say I don’t
do tests you know
and the reason is that for me the
benefit of tests comes from the design
aspects the fact that it helps me
understand the design of my code it
helps me design interfaces of my code
api so my code it helps me decouple my
code and I’ve been doing it for so long
that now I think about that as I’m
coding and the test doesn’t have to
exist it still drives the design and
I’ve done measurements I don’t actually
have any more bugs I will still test
complex algorithms but I won’t test the
whole piece so I am tion probably by the
Ruby community and the same thing
happens in the agile world right we can
we can put down people that aren’t doing
it our way
right our way is best if you’re not
doing that you’re second class so
because of all these things I feel quite
strongly that the concept agile as a
noun has just become an industry it’s a
machine the taxes on the basis of fear
and asks us to pay money to assuage that
fear the wonderful example of that is
the scrum study organization I was
actually just sitting on my browser one
day and you know how the little Google
Ads pop up on the sidebar and this
popped up the world is adopting a scrum
are you stop thinking and get certified
today kind of sums up what I’m thinking
and in order to keep growing are the
influence of this industry when first we
started out we were looking at
individual developers because we all
said that the agile practices you know
the XP and scrum were designed for teams
small teams all right
and there are conferences on scaling it
and basically people said now you can’t
scale it but it was all to do a small
team six twelve people whatever that
might be but clearly after a while you
discover that the money is not in the
small teams the money is in the big
companies and so we need to find a way
of scaling it and so I mean I’m not
trying to knock Craig Lyman here this is
a cool thing it’s basically how to nest
scrum inside scrum but it appeals to a
corporation because it’s got little cute
figures and it looks very complicated
you know so you look at that and say hmm
yeah I’ll have to please yeah and you
can tell that this is designed for an
organization you can’t quite read it
here but on the bottom here in the
legend it says extra meetings may occur
not shown on this diagram so that keeps
everybody happy and then of course we
have this enough said
so I believe it is time to reclaim
agility because I still profoundly
believe in the values of agility so let
me give you a version of you jewel
agility that you can take away it fits
on one slide this is what I think
agility is three steps plus a loop right
the three steps are first of all
understand where you are the second step
is take a small step towards where you
want to be and at the end of that step
evaluate what happened that’s all or is
to it and then repeat now I say that’s
all there is to it that’s not easy
because you apply this fractally to
everything you do from the naming of
variables to deciding where you’re going
to deploy it right it’s all following
the structure and it’s all a big nested
set of these things now this isn’t the
whole story because quite often we’ll be
faced with a choice should I do this or
should I do that and that’s where the
second part comes in when faced with two
or more options choose the one that they
say easier to change in future and this
is a simply a corollary of dayz rule of
design right I say every single design
methodology B can be encapsulated into
one sentence a good design is easier to
change than a bad design
all right so whenever you’re designing
you have to ask yourself is this easier
or harder to change in future and you’ll
discover that every single design
principle falls out of that one
statement same thing here make decisions
that are easier to change in future so
let me show you something that’s agile
this is a little two-wheeled row what do
you think is going around the circle
just like the rest of us but it’s it’s
managing to balance on very rocky ground
you’ll see
this gets how often it frees itself out
doesn’t fall over totally self-contained
how does it do it well it’s basically
you think about it it’s a pendulum
upside down so it’s a pendulum that
pivots at the bottom and swings at the
top and it has accelerometers and stuff
inside it so if it finds itself falling
this way then it knows it has to scoot
the bottom underneath the top to stop it
falling over so it accelerates the
wheels if it’s tipping backwards it
slows the wheels down so that’s really
all there is to it
and underneath it it actually uses an
algorithm called the pit algorithm and
that stands for proportional
interpretive derivative all that really
means is there are three factors when it
decides what to do about an error and an
error is hey I’m falling the first
factor is which way am i falling right
am i I’m like leaning over like that
that’s pretty bad so I really need to
spin those wheels fast to get back up
that’s the proportional side if that’s
all you had then the little robot the
second it got even slightly off balance
would oscillate back and forth until it
beat itself to death on the ground right
you need more than that and that’s what
the next two terms include one is the
history the history says maybe this
robot weighs a little bit more on the
front than the back so it has a bias to
go forward well over time that’s picked
up by the controller algorithm and it
automatically compensates for me that’s
the integrative step and then finally it
works out what the difference is between
where it is and where it wants to be
that’s the derivative step so it looks
at the anticipated short-term future the
actual whole algorithm was designed
about a hundred years ago when ships got
big and you people discovered that they
could not steer these big ships and the
reason they couldn’t steer them is that
you turn the wheel obviously a ship
that’s really really big not
happens for maybe 30 seconds and slowly
it’s thus to come around but you have no
idea whether your position is correct on
that wheel or not and then if you wait
until the ship is pointing in exactly
the right direction
well then you straighten the wheel it’s
going to keep turning so they needed a
way of stopping that and what they came
up with was a mechanical system that did
the proportional integral and
differential side of the pig controller
and they wired that between the wheel
and the rudder and then mere mortals
could steer ships again since then this
is the algorithm that’s used in your
central heating controller there’s
probably six or seven pin controllers in
your car it’s the common it’s the most
common industrial process control
algorithm and I think it reflects
perfectly what we want to do in the
agile world all right find out what the
error is look at the history and also
have a look to see what your change is
going to do to the future all right
change gears just slightly the reason
I’m here is that I wrote that blog post
I was getting really annoyed about the
the state of the use of the word agile
so I wrote this blog post and an
interesting thing happened I had not
been to an agile conference I don’t
opinions vary but I don’t think before I
wrote this I’ve been to an agile
conference I may be wrong I’d certainly
never been to any of the big ones so I
write this blog post and the next day my
email box is going didn’t ending of
people inviting me to agile conferences
go figure
my wife and I love China so we accepted
the invitation to go to the scrum
gathering in Beijing know Shanghai
Shanghai and that was great fun I really
enjoyed it
now I tried to do a little bit of
research before I go to conferences and
this conference had a motto there is its
motto and I thought oh I better
translate that so I went to my good
friend Google and said hey google
translate this for me and Google said
Salzman I thought maybe they were angry
about the blog post so I split it into
separate characters and said well what
does it mean to separate characters and
it said laughs trout river lake obvious
so my wife took this to her Chinese
teacher the next time she saw her and
said okay what’s the story and it turns
out that in China no in Chinese there
are these four character sequences
called Chung you and they are basically
shorthand they typically refer back to
normally an ancient story and it just
like encapsulate a lesson or some
meaning out of that story so it’s a bit
like a proverb but more formalized and
shorter and the particular Chung you
that they were using for this conference
actually was not ancient it was fairly
new it’s like 1960s someone produced a
book which in English is called the
swordsman about a kind of modern day
person washing up modern but relatively
modern person who goes out and suffers
all sorts of things then ends up dying
in a real but the the reason for the gem
you is that back in the old days pirates
used to frequent the rivers and lakes
and so if you were a farmer or someone
and you had to go down to the river to
trade then you would be scared because
you’ll be going down into pirate
territory and so the saying is basically
to say you know keep your chin up right
don’t let these pirates have a oh
whatever intimidate you yeah keep
yourself proud in the face of this so
that’s what they make the spirit of the
conference meant so being me I thought
okay I only go to China and tell them
what their phrase actually means
so I translated it using the American
don’t let the turkeys get you down they
were surprised
I had to just double-check so I gave
them the China Chinese for Turkey his
fire chicken is that cool don’t let them
get you down and what I said oops sorry
oops that’s a giveaway some people I
said think they are important they’ll
they have more knowledge or more
experience or more money or more
whatever else and that they feel that
that gives them the right to tell other
people what to do and how to do it and I
said these people are turkeys don’t let
them tell you what to do and then as you
all saw I said I’m a turkey all right
don’t let me tell you what to do either
in fact all experts are turkeys all
experts tell you what to do and tell you
how to do it and that is wrong why is it
I think that’s possibly the favorite
slide I’ve ever produced no rules are
universal for every rule requires a
contest for example it’s generally a
rule that you don’t go around sticking
knives into people’s throats
yeah good rule help society live a
happier life that you don’t have to
worry about people coming up and
sticking you with a knife so that’s a
rule unless you happen to be a doctor
performing a tracheotomy to save
someone’s life then it’s not a rule and
in fact I challenged people over the
last year to try and come up with one
absolute rule and so far I haven’t seen
one so I say all rules are contextual so
therefore you cannot listen to someone
who tells you what to do because they
don’t know all right any book that says
this is how your write software is wrong
because unless that book was written for
your team in your company doing your
project at this particular time it
doesn’t know how you should write
software so in that circumstance how do
you know what to do haven’t you possibly
know because you’re out there you’re on
your own you can’t buy in you know a
pound worth of agile it’s just not going
to happen so what do you do you do
exactly the same thing you do in any
situation where you don’t know what’s
going to happen next
well there’s two things you don’t want
is close your eyes but the other one is
you take a small step forward see where
that got you and then revise your plan
and repeat and try not to go down any
one-way streets and oh what a
coincidence that’s exactly the same as
process that I’ve described for running
an agile project or an agile life what
is an agile project so I think the
antidote to agile Industries Inc is in
this room it’s all of us because we are
the people actually writing the software
we are the people that have the problems
we are the people actually you have the
solutions as well but it requires
courage to apply those solutions and so
this is the uplifting part by the way
right if you I mean
encourages actually want to camp X
original values for XP right and I
always thought those are kind of strange
thing to have now I understand why
because you takes courage it takes
courage to say no I’m going to handle
this it takes courage to say I know I’m
going to make mistakes but that’s the
only way I’m going to find out what
needs to be done but I’m going to work
hard to make sure those mistakes are
small and correctable right small steps
review change make sure your path can be
changed so that kind of thing does take
courage it does take guts and it takes
courage at the individual level at the
team level and at the company level but
I really think that is the only way
we’re going to fix this problem and get
some life back into the initial agile
values and like I say I still believe
very strongly in them so let me just
leave you with something slightly corny
agile is not what you do agility is how
you do it and after all that’s what we
want we want to do things you know our
entire purpose here is to create it’s a
we need to make things and for that we
need agility thank you very much
are we supposed to finish at 6:00 is
that right
so if so we have time for a few
questions that people want to ask them
or throw things at me or whatever you
want to know cool so what’ll question
may be so we have a whole scrum Trek on
here on this conference so what is your
what are your thoughts about scrum which
is Bailey also one methodology which
from experts telling how and what to do
or at least how to do something I think
that the okay so that’s that’s a loaded
question but igni with jeff in the room
I think that the the ideas behind scrum
are powerful right that year of
communications the original ideas of
passing the football all of this kind of
stuff I think is a very potent way of
getting a team focused on board and
creating software right I very much
support teams that look to create scrum
environments for themselves where I part
ways with scrum is the concept of two
days or even one day scrum master
courses you know you charge for one day
you know maybe or maybe not fill in a
questionnaire you get a piece of paper
you’re a scrum master right that’s just
bullshit and that devalues the entire
industry if you ask me but I also don’t
like it because there are a lot of books
on scrum and they all describe how to do
it and they don’t necessarily say how to
know if you’re doing it right how to
change it to make it right for you and
how to evolve it into your own
environment it’s like here’s a set of
practices follow them and most people
honestly that’s kind of what they want
they’re beginners at this they need
direction in the same way that if you’re
about to jump out of an airplane for the
first time you don’t care about the
theory of aerodynamics you want to know
what you pull and when all right that’s
all you care about and that’s what these
beginners do in the team so they take
these books and
they follow them you know step by step
exactly the way they’re written because
that’s all they know and then they end
up getting stuck in this process where
they don’t actually know why they’re
doing what they’re doing which is the
cargo causing that we’re talking about a
beginning and I think that that’s where
I say I think scrum the concept is
really really good but I think many
implementations of scrum for very very
far short of that is that a sufficiently
diplomatic answer
Please follow and like us: