SlideShare une entreprise Scribd logo
1  sur  65
Agile Tour Paris 2014 
Travailler avec l'existant : 
ou comment s'en débarrasser 
www.agileparis.org 
www.twitter.com/AgileTourParis 
www.facebook.com/AgileParis 
team@agileparis.org 
Meetup.com/AgileParis
Travailler avec l'existant : ou 
comment s'en débarrasser 
Les problèmes qui présentent l'existant, 
comment les confronter et les contourner et 
éventuellement s'en débarrasser 
Sam Cranford – Upwiser 
@nostradamnit 
me@nostradamnit.com 
delicious.com/nostradamnit
Qui suis-je ? 
● Développeur entreprise depuis 15 ans 
● Agiliste depuis plus de 10 ans 
● Très (trop) expérimenté en travaillant avec 
l'existant 
● noter: presentation en fr_US
Un peu d'histoire 
Eugène Ionesco
Bon, c'est qui? 
● Dramaturge Français 
● Créateur accidentel du Théâtre de l'absurde
Amédée ou comment s'en 
débarrasser 
● Pièce absurde en 3 actes 
● Quelque chose encombre l'avancement 
● La crise causé par l'encombrant 
● La libération de l'encombrant
Ok, c'est quoi le rapport ? 
● L'absurde – un décalage entre l'attente de 
l'homme et l'expérience qu'il fait du monde 
● L'existant – un projet en cours, en 
production qui gagne de l'argent 
un décalage entre le but d'un projet et son 
déroulement actuel
L'absurde existe 
Un peu trop souvent dans 
les équipes de dev...
Présentation en 3 actes 
Le cycle de vie d'un projet informatique 
● On commence avec des bonnes idées et 
les bonne intentions 
● On prend des décisions douteux et s'y 
accroche 
● On décide finalement de corriger ses 
erreurs
Acte 1 
Pourquoi on n'avance plus / pas assez vite? 
● L'existant dans ces diverses incarnations 
– Le code 
– L’équipe 
– L’état d'esprit 
– Les connaissances
On existe 
● Un produit existant 
● Une équipe existante 
● Des clients existants 
● Des problèmes 
existants 
● L'existant, quoi ?!?
Le produit existant
Le code (coté serveur) 
public class BlahFormatter : ICanHaz 
{ 
public string BlahFromUrl() 
{ 
var context = Config.GetGlobalConfig("blahContext"); 
String url = HttpContext.Current.Request.Url; 
var mehConverter = new MehConvertor(context); 
var blah = BlahFactory.getFreshBlah(url); 
var meh = mehConvertor.convert(blah); 
return meh.toString(); 
} 
}
Le code (cote client) 
e = "" 
function toggleElm(cls) { 
for (i = 0; i < document.all.length; i++) { 
if (document.all[i].className == cls) { 
e = document.all[i] 
} 
} 
}
Le code (build) 
HAI 1.2 
CAN HAZ STDIO? 
I HAZ A FILE_NAME ITZ 'build.environment' 
I HAZ A SERVR ITS noob 
PLZ OPEN FILE FILE_NAME? 
AWSUM THX 
SERVR R FILE 
O NOES 
INVISIBLE "WFT ERRER?" 
SERVR, WTF? 
OMG "PROD" 
I IZ BUILD_PROD 
GTFO 
OMG "TEST" 
I IZ BUILD_TEST 
GTFO 
OMGWTF 
I IZ BUILD_DEV 
OIC 
KTHXBYE
L'équipe existante
L’équipe existante 
Pas toujours ouverte au changement
Bozo bit 
Je ne parle pas aux cons, ça les instruit 
http://c2.com/cgi/wiki?SetTheBozoBit
Les clients existants
Les problèmes existants 
● Le produit n'est pas stable 
● Il manque des fonctionnalités 
● Le temps d’évolution est trop long 
● L’équipe n'est pas stable / formée / motivée 
● La direction met la pression, sans direction 
● Le code n'est pas très structuré
L'existant
Il suffit de l'implémenter 
Un dev à la direction : “On peut commencer 
des pratiques agiles ?”
Acte 2 
Ca n'avance plus
Comment est-on arrivé là ? 
Cercle vicieux des manques : 
– De temps 
– De connaissances 
– D'organisation 
– D’évolution 
– De tests 
– De passion
Temps 
● Comme on n'est pas 
nombreux, on a 
beaucoup à faire et 
beaucoup de retard 
● Et donc on travaille à 
l'arrache !
Connaissances 
● Comme on est en retard, on n'a pas le temps 
de faire de la veille technologique 
● Comme le travail actuel nous frustre, on n'a 
pas envie de continuer
Organisation
Evolution 
● Les clients en demandent 
● La direction aussi
Tests
Passion 
● Travailler dans des 
conditions pareilles est 
très fatigant, ça sape le 
moral 
● Une équipe démotivée 
crée des produits sans 
passion 
● Ce manque de passion se 
voit dans le résultat
Acte 3 
Il faut que ça change
Comment évaluer l'existant ? 
● La structure 
● La technique 
● L'humain 
● L'attitude 
● La possibilité de changer
Structure 
● Postulat : vous n’êtes pas là 
pour changer l’équipe 
● Donc il faut trouver les 
moyens d'injecter des 
bonnes pratiques sans trop 
déranger
Technique 
● Vous êtes là pour faire 
avancer le projet 
● Vous êtes expert dans votre 
domaine 
● Exigez du professionnalisme, 
soyez l’ingénieur que vous 
êtes
Duplication
SOLID 
● Principe de Separation de 
responsabiltés 
● Principe d'Ouvert / Fermé 
● Principe de substitution 
de Liskov 
● Principe de ségrégation 
d'Interface 
● L'inversion de 
Dépendance
Humain 
● Est-ce que les collègues veulent 
changer ? 
● Est-ce que les devs sont traités 
avec respect ? 
● Les collègues sont-ils honnêtes 
dans leurs interactions ? 
● Les chefs s'imposent-ils des 
échéances irréalisables ?
Attitude 
● L'ambiance est-elle bonne ? 
● Est-ce que les problèmes sont la faute des 
autres ?
Le test de Joël 
1.Utilisez-vous un système de 
gestion de version ? 
2.Pouvez-vous effectuer une 
compilation en une seule 
étape ? 
3.Faites-vous des compilations 
journalières? 
4.Avez-vous un logiciel de suivi de 
problèmes ? 
… ( il y a 12 questions )
Comment s'en sortir ? 
● Tests 
● Restructuration 
● Organisation 
● Réduction de dette 
technique 
● Maîtrise de l'environnement 
● Formation 
● Méthodologie
Tests
Restructuration du code 
● Ajouter et/ou réorganiser le projet pour qu'il 
soit compréhensible et cohérent 
● Enlever le code mort, les fonctionnalités 
non-nécessaires, tout ce qui encombre le 
code 
Credits - http://www.qwan.eu/en
Organisation 
● N'oubliez pas le but final, 
● Faire de la thune 
● Euh, de créer de la valeur
Organisation
Dette technique 
● Ne pas la cacher, partager la douleur 
● L'isoler 
● Préparer pour l'injection de dépendances 
● Rendre le code testable → découplage
Revue de code
Le code (côté serveur) 
public class BlahFormatter : ICanHaz 
{ 
public string BlahFromUrl() 
{ 
var context = Config.GetGlobalConfig("blahContext"); 
String url = HttpContext.Current.Request.Url; 
var mehConverter = new MehConvertor(context); 
var blah = BlahFactory.getFreshBlah(url); 
var meh = mehConvertor.convert(blah); 
return meh.toString(); 
} 
}
Le code (côté serveur) 
public class BlahFormatter : ICanHaz 
{ 
public string BlahFromUrl(string Url, IConvertor convertor) 
{ 
var blah = BlahFactory.getFreshBlah(url); 
var meh = mehConvertor.convert(blah); 
return meh; 
} 
}
Le code (côté client) 
e = "" 
function toggleElm(cls) { 
for (i = 0; i < document.all.length; i++) { 
if (document.all[i].className == cls) { 
e = document.all[i] 
} 
} 
}
Le code (côté client) 
var selectedElements; 
function toggleElm(cls) { 
selectedElements = document.getElementsByClassname(cls); 
}
Environnement 
● Insister sur les outils 
suffisants, au minimum 
● Machines performantes 
● Environnement de 
développement isolé 
● Automatisation des builds 
et des tests 
● Éviter les espaces ouverts 
généralisés
Formation 
● Créer / inculquer une culture 
d’apprentissage 
● Proposer des ateliers aux pauses déjeuner 
(dojos, découvertes techniques, 
discussions) 
● Discuter avec l’équipe de la technique 
● Jeux sérieux –> tastycupcakes.org
Méthodes
Focaliser sur l'important 
● Un logiciel stable et maintenable 
● Des clients contents et collaboratifs 
● Un quotidien épanouissant 
● De l'excellence technique 
● Du bonheur, quoi ?
Honnête 
● Exposer les fraudes 
● Insister sur des 
échéances justes 
● Ne pas vous laisser 
écraser
Humilité 
● Savoir reconnaître ses fautes, ses erreurs 
“L'humilité n'est pas de penser moins à soi-même, 
mais penser moins de soi-même” C. S. 
Lewis
Résumé 
● Cliquez ici pour ajouter un résumé 
Les 16 C s 
● Courage 
● Compassion 
● Collaboration 
● Capacité 
● Communauté 
● Cohérence 
● Compréhension 
● Conclusif 
● Coordination 
● Correct 
● Confort 
● Composé 
● Créatif 
● Convaincant 
● Convivial 
● Clair
C’est pas la taille de 
l’épée qui compte, c’est 
l’agilité du mousquetaire
Un peu de lecture
Un peu plus...
Merci ! 
● Aux organisateurs de l'Agile Tour Paris 
● Aux participants ! 
● A Upwiser et tous mes anciens et futurs 
collaborateurs 
● A tous les agilistes 
● A Okiwi.org et les agilistes de Bordeaux
License 
Cette présentation est sous les licenses 
● Beerware 
● WTFPL
Merci à nos sponsors 
Prestige Platinum 
Gold

