software craftsmanship: en pratique

Post on 05-Dec-2014

3.989 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Jean-Laurent de Morlhon - 4 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

http://serpodile.com

Qu'est ce que le Software Craftsmanship ?

Comment *je* le mets en pratique.

Master Plan

Software Craftsmanship

???

CRAFTMAN-CHIPS@elemerdy

http://www.artisanat.fr/

ManifesteCraftsmanship

Historique

1999 2008 2009 2010

Livre Pragmatic

Programmers

"Craftsmanshipover crap"

1ère ConfCraftsmanship EU

2nde confCraftsmanship EU

1ère ConfCraftsmanship US

Livre Apprencticeship

Patterns

LivreClean Code

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

13

• Une définition commune

• Métaphores que l'on peut interpréter de façon très différentes (art, guilde etc...)

• Manifeste au points flous, lié au manifeste agile

En bref...

La marque "Agile" oublie les pratiques

techniques.

• Scrum...

• ... Sans itérations...

• ... Sans pratiques techniques...

• ... Sans rétrospectives...

• ...

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é

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 exécute du

code que l'on veut rendre exécutable régulièrement. L'accès au logs passés est important. Un novice doit pouvoir les visualiser.

1: Cron Job2: Talend3: Quartz Scheduler4: Je code tout, Threads & Future FTW5: Jenkins

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

...

Typical CodeRetreat Planning

Global Day of Code Retreat

december 3rd 2011

LearnNew

Languages

Et à l'horizon...

• Domain Driven Design

• Clean Code...

• TDD ++ (practice, practice practice !)

• 1 langage par an

raising the bar

?

top related