« training within software » using dojo and mob programming by bernard notarianni at the lean it...

46
P ris, France 16 & 17 October, 2014 Copyright © Institut Lean France 2014 Lean IT Summit ® ® “Training Within Software” using Dojo and Mob Programming Bernard Notarianni

Upload: institut-lean-france

Post on 20-Aug-2015

460 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

P ris, France

16 & 17 October, 2014

Copyright © Institut Lean France 2014

Lean IT Summit ®®

“Training Within Software” using Dojo and

Mob Programming

Bernard Notarianni

Page 2: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Bernard Notarianni Agile Coach / XP

http://umolelo.com

Software creation

Web/Mobile

Microsoft .Net

Erlang

Agile Coaching

Managers, product owners, devs

XP practices trainer

Team dynamics facilitation

Page 3: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Story

Those people found what works for them

We are sharing with those who want to try

We do not try to convince anybody

Page 4: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Story

Those people found what works for them

We are sharing with those who want to try

We do not try to convince anybody

Explaining what happened

using Lean point of view

Lean

Page 5: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

The team

4 functional experts • Within 10 to 20 years of experience • Distributed in France, Belgium, Italy and Spain

5 developers colocated in Paris • 1 expert .Net /MVC – technical lead • 1 senior dev on .Net/MVC • 3 internal developers

1 agile coach (XP / Craftmanship)

Page 6: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

R1

One year project

Iter 1 Iter 2 Iter 3 Iter 4 Iter 5 Iter 6 Iter 7 Iter 8

Release 1 = 8 one-week iterations

R2 R3 R4 R5 R6 R7 R8 R9 R10 R11

About 4000 to 8000 Man.Days

Page 7: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Iter 1 Iter 2 Iter 3 Iter 4 Iter 5 Iter 6 Iter 7 Iter 8

Short cycles

Lean

Page 8: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Continuous improvment

with daily reflection

Lean

Photo Alper Çuğun - CC BY 2.0

Page 9: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Gemba* ?

Lean

*Gemba = the « real place » where the work is done and the product is created.

Page 10: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Gemba = the code!

Lean

Page 11: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Bad quality of code We dont know the technology

Training with cycle of Dojo

Cycle 1

Observation Hypothesis Experiment Result

Page 12: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Training program

1. CRUD Asp.Net MVC & Code Fluent Entities

2. Partial View, Child Action with Asp.Net MVC

3. TDD

4. Unit Test & Mock

5. FitNesse

6. Working methodology

7. MVC ++ (Ajax etc.)

8. TFS + Azure

9. Code Fluent Entities ++

10. Dependency injection with Unity

11. Watin

Tech

Tech

Method

Tech

Tech

Method

Tech

Method

Tech

Tech

Tech

Topics are fully customised to the context of the team

Lean

Page 13: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Deep thinking about

our current knowledge

Lean

Page 14: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Courtesy of BetClic

Learn from others’

mistakes

Lean

Share comments and

advice from the expert

Lean

Repetition to anchor

the knowledge

Lean

Page 15: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Photo Zach Dischner - CC BY 2.0

Page 16: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Bad quality of code We dont know the technology

Training with cycle of Dojo

Cycle 1

Code compliant with .net/MVC standards

Observation Hypothesis Experiment Result

Page 17: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Iter 1 Iter 2 Iter 3 Iter 4 Iter 5 Iter 6 Iter 7 Iter 8

Page 18: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014
Page 19: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

The voice of the client

Lean

Page 20: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Photo Alper Çuğun - CC BY 2.0

Page 21: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Bad quality of code We dont know the technology

Training with cycle of Dojo

Cycle 1

Code compliant with .net/MVC standards

Observation Hypothesis Experiment Result

Low velocity UI complexity is slowing us down

Cycle 2

Page 22: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014
Page 23: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

From 8th light blog, Robert Martin (Uncle Bob)

Page 24: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Test

Page 25: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Test

Short

time frame

Lean

Creating knowledge

for improvement

Lean

Scientific

experiment

Lean

Page 26: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Bad quality of code We dont know the technology

Training with cycle of Dojo

Cycle 1

Code compliant with .net/MVC standards

Observation Hypothesis Experiment Result

Low velocity UI complexity is slowing us down

Implement all but UI in one day

Cycle 2

Page 27: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Black Friday

Page 28: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

I was wrong

Page 29: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Bad quality of code We dont know the technology

Training with cycle of Dojo

Cycle 1

Code compliant with .net/MVC standards

Observation Hypothesis Experiment Result

Low velocity UI complexity is slowing us down

Implement all but UI in one day

Cycle 2

FAIL: everything is slowing us down.

Deep focused observation

Lean

Gemba=code

Lean

Page 30: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Photo Alper Çuğun - CC BY 2.0

Page 31: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Bad quality of code We dont know the technology

Training with cycle of Dojo

Cycle 1

Code compliant with .net/MVC standards

Observation Hypothesis Experiment Result

Low velocity UI complexity is slowing us down

Implement all but UI in one day

Cycle 2

FAIL: everything is slowing us down.

Low velocity We don’t understand the code from team mates

Mob Programming complex refactoring

Cycle 3

Page 32: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014
Page 33: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Experiment

Refactoring of customer table

Impact all over the application

4 developers in a meeting room. No experts.

Page 34: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Photo Zach Dischner - CC BY 2.0

Page 35: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Bad quality of code We dont know the technology

Training with cycle of Dojo

Cycle 1

Code compliant with .net/MVC standards

Observation Hypothesis Experiment Result

Low velocity UI complexity is slowing us down

Implement all but UI in one day

Cycle 2

FAIL: everything is slowing us down.

Low velocity We don’t understand the code from team mates

Mob Programming complex refactoring

Cycle 3

Faster creation of quality code

Page 36: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Bad quality of code We dont know the technology

Training with cycle of Dojo

Cycle 1

Code compliant with .net/MVC standards

Observation Hypothesis Experiment Result

Low velocity UI complexity is slowing us down

Implement all but UI in one day

Cycle 2

FAIL: everything is slowing us down.

Low velocity We don’t understand the code from team mates

Mob Programming complex refactoring

Cycle 3

Faster creation of quality code

Time wasted understanding specs

Specs are not detailed enough with users’ input

Mob Specs

Cycle 4

Less time wasted during mob prog.

Page 37: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Func. spec Mob Spec

Fitnesse

creation

Spikes

Bug Fix

Solo dev

Mob Démo

Pair

Pair

Day 1 Day 2 Day 3 Day 4 Day 5

Page 38: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Productivity?

Page 39: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014
Page 40: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014
Page 41: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Func. spec Mob Spec

Fitnesse

creation

Spikes

Bug Fix

Solo dev

Mob Démo

Pair

Pair

Day 1 Day 2 Day 3 Day 4 Day 5

Time wasted on bug fixing

Lean

All value

created here

Lean

Bottleneck?

Page 42: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

R1

Area for more improvement

R2 R3 R4 R5 R6 R7 R8 R9 R10 R11

x2

x4

x1.3

Page 43: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Conclusion

Gemba = code

Continuous improvement using one week iterations

Bottleneck = sharing knowledge within team

Solution = learn as a team (Dojo, Mob Programming…)

Page 44: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

We do need to learn everywhere

Page 45: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Design process as a learning acquisition

activity

Page 46: « Training Within Software » using Dojo and Mob Programming by Bernard Notarianni at the Lean IT Summit 2014

Questions?

« I want to try! »