Contenu connexe

Tendances

Agilité à budget fixe en phase d'avant-vente. Que proposer ?
Agilité à budget fixe en phase d'avant-vente. Que proposer ?Agilité à budget fixe en phase d'avant-vente. Que proposer ?
Agilité à budget fixe en phase d'avant-vente. Que proposer ?Frantz Degrigny
 
La gestion de projet Agile
La gestion de projet AgileLa gestion de projet Agile
La gestion de projet AgileJonathan Roy
 
Formation tableau de bord
Formation tableau de bordFormation tableau de bord
Formation tableau de bordnodesway
 
La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...
La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...
La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...Pyxis Technologies
 
Principe d'une organisation agile
Principe d'une organisation agilePrincipe d'une organisation agile
Principe d'une organisation agileMathieu Gandin
 
Les Bases des Méthodes Lean/Agile
Les Bases des Méthodes Lean/AgileLes Bases des Méthodes Lean/Agile
Les Bases des Méthodes Lean/AgileAgileCoach.net
 
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...Pyxis Technologies
 
Développer votre logiciel interne : comment y parvenir sans investir une fort...
Développer votre logiciel interne : comment y parvenir sans investir une fort...Développer votre logiciel interne : comment y parvenir sans investir une fort...
Développer votre logiciel interne : comment y parvenir sans investir une fort...Pyxis Technologies
 
