software craftsmanship : en pratique - agiletour

58
Jean-Laurent de Morlhon - 20 Octobre 2011 Software Craftsmanship en pratique

Upload: jean-laurent-de-morlhon

Post on 04-Jul-2015

932 views

Category:

Technology


2 download

DESCRIPTION

Talk I gave during Agile Tour 2011, on Software Craftsmanship.

TRANSCRIPT

Page 1: Software Craftsmanship : en Pratique - AgileTour

Jean-Laurent de Morlhon - 20 Octobre 2011

Software Craftsmanshipen pratique

Page 2: Software Craftsmanship : en Pratique - AgileTour

Jean-Laurent de Morlhon

Directeur Technique Xebia

+12 ans expérience IT+6 ans pratiques agiles

@morlhonhttp://blog.xebia.fr

jlmorlhon @ xebia.fr

Page 3: Software Craftsmanship : en Pratique - AgileTour

Jean-Laurent de Morlhon

http://serpodile.com

Page 4: Software Craftsmanship : en Pratique - AgileTour

Jean-Laurent de Morlhon

Développeur

Page 5: Software Craftsmanship : en Pratique - AgileTour

1) Qu'est ce que le Software Craftsmanship ?

2) Comment *je* le mets en pratique.

Master Plan

Page 6: Software Craftsmanship : en Pratique - AgileTour

1

Page 7: Software Craftsmanship : en Pratique - AgileTour

Software Craftsmanship

???

Page 8: Software Craftsmanship : en Pratique - AgileTour

CRAFTMAN-CHIPS@elemerdy

Page 9: Software Craftsmanship : en Pratique - AgileTour

craftsmanship

Page 10: Software Craftsmanship : en Pratique - AgileTour

http://www.artisanat.fr/

Page 12: Software Craftsmanship : en Pratique - AgileTour

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

Page 13: Software Craftsmanship : en Pratique - AgileTour

Software Craftsmanship

est une approche de développement logiciel qui met l'accent sur les «coding skills» des

développeurs.

Page 14: Software Craftsmanship : en Pratique - AgileTour

Crafts.man

Un homme qui pratique son métier avec une grande habileté.

Page 16: Software Craftsmanship : en Pratique - AgileTour

16

Page 17: Software Craftsmanship : en Pratique - AgileTour
Page 18: Software Craftsmanship : en Pratique - AgileTour
Page 19: Software Craftsmanship : en Pratique - AgileTour
Page 20: Software Craftsmanship : en Pratique - AgileTour

• 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...

Page 21: Software Craftsmanship : en Pratique - AgileTour

La marque "Agile" oublie les pratiques

techniques.

Page 22: Software Craftsmanship : en Pratique - AgileTour

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

Page 23: Software Craftsmanship : en Pratique - AgileTour

Process

Coding

Page 24: Software Craftsmanship : en Pratique - AgileTour

ProcessCoding

Page 25: Software Craftsmanship : en Pratique - AgileTour

Respectingénieur logiciel

!=

Respectingénieur structure

Page 26: Software Craftsmanship : en Pratique - AgileTour

Savoir dire Non !

Page 27: Software Craftsmanship : en Pratique - AgileTour

Apprentissage

Page 28: Software Craftsmanship : en Pratique - AgileTour
Page 29: Software Craftsmanship : en Pratique - AgileTour

© 2004 Warner Bros. Entertainment Inc. All Rights Reserved.

Page 30: Software Craftsmanship : en Pratique - AgileTour

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

Page 31: Software Craftsmanship : en Pratique - AgileTour
Page 32: Software Craftsmanship : en Pratique - AgileTour

• Un mouvement.

• Agile *avec* les pratiques techniques

• Respect du rôle de l'ingénieur

• Apprentissage / Mentoring

En résumé

Page 33: Software Craftsmanship : en Pratique - AgileTour

2

Page 34: Software Craftsmanship : en Pratique - AgileTour

En pratique...

Page 35: Software Craftsmanship : en Pratique - AgileTour

SOLID Entrainement

TDD

YAGNIDéploiement Continu

CRAFT

AGILE

Page 36: Software Craftsmanship : en Pratique - AgileTour

Agile...

XP Scrum Kanban

Page 37: Software Craftsmanship : en Pratique - AgileTour

SOLID5 Principes

Single Responsability

Open Closed

Liskov Substitution

Interface Segregation

Dependency Inversion

http://blog.xebia.fr/2011/07/18/les-principes-solid/

Page 38: Software Craftsmanship : en Pratique - AgileTour

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/

Page 39: Software Craftsmanship : en Pratique - AgileTour

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/

Page 40: Software Craftsmanship : en Pratique - AgileTour

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/

Page 41: Software Craftsmanship : en Pratique - AgileTour

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/

Page 42: Software Craftsmanship : en Pratique - AgileTour

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/

Page 43: Software Craftsmanship : en Pratique - AgileTour

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/

Page 44: Software Craftsmanship : en Pratique - AgileTour

YAGNI

You Aren't Going to Need It !

Page 45: Software Craftsmanship : en Pratique - AgileTour

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 !

Page 46: Software Craftsmanship : en Pratique - AgileTour

TDDflow

red

greenrefactor

switch !

Page 47: Software Craftsmanship : en Pratique - AgileTour

TDD

C'est difficile.

On y arrive, ça s'apprends.

Ils n'en reviennent jamais.

Page 48: Software Craftsmanship : en Pratique - AgileTour
Page 49: Software Craftsmanship : en Pratique - AgileTour

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)

Page 50: Software Craftsmanship : en Pratique - AgileTour

http://happyprog.com/pairhero

Page 51: Software Craftsmanship : en Pratique - AgileTour

S'entrainer !

Kata (seul)Coding Dojo (en groupe)Code Retreat (tout plein)

Page 52: Software Craftsmanship : en Pratique - AgileTour

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

Page 53: Software Craftsmanship : en Pratique - AgileTour

Global Day of Code Retreat

3 décembre 2011

Page 54: Software Craftsmanship : en Pratique - AgileTour
Page 55: Software Craftsmanship : en Pratique - AgileTour

Pratiquezde nouveaux

langages

Page 56: Software Craftsmanship : en Pratique - AgileTour

Et à l'horizon...

• Domain Driven Design

• Clean Code...

• TDD ++ (practice, practice, practice !)

• 1 langage par an

Page 57: Software Craftsmanship : en Pratique - AgileTour

raising the bar

Page 58: Software Craftsmanship : en Pratique - AgileTour

?