The Land that Scrum Forgot
Robert C. Martin
The Land that Scrum Forgot
Robert C. Martin
Talk starts at
05:55 Before the 2000s the world was dominated by
06:08 In 1995 Ken Schwaber published a paper about Scrum.
06:19 In 1999 the industry started paying attention to
Kent Beck’s Extreme Programming.
Kent’s vision was to heal the divide between business and development.
07:46 He thought with the right disciplines and minimum
process trust could develop between developers and business.
08:30 Robert also wanted a process that is controlled and
designed by developers for developers and businesses. One that focuses
on business value, but also on code quality. The things that mean the
most to both factions. A process that fosters
communication between development and business.
09:02 Kent and Robert gave classes about
Extreme programming until 2001.
10:38 In 2000 Kent organized a meeting of XP leaders.
Some of them were also leaders of the
Design Patterns movement.
11:40 Martin Fowler and Robert wanted to create an
organization for this movement. They invited people to a
Lightweight process summit. Ken Schwaber and other thought
leaders came and together they coined the term agile.
14:02 Ward Cunningham wanted to come up with a few
statements that don’t disparage the old way of working, but that they
value other things more. The Agile Manifesto was born in that
16:00 They formed an organization called the
16:30 When Ken Schwaber was the chairman a year later he
wanted the Agile Alliance to generate revenue.
18:00 The Agile Conference was born by joining
the XP Universe conference and the one by the Agile Alliance.
18:18 Ken started running classes to become a “Certified
19:34 Only project managers took these courses, no
20:22 The Scrum master courses had the positive effect of
legitimizing agile. Without this course it would not be as
popular as it is today.
A Scrum master was a coach, explicitly not a manager. He/she was responsible for defending the process, not the schedule, budget, stories or backlog. The role was supposed to rotate through the various team members. The idea of the role was to slowly fade away, so that in the end you would not need a Scrum master.
21:57 Project managers who took the courses probably
didn’t like that. They wanted to be Scrum masters.
22:20 Businesses got the idea that the critical element
in making a Scrum team successful was to pick the right Scrum master.
(similar to project manager) That was never supposed to be the way.
23:10 It worsened the separation between
business and development.
23:29 Scrum or any agile method makes you go fast
24:30 In the “Certified Scrum master” course software
development practices were not taught. Everything
from Extreme programming was missing.
25:00 When you go fast, you need something that keeps the
code from rotting.
26:30 Scrum without technical practices becomes a tractor
pull. Every sprint gets harder to make progress, because the code is
27:16 Scrum masters started a developers vs project
managers attitude talking about different project management
techniques without development techniques. The developers that had
spawned the process felt left out.
28:20 Kent’s vision had failed. The
divide between business and development had reopened.
28:57 Pressure builts on top of the developers when a
Scrum team begins to slow down.
30:00 The Scrum master is not baring
30:28 The team might go back to waterfall because of
this. At least in waterfall they have these long periods of time where
they could rest.
What Scrum forgot is that you can not have speed without (technical) quality. The more technical debt you carry the slower you go.
31:30 Because of this the
Software Craftmanship movement and manifesto was born. This
is an evidence of the split though.
32:16 They hope for a reawakening of Kent’s vision.
34:16 If agile is going to survive it has to
remember its roots. It was a set of technical practices conjoined with
a set of management practices. You could not separate them and yet it
Manual testing is immoral. It is not just dumb. It is immoral because you are taking people and making them act like machines.
39:04 Manual tests are also wrong from a business point
of view, because they inevitably will be killed when they increase in
40:00 One should not test the system
thought the UI. You decouple the user interface from the business
rules and test them separately. When you run your tests thought the UI
you can’t change your UI anymore.
44:10 One should write
a series of tests for each component separated from
the UI. Then write a few tests for the assembly of
some components to test if they are wired up correctly. In the end
wire up the whole system together and write
very few tests to make sure the wiring is correct.