Atelier de réunion équipe 24 06 2013 version 18-06
Atelier de réunion équipe 24 06 2013 version 18-06Atelier de réunion équipe 24 06 2013 version 18-06
Atelier de réunion équipe 24 06 2013 version 18-06Philippe Orange
 
Comment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeurComment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeurGauthier Delamarre
 
Le rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu BoisvertLe rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu BoisvertPyxis Technologies
 
La gestion de portefeuille Agile - c'est pas compliqué!
La gestion de portefeuille Agile - c'est pas compliqué! La gestion de portefeuille Agile - c'est pas compliqué!
La gestion de portefeuille Agile - c'est pas compliqué! Pyxis Technologies
 
Présentation TDD UQAM
Présentation TDD UQAMPrésentation TDD UQAM
Présentation TDD UQAMNicholas Lemay
 
Agilité du point de vue de la gouvernance
Agilité du point de vue de la gouvernanceAgilité du point de vue de la gouvernance
Agilité du point de vue de la gouvernancePyxis Technologies
 
Clean code game - Agile France 2013
Clean code game - Agile France 2013Clean code game - Agile France 2013
Clean code game - Agile France 2013Michel Domenjoud
 
La valeur d’affaires: L’indicateur qui peut changer le succès des projets
La valeur d’affaires: L’indicateur qui peut changer le succès des projetsLa valeur d’affaires: L’indicateur qui peut changer le succès des projets
La valeur d’affaires: L’indicateur qui peut changer le succès des projetsPyxis Technologies
 
Aborder la transition vers l'agilité
Aborder la transition vers l'agilitéAborder la transition vers l'agilité
Aborder la transition vers l'agilitéChristophe Addinquy
 
Mise un oeuvre d'un projet Mobile chez Cetelem en Scrum
Mise un oeuvre d'un projet Mobile chez Cetelem en ScrumMise un oeuvre d'un projet Mobile chez Cetelem en Scrum
Mise un oeuvre d'un projet Mobile chez Cetelem en ScrumCyrille Deruel
 

Tendances (20)

Agilité à budget fixe en phase d'avant-vente. Que proposer ?
Agilité à budget fixe en phase d'avant-vente. Que proposer ?Agilité à budget fixe en phase d'avant-vente. Que proposer ?
Agilité à budget fixe en phase d'avant-vente. Que proposer ?
 
La gestion de projet Agile
La gestion de projet AgileLa gestion de projet Agile
La gestion de projet Agile
 
Formation tableau de bord
Formation tableau de bordFormation tableau de bord
Formation tableau de bord
 
La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...
La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...
La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...
 
Principe d'une organisation agile
Principe d'une organisation agilePrincipe d'une organisation agile
Principe d'une organisation agile
 
La gestion de projet agile
La gestion de projet agileLa gestion de projet agile
La gestion de projet agile
 
Les Bases des Méthodes Lean/Agile
Les Bases des Méthodes Lean/AgileLes Bases des Méthodes Lean/Agile
Les Bases des Méthodes Lean/Agile
 
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
 
Développer votre logiciel interne : comment y parvenir sans investir une fort...
Développer votre logiciel interne : comment y parvenir sans investir une fort...Développer votre logiciel interne : comment y parvenir sans investir une fort...
Développer votre logiciel interne : comment y parvenir sans investir une fort...
 
Atelier de réunion équipe 24 06 2013 version 18-06
Atelier de réunion équipe 24 06 2013 version 18-06Atelier de réunion équipe 24 06 2013 version 18-06
Atelier de réunion équipe 24 06 2013 version 18-06
 
Comment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeurComment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeur
 
Le rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu BoisvertLe rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu Boisvert
 
Startup driven development
Startup driven developmentStartup driven development
Startup driven development
 
La gestion de portefeuille Agile - c'est pas compliqué!
La gestion de portefeuille Agile - c'est pas compliqué! La gestion de portefeuille Agile - c'est pas compliqué!
La gestion de portefeuille Agile - c'est pas compliqué!
 
Présentation TDD UQAM
Présentation TDD UQAMPrésentation TDD UQAM
Présentation TDD UQAM
 
Agilité du point de vue de la gouvernance
Agilité du point de vue de la gouvernanceAgilité du point de vue de la gouvernance
Agilité du point de vue de la gouvernance
 
Clean code game - Agile France 2013
Clean code game - Agile France 2013Clean code game - Agile France 2013
Clean code game - Agile France 2013
 
La valeur d’affaires: L’indicateur qui peut changer le succès des projets
La valeur d’affaires: L’indicateur qui peut changer le succès des projetsLa valeur d’affaires: L’indicateur qui peut changer le succès des projets
La valeur d’affaires: L’indicateur qui peut changer le succès des projets
 
Aborder la transition vers l'agilité
Aborder la transition vers l'agilitéAborder la transition vers l'agilité
Aborder la transition vers l'agilité
 
Mise un oeuvre d'un projet Mobile chez Cetelem en Scrum
Mise un oeuvre d'un projet Mobile chez Cetelem en ScrumMise un oeuvre d'un projet Mobile chez Cetelem en Scrum
Mise un oeuvre d'un projet Mobile chez Cetelem en Scrum
 

En vedette

Laparticipaciondelospadresenlastareasescolaresunretoeducativoactual
LaparticipaciondelospadresenlastareasescolaresunretoeducativoactualLaparticipaciondelospadresenlastareasescolaresunretoeducativoactual
Laparticipaciondelospadresenlastareasescolaresunretoeducativoactualche1o
 
Tema5 101203160809-phpapp01
Tema5 101203160809-phpapp01Tema5 101203160809-phpapp01
Tema5 101203160809-phpapp01Movb Glez
 
