death by dogma versus assembling agile - accu€¦ · @aahoogendoorn death by dogma versus...
TRANSCRIPT
@aahoogendoorn
Death by dogma
versus assembling agile
Sander HoogendoornPrincipal Technology Officer & Global Agile Thoughtleader
Capgemini
1
@aahoogendoorn
Sander HoogendoornCapgemini
Principal technology officer
Global agile thought leader
Chief architect Accelerated Delivery Platform
Other
Author books on UML, agile
Author +200 articles, columns
Speaker +100 international conferences
Microsoft Partner Advisory Council .NET
Editorial boards & Advisory boards
Capping IT Off Blog
Web
www.sanderhoogendoorn.com
@aahoogendoorn
@aahoogendoorn
@aahoogendoorn
4
@aahoogendoorn
On being a developer ...
5
@aahoogendoorn
Why waterfall won’t work
• Why waterfall won’t work
@aahoogendoorn
Waterfall?
@aahoogendoorn
Waterfall?
@aahoogendoorn
Agile!
9
@aahoogendoorn
You would believe …
because waterfall doesn’t work,
right?
@aahoogendoorn
@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
@aahoogendoorn
But how would you feel if …
@aahoogendoorn
@aahoogendoorn They didn’t apply Scrum right.
@aahoogendoorn This project likely did ScrumBut, not Scrum.
So it’s not the methodology, right?
@aahoogendoorn
14
@aahoogendoorn
15
@aahoogendoorn
16
@aahoogendoorn
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.
17
@aahoogendoorn
Lowering Our Fences
@aahoogendoorn
Scrumman
19
@aahoogendoorn
Dogmagile
@aahoogendoorn
Crusader Agile
@aahoogendoorn
Scrumdamentalism
� �
@aahoogendoorn
Stand up meetings
@aahoogendoorn
Sit down meetings…
@aahoogendoorn
Scrumdamentalism
��
@aahoogendoorn
Agilists against Zenifying
Just write down small things on small papers. It’s your kaizen.
@aahoogendoorn
Agilists against Zenifying
Don’t just write down small things on small papers. Write code. It’s your job.
@aahoogendoorn
There is no so thing as
one-size-fits-all agile
@aahoogendoorn
Teams and roles
29
@aahoogendoorn
Customer, Coach, Developer
@aahoogendoorn
Product owner, Scrum master,
Team
@aahoogendoorn
Customer, User, Domain Expert
Project Manager, Coach, Developer, Tester
32
Create
project
proposal
Write
project
plan
Deliver
working
software
Stabilize
software
Maintain
software
@aahoogendoorn
Multiple roles
@aahoogendoorn
Teams?
34
@aahoogendoorn
What is the key
to being successful
as a team?
35
@aahoogendoorn
Collaboration
36
@aahoogendoorn
Self-organization
37
@aahoogendoorn
But what happens
to old roles?38
@aahoogendoorn
An example team
39
A typical Scrum team?
Product owner /1
Business analyst /2
Information analyst /2
SAP CRM /1
SAP XI/ BPM /2
SAP ABAP /1
UI developer /1
.NET developer /1
Java developer /1
Tester /2
Scrum master /1
Agile coach /1
@aahoogendoorn
Rowing Contest Collaboration
40
Test Team
Development Team
Enterprise Architects
Offshore Development Team
End Users
@aahoogendoorn
The Bob-the-Builder-Syndrome
Can we build it? Yes, we can!
@aahoogendoorn
The backlog
Where does it come from?
@aahoogendoorn
And on the
seventh day
Ken created
the backlog
@aahoogendoorn
The automagical backlog
@aahoogendoorn
The automagical backlog
@aahoogendoorn
Preliminary iterations
@aahoogendoorn
Preliminary iterations
@aahoogendoorn
Preliminary iterations
48
Create
project
proposal
Write
project
plan
Deliver
working
software
Stabilize
software
Maintain
software
@aahoogendoorn
Documentation Frenzy
@aahoogendoorn
Documentation Frenzy
��
@aahoogendoorn
User stories
@aahoogendoorn
User stories �
@aahoogendoorn
But if your IT landscape looks like this …
@aahoogendoorn
Index cards might just not do the trick
@aahoogendoorn
User stories are merely meant to get the conversation going?
@aahoogendoorn
So what about documentation?
@aahoogendoorn
The agile manifesto doesn’t say
no documentation (or modeling)
@aahoogendoorn
Will you document to maintain?
� �
@aahoogendoorn
Eventually your software will go
into maintenance (hopefully)
@aahoogendoorn
Levels of requirements
@aahoogendoorn
Huge cases
Hard to build,
impossible to test
@aahoogendoorn
Different levels of use cases
User goal
Sub
function
@aahoogendoorn
Smart use cases
@aahoogendoorn
Work item life cycle
@aahoogendoorn
Quality?
65
@aahoogendoorn
Quality in iterations
66
@aahoogendoorn
Quality per work item
67
@aahoogendoorn
Smart Use Case Cycle
Define
work on
use case
Write
test cases
Generate
and build
use case
Run
test cases
Adjust
use case
Describe
use case
Accept
use case
@aahoogendoorn
Work item life cycle
@aahoogendoorn
Life cycle dashboard
@aahoogendoorn
Kanban is NOT another
agile approach
71
Kanban is “JUST”an approach to improve your processes
@aahoogendoorn
The theory of constraints1. Identify the system's constraint(s).
That which prevents the organization from obtaining more of the goal in a unit of time.
2. Decide how to exploit the system's constraint(s).How to get the most out of the constraint.
3. Subordinate everything else to above decision.Align the whole system or organization to support the decision made above.
4. Elevate the system's constraint(s).Make other major changes needed to break the constraint.
5. Go back to step 1
And remember: a chain is no stronger than its weakest link
@aahoogendoorn
On when to estimate73
@aahoogendoorn
When?
@aahoogendoorn
When?
@aahoogendoorn
Again … preliminary iterations
@aahoogendoorn
The overall model
@aahoogendoorn
Smart use case model
78
Create
project
proposal
Write
project
plan
Deliver
working
software
Stabilize
software
Maintain
software
@aahoogendoorn
Guesstimation79
@aahoogendoorn
Apples
80
Team 1
@aahoogendoorn
Apples and apples
81
Team 1 Team 2
@aahoogendoorn
Apples and oranges
82
Team 1 Team 2
@aahoogendoorn
Distributed Apples
83
Team 1
Off
shore
TeamTeam 2 Team 3
@aahoogendoorn
Mandatory burn down chart?
Bad smell: note how
the same example
is used in everyone’s
presentations.
Don’t trust a vendor
presentation if it has
this example of a
burndown chart in it.
@aahoogendoorn
We have our ups and downs
@aahoogendoorn
Lightweight agile can be
to enterprise projects
What Monopoly is
to solving the financial crisis
@aahoogendoorn
Agile is a sliding scale
87
@aahoogendoorn
Assembling Agile
@aahoogendoorn
Static versus Dynamic Agile
89
@aahoogendoorn
Project Approach
90
public 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; }
}
@aahoogendoorn
Static Approach
91
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();}
@aahoogendoorn
Dynamic Approach
92
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 UkranianTeam());
Approach.Unit = new Feature();}
}
@aahoogendoorn
Assembling Agile – The basics of agile
Short
Iterations
Collaborative
Teams
Small
Unit of Work
Continuous
Planning
Deliver
Early & Often
Simplify
Communication
@aahoogendoorn
Lightweight Agile
�
@aahoogendoorn
Assembling Agile – Light
Short
Iterations
Collaborative
Teams
Small
Unit of Work
Continuous
Planning
Deliver
Early & Often
Simplify
Communication
@aahoogendoorn
Enterprise Agile
�
@aahoogendoorn
Assembling Agile – Enterprise
Short
Iterations
Collaborative
Teams
Small
Unit of Work
Continuous
Planning
Deliver
Early & Often
Simplify
Communication
@aahoogendoorn
Institutionalizing agile
98
@aahoogendoorn
Freedom and flexibility
99
@aahoogendoorn
Institutionalizing agile
100
@aahoogendoorn
In retrospective
@aahoogendoorn
@aahoogendoorn
Agile is no religion
So don’t be a zealot
@aahoogendoorn
Agile is a sliding scale
104
@aahoogendoorn
Assembling Agile
@aahoogendoorn
Value is found
In all agile approaches(and yes, even in waterfall)
@aahoogendoorn
And please can we cut
the fluffiness
And go back to work?
@aahoogendoorn
108
@aahoogendoorn
Sander Hoogendoorn
www.sanderhoogendoorn.com
@aahoogendoorn
109