Agile Anti-Patterns Yes your agile projects can and will fail too Sander Hoogendoorn Principal Technology Officer & Global Agile Thoughtleader Capgemini @aahoogendoorn 1
May 15, 2015
1
Agile Anti-PatternsYes your agile projects can and will fail too
Sander HoogendoornPrincipal Technology Officer & Global Agile Thoughtleader
Capgemini@aahoogendoorn
Sander HoogendoornCapgeminiPrincipal technology officerGlobal agile thought leader Chief architect Accelerated Delivery Platform (ADP)
OtherAuthor books on UML, agileAuthor +200 articles, columnsSpeaker +100 international conferencesMicrosoft Partner Advisory Council .NETEditorial boards & Advisory boardsCapping IT Off Blog
Webwww.sanderhoogendoorn.com [email protected]@aahoogendoorn
Why waterfall won’t work
• Why waterfall won’t work
Waterfall?
Waterfall?
7
Agile!
You would believe …
because waterfall doesn’t work, right?
@aahoogendoorn They should never have used waterfall.
@aahoogendoorn Does the name of the project coincidently start with a C?
So the methodology doesn’t work
But how would you feel if …
@aahoogendoorn They didn’t apply Scrum right.
@aahoogendoorn This project likely did ScrumBut, not Scrum.
So it’s not the methodology, right?
12
13
14
15
Jack states that we have over 300 resources who are trained as SCRUM master. As it happens I’m meeting him this afternoon. I’ll ask him. 300?
16
Scrumman
Dogmagile
Crusader Agile
Scrumdamentalism
Stand up meetings
Sit down meetings…
Scrumdamentalism
Scrumdamentalism
Agilists against Zenifying
Just write down small things on small papers. It’s your kaizen.
Agilists against Zenifying
Don’t just write down small things on small papers. Write code. It’s your job.
The Bob-the-Builder-Syndrome
Can we build it? Yes, we can!
There is no so thing as one-size-fits-all agile
28
Teams and roles
Customer, Coach, Developer
Product owner, Scrum master, Team
Propose Scope Realize Realize Realize Realize Finalize Manage
Customer, User, Domain Expert Project Manager, Coach, Developer,
TesterCreateproject proposal
Writeproject plan
Deliverworkingsoftware
Stabilizesoftware
Maintainsoftware
Multiple roles
33
Teams?
34
What is the keyto being successful
as a team?
35
Collaboration
36
But what happens
to the old roles?
37
An example teamProduct owner
Responsible for gathering all business requirements
No ‘real’ business owner
Scrum teamBusiness analyst /2
Information analyst /2SAP CRM /1
SAP XI/ BPM /2SAP ABAP /1
UI developer /1.NET developer /1
Test /2Scrum master /1
Agile coach /1
The backlog
Where does it come from?
And on the seventh day Ken created the backlog
The automagical backlog
The automagical backlog
Preliminary iterations
Preliminary iterations
Propose Scope Realize Realize Realize Realize Finalize Manage
Preliminary iterations
Createproject proposal
Writeproject plan
Deliverworkingsoftware
Stabilizesoftware
Maintainsoftware
Documentation Frenzy
Documentation Frenzy
But if your IT landscape looks like this …
Index cards might just not do the trick
User stories are merely meant to get the conversation going?
So what about documentation?
The agile manifesto doesn’t say no documentation (or modeling)
Eventually your software will go into maintenance (hopefully)
Will you document to maintain?
54
Guesstimation
55
Apples
Team 1
Apples and oranges
56
Team 1 Team 2
57
Apples and apples
Team 1 Team 2
Distributed Apples
58
Team 1
OffshoreTeamTeam 2 Team 3
Mandatory burn down chart?
Bad smell: note how the same example is used in everyone’s presentations.
Don’t trust a vendor’s
presentation if it has this example
of a burndown chart in it.
We have our ups and downs
Lightweight agile can beto enterprise projects
What Monopoly is to solving the financial crisis
62
Agile is a sliding scale
Assembling Agile
64
Static versus Dynamic Agile
65
Project Approachpublic interface IApproach{ List<ITeam> Teams { get; set; } IDashBoard Board { get; set; } IUnitOfWork Unit { get; set; }} public abstract class Approach : IApproach{ public List<ITeam> Teams { get; set; } public IDashBoard Board { get; set; } public IUnitOfWork Unit { get; set; }}
66
Static Approach public class Scrum : Approach { public Scrum() { Teams = new List<ITeam> {new LocalTeam()};
Board = new TaskBoard(); Unit = new UserStory(); } }
public class ScrumProject { public Scrum Approach = new Scrum(); }
67
Dynamic Approach public class Project { public IApproach Approach { get; set; } }
public class MyProject : Project { public MyProject() { Approach = new Smart(); Approach.Board = new KanbanBoard();
Approach.Teams.Add(new LocalTeam()); Approach.Teams.Add(new LocalTeam()); Approach.Teams.Add(new IndianTeam());
Approach.Unit = new Feature(); } }
Assembling Agile – The basics of agile
ShortIterations
CollaborativeTeams
SmallUnit of Work
ContinuousPlanning
DeliverEarly & Often
SimplifyCommunication
Lightweight Agile
Assembling Agile – Light
ShortIterations
CollaborativeTeams
SmallUnit of Work
ContinuousPlanning
DeliverEarly & Often
SimplifyCommunication
Enterprise Agile
Assembling Agile – Enterprise
ShortIterations
CollaborativeTeams
SmallUnit of Work
ContinuousPlanning
DeliverEarly & Often
SimplifyCommunication
73
Institutionalizing agile
74
Freedom and flexibility
75
Institutionalizing agile
In retrospective
Agile is no religion
So don’t be a zealot
78
Agile is a sliding scale
Assembling Agile
Value is found
In all agile approaces(and yes, even in waterfall)
And please can we cut the crap
And go back to work?
82
83
Sander Hoogendoornwww.sanderhoogendoorn.com
@aahoogendoorn