Trabajo organizacion final
Trabajo organizacion finalTrabajo organizacion final
Trabajo organizacion finalSusita Jiménez
 
Unit 67 3_d_animation
Unit 67 3_d_animationUnit 67 3_d_animation
Unit 67 3_d_animationDamionVize
 
1 Notiuni De Baza şI Concepte Principale Utilizate In Managementul Serviciilo...
1 Notiuni De Baza şI Concepte Principale Utilizate In Managementul Serviciilo...1 Notiuni De Baza şI Concepte Principale Utilizate In Managementul Serviciilo...
1 Notiuni De Baza şI Concepte Principale Utilizate In Managementul Serviciilo...NiceTimeGo
 
Studie: Beitrag von Ausländern und künftiger Zuwanderung zum deutschen Sozial...
Studie: Beitrag von Ausländern und künftiger Zuwanderung zum deutschen Sozial...Studie: Beitrag von Ausländern und künftiger Zuwanderung zum deutschen Sozial...
Studie: Beitrag von Ausländern und künftiger Zuwanderung zum deutschen Sozial...Bertelsmann Stiftung
 
Resolução nº 2 conselho nacional de educação câmara de educação superior
Resolução nº 2 conselho nacional de educação câmara de educação superiorResolução nº 2 conselho nacional de educação câmara de educação superior
Resolução nº 2 conselho nacional de educação câmara de educação superiorCeli Jandy Moraes Gomes
 
Responsabilidade Social Corporativa, ReputaçãO, ConfiançA E IntençõEs C...
Responsabilidade  Social  Corporativa,  ReputaçãO,  ConfiançA E  IntençõEs  C...Responsabilidade  Social  Corporativa,  ReputaçãO,  ConfiançA E  IntençõEs  C...
Responsabilidade Social Corporativa, ReputaçãO, ConfiançA E IntençõEs C...helviobrito
 
Actividades proyecto de investigacion
Actividades proyecto de investigacionActividades proyecto de investigacion
Actividades proyecto de investigacionMichael Arciniegas
 
Prevencion de drogas psicoactivas
Prevencion de drogas psicoactivasPrevencion de drogas psicoactivas
Prevencion de drogas psicoactivasAlbertoCaicedo
 
FORMAÇÃO CONTINUADA PARA O ENSINO SUPERIOR: ASPECTOS RELEVANTES PARA ATUAÇÃO...
FORMAÇÃO CONTINUADA PARA O ENSINO SUPERIOR:  ASPECTOS RELEVANTES PARA ATUAÇÃO...FORMAÇÃO CONTINUADA PARA O ENSINO SUPERIOR:  ASPECTOS RELEVANTES PARA ATUAÇÃO...
FORMAÇÃO CONTINUADA PARA O ENSINO SUPERIOR: ASPECTOS RELEVANTES PARA ATUAÇÃO...christianceapcursos
 
Radar gesellschaftlicher Zusammenhalt - Publikation
Radar gesellschaftlicher Zusammenhalt - PublikationRadar gesellschaftlicher Zusammenhalt - Publikation
Radar gesellschaftlicher Zusammenhalt - PublikationBertelsmann Stiftung
 
Apresentação Catarse - Financiamento coletivo
Apresentação Catarse - Financiamento coletivoApresentação Catarse - Financiamento coletivo
Apresentação Catarse - Financiamento coletivoLuis Otávio Ribeiro
 
Le récit à l'épreuve de la conversation : projections des auteurs et pratique...
Le récit à l'épreuve de la conversation : projections des auteurs et pratique...Le récit à l'épreuve de la conversation : projections des auteurs et pratique...
Le récit à l'épreuve de la conversation : projections des auteurs et pratique...Julien Falgas
 
Projeto avaliação extensão final
Projeto avaliação  extensão finalProjeto avaliação  extensão final
Projeto avaliação extensão finalGabriel Gnaccarini
 
Métricas de control y efectividad de la innovación
Métricas de control y efectividad de la innovaciónMétricas de control y efectividad de la innovación
Métricas de control y efectividad de la innovaciónClub de Innovación
 

En vedette (20)

Laparticipaciondelospadresenlastareasescolaresunretoeducativoactual
LaparticipaciondelospadresenlastareasescolaresunretoeducativoactualLaparticipaciondelospadresenlastareasescolaresunretoeducativoactual
Laparticipaciondelospadresenlastareasescolaresunretoeducativoactual
 
Tema5 101203160809-phpapp01
Tema5 101203160809-phpapp01Tema5 101203160809-phpapp01
Tema5 101203160809-phpapp01
 
Trabajo organizacion final
Trabajo organizacion finalTrabajo organizacion final
Trabajo organizacion final
 
Unit 67 3_d_animation
Unit 67 3_d_animationUnit 67 3_d_animation
Unit 67 3_d_animation
 
1 Notiuni De Baza şI Concepte Principale Utilizate In Managementul Serviciilo...
1 Notiuni De Baza şI Concepte Principale Utilizate In Managementul Serviciilo...1 Notiuni De Baza şI Concepte Principale Utilizate In Managementul Serviciilo...
1 Notiuni De Baza şI Concepte Principale Utilizate In Managementul Serviciilo...
 
Studie: Beitrag von Ausländern und künftiger Zuwanderung zum deutschen Sozial...
Studie: Beitrag von Ausländern und künftiger Zuwanderung zum deutschen Sozial...Studie: Beitrag von Ausländern und künftiger Zuwanderung zum deutschen Sozial...
Studie: Beitrag von Ausländern und künftiger Zuwanderung zum deutschen Sozial...
 
Resolução nº 2 conselho nacional de educação câmara de educação superior
Resolução nº 2 conselho nacional de educação câmara de educação superiorResolução nº 2 conselho nacional de educação câmara de educação superior
Resolução nº 2 conselho nacional de educação câmara de educação superior
 
