Upload
jean-laurent-de-morlhon
View
932
Download
2
Embed Size (px)
DESCRIPTION
Talk I gave during Agile Tour 2011, on Software Craftsmanship.
Citation preview
Jean-Laurent de Morlhon - 20 Octobre 2011
Software Craftsmanshipen pratique
Jean-Laurent de Morlhon
Directeur Technique Xebia
+12 ans expérience IT+6 ans pratiques agiles
@morlhonhttp://blog.xebia.fr
jlmorlhon @ xebia.fr
Jean-Laurent de Morlhon
Développeur
1) Qu'est ce que le Software Craftsmanship ?
2) Comment *je* le mets en pratique.
Master Plan
1
Software Craftsmanship
???
CRAFTMAN-CHIPS@elemerdy
craftsmanship
http://www.economicthought.net/2011/02/selective-attention/
ManifesteCraftsmanship
Historique
1999 2008 2009 2010
Livre Pragmatic
Programmers
"Craftsmanshipover crap"
1ère ConfCraftsmanship EU
1ère ConfCraftsmanship US
Livre Apprencticeship
Patterns
LivreClean Code
London Software
Craftsmanship Comunity
ParisSoftware
Craftsmanship Community
2011
Software Craftsmanship
est une approche de développement logiciel qui met l'accent sur les «coding skills» des
développeurs.
Crafts.man
Un homme qui pratique son métier avec une grande habileté.
! ARThttp://dannorth.net/2011/01/11/programming-is-not-a-craft/
16
• Une définition commune
• Métaphores que l'on peut interpréter de façon très différentes (art, guilde ...)
• Manifeste au points flous, lié au manifeste agile
En bref...
La marque "Agile" oublie les pratiques
techniques.
Scrum en 2011...
•Avec des post-its et des stand-ups
•... Sans itérations...
•... Sans rétrospectives...
•... Sans pratiques techniques...
•...http://www.martinfowler.com/bliki/FlaccidScrum.html
Process
Coding
ProcessCoding
Respectingénieur logiciel
!=
Respectingénieur structure
Savoir dire Non !
Apprentissage
© 2004 Warner Bros. Entertainment Inc. All Rights Reserved.
Musiciens d’élite Musicien professionnels
Professeur de musique
5 ans8 ans12 ans16 ans20 ans
Nb heures Accumulées :
2-3 h / Semaine 2-3 h / Semaine 2-3 h / Semaine6 h / Semaine 2-3 h / Semaine 2-3 h / Semaine8 h / Semaine 6 h / Semaine 4 h / Semaine22 h / Semaine 11 h / Semaine 7 h / Semaine30+ / Semaine 24 h / Semaine 12 h / Semaine
10 000 heures 8 000 heures 4 000 heures
The Role of Deliberate Practice in the Acquisition of Expert Performance K. Anders Ericsson, Ralf Th. Krampe, and Clemens Tesch-Romer; 1993
Musique
• Un mouvement.
• Agile *avec* les pratiques techniques
• Respect du rôle de l'ingénieur
• Apprentissage / Mentoring
En résumé
2
En pratique...
SOLID Entrainement
TDD
YAGNIDéploiement Continu
CRAFT
AGILE
Agile...
XP Scrum Kanban
SOLID5 Principes
Single Responsability
Open Closed
Liskov Substitution
Interface Segregation
Dependency Inversion
http://blog.xebia.fr/2011/07/18/les-principes-solid/
Ecrire du logiciel ce n'est pas une partie de Jengaht
tp://
lost
echi
es.c
om/d
eric
kbai
ley/
2009
/02/
11/s
olid
-dev
elop
men
t-pr
inci
ples
-in-m
otiv
atio
nal-p
ictu
res/
Ce n'est pas parce qu'on peut le faire qu'il faut le faire.
http
://lo
stec
hies
.com
/der
ickb
aile
y/20
09/0
2/11
/sol
id-d
evel
opm
ent-
prin
cipl
es-in
-mot
ivat
iona
l-pic
ture
s/
Une opération à coeur ouvert n'est pas nécessaire lorsqu'on enfile un vêtement.
http
://lo
stec
hies
.com
/der
ickb
aile
y/20
09/0
2/11
/sol
id-d
evel
opm
ent-
prin
cipl
es-in
-mot
ivat
iona
l-pic
ture
s/
Ca cancane comme un canard, ressemble à un canard mais à besoin de pile. Vous avez surement la mauvaise abstraction.
http
://lo
stec
hies
.com
/der
ickb
aile
y/20
09/0
2/11
/sol
id-d
evel
opm
ent-
prin
cipl
es-in
-mot
ivat
iona
l-pic
ture
s/
Où voulez vous brancher cela ?
http
://lo
stec
hies
.com
/der
ickb
aile
y/20
09/0
2/11
/sol
id-d
evel
opm
ent-
prin
cipl
es-in
-mot
ivat
iona
l-pic
ture
s/
Est ce que vous souderiez directement un branchement électrique dans le mur ?
http
://lo
stec
hies
.com
/der
ickb
aile
y/20
09/0
2/11
/sol
id-d
evel
opm
ent-
prin
cipl
es-in
-mot
ivat
iona
l-pic
ture
s/
YAGNI
You Aren't Going to Need It !
ExerciceQ: Vous avez un jar exécutable qui démarre
du code que l'on veut lancer régulièrement. L'accès au logs passés est important.Un novice doit pouvoir les visualiser.
1: Cron Job2: Talend3: Quartz Scheduler4: Jenkins5: Je code tout, Threads & Future FTW !
TDDflow
red
greenrefactor
switch !
TDD
C'est difficile.
On y arrive, ça s'apprends.
Ils n'en reviennent jamais.
Déploiement Continu
Build < 2-3 minutes.Dépendance binaireTest unitaire + intégrationDéploiement de l'application complèteDés la 1ère itération (sans surcout)
S'entrainer !
Kata (seul)Coding Dojo (en groupe)Code Retreat (tout plein)
Code Session 1
Retrospective 1
Code Session 2
Retrospective 2
Code Session 3
Retrospective 3
Lunch
Code Session 4
Retrospective 4
Code Session 5
Retrospective 5
Code Session 6
Day Retrospective
10h00
11h00
12h00
13h00
14h00
14h00
15h00
16h00
16h40
...
Planning de CodeRetreat usuel
Global Day of Code Retreat
3 décembre 2011
Pratiquezde nouveaux
langages
Et à l'horizon...
• Domain Driven Design
• Clean Code...
• TDD ++ (practice, practice, practice !)
• 1 langage par an
raising the bar
?