software craftsmanship : en pratique - agiletour

Post on 04-Jul-2015

934 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

http://serpodile.com

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.artisanat.fr/

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

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)

http://happyprog.com/pairhero

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

?

top related