Responsabilidade Social Corporativa, ReputaçãO, ConfiançA E IntençõEs C...
Responsabilidade  Social  Corporativa,  ReputaçãO,  ConfiançA E  IntençõEs  C...Responsabilidade  Social  Corporativa,  ReputaçãO,  ConfiançA E  IntençõEs  C...
Responsabilidade Social Corporativa, ReputaçãO, ConfiançA E IntençõEs C...
 
Essencia e Personalidade
Essencia e PersonalidadeEssencia e Personalidade
Essencia e Personalidade
 
Actividades proyecto de investigacion
Actividades proyecto de investigacionActividades proyecto de investigacion
Actividades proyecto de investigacion
 
Estadística
EstadísticaEstadística
Estadística
 
Caminho para jovens
Caminho para jovensCaminho para jovens
Caminho para jovens
 
Prevencion de drogas psicoactivas
Prevencion de drogas psicoactivasPrevencion de drogas psicoactivas
Prevencion de drogas psicoactivas
 
FORMAÇÃO CONTINUADA PARA O ENSINO SUPERIOR: ASPECTOS RELEVANTES PARA ATUAÇÃO...
FORMAÇÃO CONTINUADA PARA O ENSINO SUPERIOR:  ASPECTOS RELEVANTES PARA ATUAÇÃO...FORMAÇÃO CONTINUADA PARA O ENSINO SUPERIOR:  ASPECTOS RELEVANTES PARA ATUAÇÃO...
FORMAÇÃO CONTINUADA PARA O ENSINO SUPERIOR: ASPECTOS RELEVANTES PARA ATUAÇÃO...
 
Ncof 2014-15
Ncof 2014-15Ncof 2014-15
Ncof 2014-15
 
Radar gesellschaftlicher Zusammenhalt - Publikation
Radar gesellschaftlicher Zusammenhalt - PublikationRadar gesellschaftlicher Zusammenhalt - Publikation
Radar gesellschaftlicher Zusammenhalt - Publikation
 
Apresentação Catarse - Financiamento coletivo
Apresentação Catarse - Financiamento coletivoApresentação Catarse - Financiamento coletivo
Apresentação Catarse - Financiamento coletivo
 
Le récit à l'épreuve de la conversation : projections des auteurs et pratique...
Le récit à l'épreuve de la conversation : projections des auteurs et pratique...Le récit à l'épreuve de la conversation : projections des auteurs et pratique...
Le récit à l'épreuve de la conversation : projections des auteurs et pratique...
 
Projeto avaliação extensão final
Projeto avaliação  extensão finalProjeto avaliação  extensão final
Projeto avaliação extensão final
 
Métricas de control y efectividad de la innovación
Métricas de control y efectividad de la innovaciónMétricas de control y efectividad de la innovación
Métricas de control y efectividad de la innovación
 

Similaire à Travailler avec l'existant : ou comment s'en débarrasser - Agile Tour Paris 2014

Introduction à l'agilité ensmse
Introduction à l'agilité   ensmseIntroduction à l'agilité   ensmse
Introduction à l'agilité ensmseagnes_crepet
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationPHPPRO
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012agnes_crepet
 
Agilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeursAgilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeursIppon
 
Le gameday...un concept devopsludique
Le gameday...un concept devopsludiqueLe gameday...un concept devopsludique
Le gameday...un concept devopsludiqueEspritAgile
 
Des jeux et des devops
Des jeux et des devopsDes jeux et des devops
Des jeux et des devopsFrederic Leger
 
Sauver la princesse avec un design sprint MIX-iT17
Sauver la princesse avec un design sprint   MIX-iT17Sauver la princesse avec un design sprint   MIX-iT17
Sauver la princesse avec un design sprint MIX-iT17Benjamin Richy
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011agnes_crepet
 
Trucs et astuces pour débuter sereinement
Trucs et astuces pour débuter sereinementTrucs et astuces pour débuter sereinement
Trucs et astuces pour débuter sereinementLaurence Vagner
 
Accompagner la transition agile d’un grand projet
Accompagner la transition agile d’un grand projetAccompagner la transition agile d’un grand projet
Accompagner la transition agile d’un grand projetChristophe Addinquy
 
2009 scrum&xp
2009 scrum&xp2009 scrum&xp
2009 scrum&xpdecsdeco
 
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...French Scrum User Group
 
Agilité et la gestion du changement mboisvert - 15 octobre 2013
Agilité et la gestion du changement   mboisvert - 15 octobre 2013Agilité et la gestion du changement   mboisvert - 15 octobre 2013
Agilité et la gestion du changement mboisvert - 15 octobre 2013Pyxis Technologies
 
Le combat contre l'atrophie technique - Agile en Seine 2020
Le combat contre l'atrophie technique - Agile en Seine 2020Le combat contre l'atrophie technique - Agile en Seine 2020
Le combat contre l'atrophie technique - Agile en Seine 2020Agile En Seine
 
Apprendre le Craft en 1 mois… HELP! (REX Société Générale) - Agile en Seine 2020
Apprendre le Craft en 1 mois… HELP! (REX Société Générale) - Agile en Seine 2020Apprendre le Craft en 1 mois… HELP! (REX Société Générale) - Agile en Seine 2020
Apprendre le Craft en 1 mois… HELP! (REX Société Générale) - Agile en Seine 2020Agile En Seine
 
Recherche lead technique désespérément
Recherche lead technique désespérémentRecherche lead technique désespérément
Recherche lead technique désespérémentAgile Montréal
 
Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPNicolas Perriault
 
Introduction à l'agilité
Introduction à l'agilitéIntroduction à l'agilité
Introduction à l'agilitéRomain Couturier
 

