8/8/2017 Wordpress Ri Meetup
The promise and peril of Agile and Lean practices
@mtoppa Michael Toppa www.toppa.com
PDF of these slides:
20 years of experience in web development, project management, and functional management. I work for ActBlue Technical Services. ActBlue is nonproﬁt
tech organization, and we build fundraising software for Democratic campaigns, and also nonproﬁts.
* Director of Development, WebDevStudios
* Director of Web Applications, U Penn School of Medicine
* Web developer at: Georgetown University, Stanford University, E*Trade, Ask Jeeves, and the 7 person start-up, ElectNext
My challenge in this talk…
Teach you about Agile & Lean…
Without actually teaching you Agile & Lean
I want to teach you about why you may want to consider them, how they differ from each other, what beneﬁts you can expect, and what obstacles you may
Tell me your problems…
Agile and Lean are solutions, so ﬁrst we need to talk about the problems they’re meant to solve. So we’re going to talk about a bunch of bad stuff for a
while, but then we’ll get to the good stuff.
1.The iron triangle
I’ve explained the triangle to dozens of clients over the years.
Programming is not magic. If the client tries to squeeze all 3 sides of the triangle, quality suffers.
“If you go to the store with a huge shopping list and twenty
dollars, you need the authority to go to the money machine
for more cash, or the authority to make changes to the list.”
Ron Jeffries, Making the Date
What’s happening is that the client is trying to retain authority on the project while giving you the responsibility. But ultimately, for the project to be successful and for both
you and the client to be happy, responsibility and authority need to be brought into alignment.
Misalignment of authority and
Cartoon by Mike Lynch
Used with permission
- Following this advise lets you cover yourself politically, and is a great way to make everyone who works for you miserable
- I've found that misalignment of authority and responsibility can explain a lot of dysfunction that happens in organizations
- When you have responsibility for your work but not enough authority over it, you will feel like a cog in machine
To have any chance of success in the long run, you have to claim authority you may not have had previously. You may have to ﬁght for it…
…but you have to always be professional. Think of how doctors behave in an ER. When the pressure is on is when you want them to be at their most
2. Multiple projects and multitasking
Context switching between two projects eats about 20% of a full-time worker’s schedule. The sense of progress with multitasking is an illusion, compared
to not multitasking
In addition to too much work, another common aspect of the Death March is not having good visibility into your workload
My U Penn team - too much work
9 developers, 2 product owners, and me supporting
- 22 clients with 124 applications
3 designers and 1 product owner supporting
- about 200 static content web sites
Taking inventory itself was a huge undertaking
3.The cone of uncertainty
One of the greatest contributions of Agile has been getting people to more fully understand that software development by its very nature is an exploratory
“Most of the time [on a project] is spent thinking and
communicating about a seemingly endless number of
micro-problems that seemingly emerge out of nowhere…
The only way to discover them is to encounter them one
at a time, like boulders in the path of a road-laying crew.
You must face each obstacle.. [and] then soldier on—only
to find another boulder around the very next bend.”
The Hard Thing About Software Development
This happens because every project you do is, in a way, a unique invention - you are building something that didn’t exist before. No matter how much
time you spend gathering requirements, you will always encounter unexpected obstacles and unknowns.
NBC Latino slideshow example
Tell me what you want…
For yourself, and for your customers
What makes a job enjoyable?
✤ Reward for effort
✤ Challenging/complex work
“Work that fulfills these three criteria is meaningful.”
– Malcolm Gladwell, “Outliers: The Story of Success”
“Novices believe that quality and velocity are inverse.
They think that hacking is fast.
They haven’t yet recognized what
professional developers know all to well:
…the higher the quality, the faster you go”
Bob Martin, Vehement Mediocrity
Add more people?
”Adding manpower to a late software project makes it later”
- Fred Brooks, The Mythical Man-Month
Add more pressure?
Hold the developers’ feet to the fire. This is the death march. Analogy that software development is like a washing machine.
“The main thing that pushed Agile and Scrum
was that the success rate on traditional projects
was terrible; it was 45%. If that was a car-
manufacturing place, that would mean you’d
throw out every other car you built.”
Ken Schwaber, co-creator of Scrum,
Agile solution: flip the triangle
The traditional approach also does not take into account the “cone of uncertainty” - things will change
Agile: frequent feedback is key
Rather than ﬁght the “cone of uncertainty” we embrace it. We are always checking in to make sure what we’re delivering is what the client wants, and we’re
ready to adjust priorities based on feedback. At some point we will run out of time or money, and when that time comes, we want to make sure we have
delivered the most important features.
Agile, Lean: what’s the difference?
roles & rituals
Both originate from management ideas in Japan, but Agile was created in the US software industry in the late 1990s, and Lean comes specifically from
Toyota in Japan
Scrum is a holistic project
Scrum has clearly defined roles
If you adopt Scrum, people’s jobs will change, at least to some extent
Kanban can be applied to any
project management system
It’s about achieving the right amount of “work in progress.”
Kanban takes you from this…
Too much WIP can feel like a traffic jam. Covering every inch of a highway with cars is not how we achieve the capacity of the highway
We achieve capacity when the cars ﬂow smoothly on the road. They get to go reasonably fast, operating their engines at a good fuel efficiency. They don’t
need to slam on their brakes. They don’t need to change lanes often, and there’s a safe distance between them. This is what we want our work to feel like.
Adopting Scrum means going all-in:
big change, all at once
The Scrum Promise
“In my Scrum classes I warn attendees of what I call
the Scrum Promise: If you adopt Scrum, there will be
a day you come into the office nearly in tears over how
hard the change can be. This is because Scrum
doesn’t solve problems, it uncovers them and puts
them in our face. Then, through hard work we address
– Mike Cohn, Agile Trainer
I didn’t know this when I led the scrum adoption at Penn, but it’s deﬁnitely true
Kanban foundational principles
✤ Start with what you do now
✤ Agree to pursue incremental, evolutionary change
✤ Respect the current process, roles, responsibilities & titles
All-in vs. evolutionary change
✤ All-in pros:
✤ Gets everyone working in the
same system quickly
✤ Get good at a complete system
with clear rules first, then learn
where to make changes
✤ All-in cons:
✤ Near term productivity loss,
✤ Can surface too many pre-existing
problems at once
✤ Evolutionary pros:
✤ Minimal disruption
✤ Make changes only as needed
✤ Evolutionary cons:
✤ Easy for change process to stall
and not address deeper underlying
3. Consulting environment challenges
✤ Traditional contracts require detailed plans
✤ See my Agile Contracting Philly ETE talk from last year!
✤ Who is the product owner?
✤ Clients aren’t good at it (but think they are) and probably
don’t want to pay you to do it
✤ Hard to work in teams when you typically have projects that
are small and simultaneous
Key to success: inspect and adapt
Single loop learning is “how can we do better”?
Double loop learning is “Why do we believe that?”
Double loop learning means challenging fundamental assumptions
You can do an evolutionary Agile adoption…
But you need to know what you’re doing
- I brought Agile practices to ElectNext, which was a 7 person start-up…
- But only applied them selectively, as needed.
- The trick to doing this is having the experience to know what practices are needed and which aren’t.
- We did one week sprints, we had a prioritized backlog, daily stand-ups, and retrospectives, but we didn’t have the standard Scrum roles
- What was really awesome is the whole company was Agile, not just the engineering team (sales, marketing, even the CEO).
✤ “Succeeding with Agile: Software Development Using Scrum” and
“Agile Estimating and Planning” by Mike Cohn
✤ “Kanban: Successful Evolutionary Change for Your Technology
Business” by David J. Anderson
✤ Angry Dinosaurs: Accelerating Change and Institutional
Incompetence presentation by Cory Ondrejka, Wharton Web
✤ “The Lean Startup” by Eric Ries
✤ “The Nature of Software Development” by Ron Jeffries
✤ “Specification by Example” and “Impact Mapping” by Gojko Adzic
@mtoppa Michael Toppa www.toppa.com
8/8/2017 Wordress Ri Meetup