Similaire à Travailler avec l'existant : ou comment s'en débarrasser - Agile Tour Paris 2014 (20)

Introduction à l'agilité ensmse
Introduction à l'agilité   ensmseIntroduction à l'agilité   ensmse
Introduction à l'agilité ensmse
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012
 
Agilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeursAgilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeurs
 
Le gameday...un concept devopsludique
Le gameday...un concept devopsludiqueLe gameday...un concept devopsludique
Le gameday...un concept devopsludique
 
Des jeux et des devops
Des jeux et des devopsDes jeux et des devops
Des jeux et des devops
 
Sauver la princesse avec un design sprint MIX-iT17
Sauver la princesse avec un design sprint   MIX-iT17Sauver la princesse avec un design sprint   MIX-iT17
Sauver la princesse avec un design sprint MIX-iT17
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011
 
Trucs et astuces pour débuter sereinement
Trucs et astuces pour débuter sereinementTrucs et astuces pour débuter sereinement
Trucs et astuces pour débuter sereinement
 
Accompagner la transition agile d’un grand projet
Accompagner la transition agile d’un grand projetAccompagner la transition agile d’un grand projet
Accompagner la transition agile d’un grand projet
 
Initiation Scrum
Initiation ScrumInitiation Scrum
Initiation Scrum
 
2009 scrum&xp
2009 scrum&xp2009 scrum&xp
2009 scrum&xp
 
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...
 
Agilité et la gestion du changement mboisvert - 15 octobre 2013
Agilité et la gestion du changement   mboisvert - 15 octobre 2013Agilité et la gestion du changement   mboisvert - 15 octobre 2013
Agilité et la gestion du changement mboisvert - 15 octobre 2013
 
Le combat contre l'atrophie technique - Agile en Seine 2020
Le combat contre l'atrophie technique - Agile en Seine 2020Le combat contre l'atrophie technique - Agile en Seine 2020
Le combat contre l'atrophie technique - Agile en Seine 2020
 
Apprendre le Craft en 1 mois… HELP! (REX Société Générale) - Agile en Seine 2020
Apprendre le Craft en 1 mois… HELP! (REX Société Générale) - Agile en Seine 2020Apprendre le Craft en 1 mois… HELP! (REX Société Générale) - Agile en Seine 2020
Apprendre le Craft en 1 mois… HELP! (REX Société Générale) - Agile en Seine 2020
 
Recherche lead technique désespérément
Recherche lead technique désespérémentRecherche lead technique désespérément
Recherche lead technique désespérément
 
Et si on jouait au tdd 20131017
Et si on jouait au tdd 20131017Et si on jouait au tdd 20131017
Et si on jouait au tdd 20131017
 
Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XP
 
Introduction à l'agilité
Introduction à l'agilitéIntroduction à l'agilité
Introduction à l'agilité
 

Travailler avec l'existant : ou comment s'en débarrasser - Agile Tour Paris 2014

  • 1. Agile Tour Paris 2014 Travailler avec l'existant : ou comment s'en débarrasser www.agileparis.org www.twitter.com/AgileTourParis www.facebook.com/AgileParis team@agileparis.org Meetup.com/AgileParis
  • 2. Travailler avec l'existant : ou comment s'en débarrasser Les problèmes qui présentent l'existant, comment les confronter et les contourner et éventuellement s'en débarrasser Sam Cranford – Upwiser @nostradamnit me@nostradamnit.com delicious.com/nostradamnit
  • 3. Qui suis-je ? ● Développeur entreprise depuis 15 ans ● Agiliste depuis plus de 10 ans ● Très (trop) expérimenté en travaillant avec l'existant ● noter: presentation en fr_US
  • 4. Un peu d'histoire Eugène Ionesco
  • 5. Bon, c'est qui? ● Dramaturge Français ● Créateur accidentel du Théâtre de l'absurde
  • 6. Amédée ou comment s'en débarrasser ● Pièce absurde en 3 actes ● Quelque chose encombre l'avancement ● La crise causé par l'encombrant ● La libération de l'encombrant
  • 7. Ok, c'est quoi le rapport ? ● L'absurde – un décalage entre l'attente de l'homme et l'expérience qu'il fait du monde ● L'existant – un projet en cours, en production qui gagne de l'argent un décalage entre le but d'un projet et son déroulement actuel
  • 8. L'absurde existe Un peu trop souvent dans les équipes de dev...
  • 9. Présentation en 3 actes Le cycle de vie d'un projet informatique ● On commence avec des bonnes idées et les bonne intentions ● On prend des décisions douteux et s'y accroche ● On décide finalement de corriger ses erreurs
  • 10. Acte 1 Pourquoi on n'avance plus / pas assez vite? ● L'existant dans ces diverses incarnations – Le code – L’équipe – L’état d'esprit – Les connaissances
  • 11. On existe ● Un produit existant ● Une équipe existante ● Des clients existants ● Des problèmes existants ● L'existant, quoi ?!?
  • 13. Le code (coté serveur) public class BlahFormatter : ICanHaz { public string BlahFromUrl() { var context = Config.GetGlobalConfig("blahContext"); String url = HttpContext.Current.Request.Url; var mehConverter = new MehConvertor(context); var blah = BlahFactory.getFreshBlah(url); var meh = mehConvertor.convert(blah); return meh.toString(); } }
  • 14. Le code (cote client) e = "" function toggleElm(cls) { for (i = 0; i < document.all.length; i++) { if (document.all[i].className == cls) { e = document.all[i] } } }
  • 15. Le code (build) HAI 1.2 CAN HAZ STDIO? I HAZ A FILE_NAME ITZ 'build.environment' I HAZ A SERVR ITS noob PLZ OPEN FILE FILE_NAME? AWSUM THX SERVR R FILE O NOES INVISIBLE "WFT ERRER?" SERVR, WTF? OMG "PROD" I IZ BUILD_PROD GTFO OMG "TEST" I IZ BUILD_TEST GTFO OMGWTF I IZ BUILD_DEV OIC KTHXBYE
  • 17. L’équipe existante Pas toujours ouverte au changement
  • 18. Bozo bit Je ne parle pas aux cons, ça les instruit http://c2.com/cgi/wiki?SetTheBozoBit
  • 20.
  • 21.
  • 22. Les problèmes existants ● Le produit n'est pas stable ● Il manque des fonctionnalités ● Le temps d’évolution est trop long ● L’équipe n'est pas stable / formée / motivée ● La direction met la pression, sans direction ● Le code n'est pas très structuré
  • 24. Il suffit de l'implémenter Un dev à la direction : “On peut commencer des pratiques agiles ?”
  • 25. Acte 2 Ca n'avance plus
  • 26. Comment est-on arrivé là ? Cercle vicieux des manques : – De temps – De connaissances – D'organisation – D’évolution – De tests – De passion
  • 27. Temps ● Comme on n'est pas nombreux, on a beaucoup à faire et beaucoup de retard ● Et donc on travaille à l'arrache !
  • 28. Connaissances ● Comme on est en retard, on n'a pas le temps de faire de la veille technologique ● Comme le travail actuel nous frustre, on n'a pas envie de continuer
  • 30. Evolution ● Les clients en demandent ● La direction aussi
  • 31. Tests
  • 32. Passion ● Travailler dans des conditions pareilles est très fatigant, ça sape le moral ● Une équipe démotivée crée des produits sans passion ● Ce manque de passion se voit dans le résultat
  • 33. Acte 3 Il faut que ça change
  • 34. Comment évaluer l'existant ? ● La structure ● La technique ● L'humain ● L'attitude ● La possibilité de changer
  • 35. Structure ● Postulat : vous n’êtes pas là pour changer l’équipe ● Donc il faut trouver les moyens d'injecter des bonnes pratiques sans trop déranger
  • 36. Technique ● Vous êtes là pour faire avancer le projet ● Vous êtes expert dans votre domaine ● Exigez du professionnalisme, soyez l’ingénieur que vous êtes
  • 38. SOLID ● Principe de Separation de responsabiltés ● Principe d'Ouvert / Fermé ● Principe de substitution de Liskov ● Principe de ségrégation d'Interface ● L'inversion de Dépendance
  • 39. Humain ● Est-ce que les collègues veulent changer ? ● Est-ce que les devs sont traités avec respect ? ● Les collègues sont-ils honnêtes dans leurs interactions ? ● Les chefs s'imposent-ils des échéances irréalisables ?
  • 40. Attitude ● L'ambiance est-elle bonne ? ● Est-ce que les problèmes sont la faute des autres ?
  • 41. Le test de Joël 1.Utilisez-vous un système de gestion de version ? 2.Pouvez-vous effectuer une compilation en une seule étape ? 3.Faites-vous des compilations journalières? 4.Avez-vous un logiciel de suivi de problèmes ? … ( il y a 12 questions )
  • 42. Comment s'en sortir ? ● Tests ● Restructuration ● Organisation ● Réduction de dette technique ● Maîtrise de l'environnement ● Formation ● Méthodologie
  • 43. Tests
  • 44. Restructuration du code ● Ajouter et/ou réorganiser le projet pour qu'il soit compréhensible et cohérent ● Enlever le code mort, les fonctionnalités non-nécessaires, tout ce qui encombre le code Credits - http://www.qwan.eu/en
  • 45. Organisation ● N'oubliez pas le but final, ● Faire de la thune ● Euh, de créer de la valeur
  • 47. Dette technique ● Ne pas la cacher, partager la douleur ● L'isoler ● Préparer pour l'injection de dépendances ● Rendre le code testable → découplage
  • 49. Le code (côté serveur) public class BlahFormatter : ICanHaz { public string BlahFromUrl() { var context = Config.GetGlobalConfig("blahContext"); String url = HttpContext.Current.Request.Url; var mehConverter = new MehConvertor(context); var blah = BlahFactory.getFreshBlah(url); var meh = mehConvertor.convert(blah); return meh.toString(); } }
  • 50. Le code (côté serveur) public class BlahFormatter : ICanHaz { public string BlahFromUrl(string Url, IConvertor convertor) { var blah = BlahFactory.getFreshBlah(url); var meh = mehConvertor.convert(blah); return meh; } }
  • 51. Le code (côté client) e = "" function toggleElm(cls) { for (i = 0; i < document.all.length; i++) { if (document.all[i].className == cls) { e = document.all[i] } } }
  • 52. Le code (côté client) var selectedElements; function toggleElm(cls) { selectedElements = document.getElementsByClassname(cls); }
  • 53. Environnement ● Insister sur les outils suffisants, au minimum ● Machines performantes ● Environnement de développement isolé ● Automatisation des builds et des tests ● Éviter les espaces ouverts généralisés
  • 54. Formation ● Créer / inculquer une culture d’apprentissage ● Proposer des ateliers aux pauses déjeuner (dojos, découvertes techniques, discussions) ● Discuter avec l’équipe de la technique ● Jeux sérieux –> tastycupcakes.org
  • 56. Focaliser sur l'important ● Un logiciel stable et maintenable ● Des clients contents et collaboratifs ● Un quotidien épanouissant ● De l'excellence technique ● Du bonheur, quoi ?
  • 57. Honnête ● Exposer les fraudes ● Insister sur des échéances justes ● Ne pas vous laisser écraser
  • 58. Humilité ● Savoir reconnaître ses fautes, ses erreurs “L'humilité n'est pas de penser moins à soi-même, mais penser moins de soi-même” C. S. Lewis
  • 59. Résumé ● Cliquez ici pour ajouter un résumé Les 16 C s ● Courage ● Compassion ● Collaboration ● Capacité ● Communauté ● Cohérence ● Compréhension ● Conclusif ● Coordination ● Correct ● Confort ● Composé ● Créatif ● Convaincant ● Convivial ● Clair
  • 60. C’est pas la taille de l’épée qui compte, c’est l’agilité du mousquetaire
  • 61. Un peu de lecture
  • 63. Merci ! ● Aux organisateurs de l'Agile Tour Paris ● Aux participants ! ● A Upwiser et tous mes anciens et futurs collaborateurs ● A tous les agilistes ● A Okiwi.org et les agilistes de Bordeaux
  • 64. License Cette présentation est sous les licenses ● Beerware ● WTFPL
  • 65. Merci à nos sponsors Prestige Platinum Gold

Notes de l'éditeur

  1. Memphis → Montpellier → Marseille → Marmande
  2. Qui connaît cet homme ?
  3. Il raconte qu&amp;apos;il a eu une experience apres lequel tout lui semblait terne, … pourri, corrompu, unes series de taches repetitive sans interet
  4. Dev a l&amp;apos;arache Big design upfront Brassage del&amp;apos;equipe
  5. Tell a story here
  6. Probablement pas le v1, mais le v2 ou v3 Parce qu&amp;apos;on l&amp;apos;a déjà réécrit Il y a toujours pas de tests, du moins comprehensive et automatise Complexe, jamais simple Il y a neamoins des clients qui l&amp;apos;utisent Tous les jours Et qui en dependent
  7. Des brave gens, pas assez nombreux Souvent quelques membres de l’équipe d’origine D’expérience variable, certains n&amp;apos;ayant travaille que sur ce projet Structure hiérarchique – au moins un meneur ou héro
  8. Jim McCarthy Dynamics of Software Development 1995 Software for Your Head 2002 – intro to Core Protocols
  9. Vous etes qu&amp;apos;un seul des ses problemes Il a a peine le temps pour exprimer ses besoins Ses clients lui mettent beaucoup de pression,il vous le partage
  10. C&amp;apos;est le cumule du produit bancale, l’équipe mal-organise et surmenée, les clients frustres et demandeur, la direction frustre et confuse sur comment faire avancer C&amp;apos;est le manque de structure et bons pratiques Le manque de l’agilité !
  11. Find image of encombrement
  12. Question ouverte : qui a déjà travaille avec un dev qui ouvertement s&amp;apos;en foutait de son travail. « mec, je fais ça parce que c&amp;apos;est le diplôme que j&amp;apos;ai. » « je code pas après le boulot »
  13. Vu l’état des lieux, on a à peine assez de temps pour corriger des bugs, on n&amp;apos;a surtout pas de temps pour s&amp;apos;organiser mieux La direction veut ajouter plus de contrôle, qui nous prend d&amp;apos;autant plus de temps
  14. L’équipe aussi Personne sait comment changer Ou au moins, prend les choses en mains pour les faire changer
  15. Comme on code toujours dans l&amp;apos;urgence, on n&amp;apos;a pas de temps pour faire des tests Donc on augmente la liste de bugs
  16. 35 heures, c&amp;apos;est deja trop
  17. Corrigez-vous les bugs avant d&amp;apos;écrire de nouvelles fonctionnalités ? Avez-vous un planning de développement à jour ? Avez-vous des spécifications fonctionnelles ? (« spec ») Les programmeurs ont-ils un environnement de travail calme (facilités à la concentration, etc.) ? Utilisez-vous les meilleurs outils qu&amp;apos;on puisse acheter ? (le matériel, notamment) Avez-vous des testeurs ? Les candidats doivent-ils écrire du code pendant leur entretien d&amp;apos;embauche ? Faites-vous des tests utilisateur complet ? Joel Spolsky compare son test au processus d&amp;apos;évaluation SEMA créé par l&amp;apos;unversité Carnegie Mellon et affirme que là où SEMA a besoin de plusieurs mois d&amp;apos;implémentation, le Joel Test permet une évaluation immédiate de la qualité d&amp;apos;une équipe de développement. Toutefois, il précise que son test n&amp;apos;a qu&amp;apos;une valeur indicative et qu&amp;apos;il ne devrait pas être utilisé pour évaluer les équipes de développement produisant les logiciels utilisés pour piloter une centrale nucléaire.
  18. Ifnd an image of a tunnel Or a compass
  19. Validation de l&amp;apos;existant « Je ne crois que ce que je vois » Du vert en occurance ! Si on sait pas ce qu&amp;apos;on a cassé, comment on peut être sur ?
  20. Quand on voit pas la sortie, on peut oublier cet aspet
  21. Chacun travaille dans son domaine d&amp;apos;expertise
  22. 2 definitions : 1. recourcis fait expres Gros switch case deguelasee au lieu de sous-classes 2. incompetance – code degeu parce qu&amp;apos;on s&amp;apos;en fout, sait pas faire mieux (stagiares)
  23. Le meilleur moyon de s&amp;apos;assurer d&amp;apos;un code de qualite Attaque le code pas la personne Nul n&amp;apos;est parfait
  24. Passer les dependances Eviter les classes statiques
  25. Eviter les globaux (var) Eviter les globaux tres commun (e) Eviter les boucles couteux
  26. Story about long compiles
  27. Insister sur des formations (si on demande pas, on nous les propose pas)
  28. Agile bien sur ! XP, parfait pour petites equipes Scrum, pour une ou plusieurs equipes Kanban, peut-etre mieux adapter à l&amp;apos;existant Quelque chose qui suit les principes agile