1. Mise en place d'un projet agile
Laurent Deséchalliers
27 Octobre 2010
2. Plan
• Présentation Laurent Deséchalliers
• Pourquoi développer un logiciel ?
• Maquette, Logiciel et Produit
• Relation Client/Équipe de dév.
• Production et usine logicielle
3. But de cette conférence
Retour d'expérience sur mise en place d'un
projet selon l'esprit agile
structure naissante et de petite taille
• Pas une conférence sur les différentes
méthodologies agiles
4. Pourquoi les méthodologies agiles
• Constat sur les projets logiciels « classiques »
o Projets échouent
o Planning dérapent
o Logiciels livrés sont inadaptés
➔
Trouver une méthode corrigeant ces problèmes
5. Pourquoi les méthodologies agiles
ButStopper le
« tir au canon »
Stopper le
« tir au canon »
Éviter le
« but idéalisé »
Ne pas dépenser
une énergie folle
Management
Technique
6. Pourquoi les méthodologies agiles
• Les valeurs du manifeste agile
o L’interaction avec les personnes
• plutôt que les processus et les outils.
o Un produit opérationnel
• plutôt qu’une documentation pléthorique.
o La collaboration avec le client
• plutôt que la négociation de contrat.
o La réactivité face au changement
• plutôt que le suivi d'un plan.
7. Pourquoi les méthodologies agiles
• Les valeurs du manifeste agile
o Répondre aux besoins (changeants) du client en
produisant - en continu - un logiciel de qualité.
• Adapté aux :
o Start-up
o Produits innovants
o Concurrence forte
9. Laurent Deséchalliers
• Mise en place, en partant de zéro
o méthodologies (agiles)
o Infrastructure hardware/logiciel de dev.
• Forge, Poste travail, réseau...
o recrutement équipe
➔
Vision, dès leur naissance, de toutes les étapes
de projets
11. Maquette, Logiciel, Produit
• Logiciel : lourdeur synchro ressources pour
livrable..
o Forge : Build, repo,TAG svn, chanlog...
o Test : Build, recette...
o MAJ Doc. : tech, commercial, mkt, site web, dossier
presse...
o MAJ : Packaging, logo, codes barres...
o ...
12. Maquette, Logiciel, Produit
• Logiciel pas forcément adapté aux
démonstrations commerciales
o Lourdeur initialisation
• Configuration par défaut
o Lourdeur remise à zéro
• Remise à zéro en quelques secondes
o Lourdeur infrastructure
• Serveur, AP wifi, routeur, SGBD
• Lourdeur synchro ressources pour livrable...
13. Maquette, Logiciel, Produit
• Pensez une démo (maquette, adaptation du
logiciel) dès le départ
o Ré-initialisable vite et simplement
o Transportable (laptop) simplement
o Gérant plusieurs configurations (clients)
• Machines virtuelles par exemple
14. Maquette, Logiciel, Produit
• Cycle logiciel/maquette
Logiciel
Logiciel Maquette
N
N+1
N+2
FeedBack
- Interne
- prospects
D
é
m
o
C
o
n
t
i
n
u
e
15. Maquette, Logiciel, Produit
• Produit
o Logiciel
• War java
• ServeurWeb Java
• Database
• ...
o Infra
• Serveur
• APWifi
• Câbles à gogo
• ...
16. Maquette, Logiciel, Produit
• Maquette
o Full JavaScript
o DataBase : fichier Json
o Multi-configuration client
• Opposé du logiciel
o « Resetable » à volonté
o Juste l'appareil
18. Relation Client/Équipe de dév
• La guerre/isolation management/tekos
o Réalité dans de nombreuses entreprises
o Communiquer en permanence
o S'opposer à la « politique des tranchées » :
• Chacun dans son coin
o A l'opposé, s'opposer aux réunions « marathon » qui
ne servent à rien
o
19. Relation Client/Équipe de dév
• La guerre/isolation management/tekos
o Réunion tous les matins pour les techniques
o Ce que j'ai fais hier
o Les problèmes rencontrés
o Ce que je vais faire aujourd'hui
• Début journée,
• Heure fixe,
• Pas plus de 10 minutes
20. Relation Client/Équipe de dév
Source : http://runningagile.files.wordpress.com/2008/01/scrum_board.jpg?w=500
21. Relation Client/Équipe de dév
• La guerre/isolation management/tekos
o Réunion toute les semaines
techniques/management
o Avancement des techniques
o Question du management aux techniques pour les
livrables futurs
• Management reste à disposition des techniques, à tout
moment, pour questions sur le développement actuel
• Le management n'interrompt pas les techniques à
longueur de journée
o réunion hebdomadaire
22. Relation Client/Équipe de dév
• La guerre/isolation management/tekos
o Réunion à chaque livrable (2 4 semaines)→
• Présentation du livrable par technique
• Véritable test du livrable par management
o Validation
• Clôture
o Départ nouveau livrable
23. Relation Client/Équipe de dév
• Les spécifications
o L'équipe de développement ne peut « deviner » les
besoins du client
o Le client doit spécifier ses besoins
• Éviter les incompréhensions
24. Relation Client/Équipe de dév
• Les spécifications
o Le management
• « Je sais pas faire de cahier des charges »
• « Je suis pas spécialiste du logiciel »
o L'équipe technique
• « Je ne connais pas le métier du client »
• « Je peux pas me substituer au client pour les choix
métiers »
25. Relation Client/Équipe de dév
• Les spécifications
o Trouver une méthodologie
• Souple mais formelle
• Rapide
• Ne figeant pas les spécifications dans le marbre
• Conciliant management et technique
26. Relation Client/Équipe de dév
• Les spécifications
o MockUp
• Rapide
• « Accessible » au
management
• Convivial
o Technique ET
management
(Image source OctoTechnologie)
28. Relation Client/Équipe de dév
• Les spécifications
o Scénarii
• Description avec des :
o Mots : Si/alors/oui/non/OK:KO...
o Puces indentées
Très « wikisable »
29. Relation Client/Équipe de dév
• Les spécifications
o Scénarii
• Management oublie souvent (pour un scénario)
o Les cas KO
o Les acteurs « non vendeur »
Pensent au Front office car ce qu'ils « vendent »→
Oublient BackOffice
Solution passer tous les acteurs sur un scénario→
31. Production et usine logicielle
• Pourquoi une forge ?
• Quelle forge minimaliste ?
• Le poste de travail
• Comment gérer la montée en puissance ?
32. Production et usine logicielle
• Pourquoi une forge ?
o Démultiplier sa productivité (et sa qualité) par le biais
d'outils
o Penser son métier au lieu de le subir
➔
Agilité : penser son métier et non le subir
➔
Outil est un démultiplicateur
33. Production et usine logicielle
• Quelle forge minimaliste ?
o Bugtrack
• Un logiciel possède forcément des bugs
• évite de prendre de mauvaises habitudes
• presque impossible à imposer si on habitue le
management au report à l'arrache et sans rigueur
• L'agilité, c'est aussi une certaine rigueur
34. Production et usine logicielle
• Quelle forge minimaliste ?
o Gestionnaire de version
• Mémoire » de l'évolution du logiciel
• Mémoire des livrable
• Test de régression aisée
• ....
➔
L'outil indispensable pour un projet (agile ou non)
35. Production et usine logicielle
• Quelle forge minimaliste ?
o Wiki
• Souplesse de documentation
o Système « rugueux »
Evite le « blabla »
Se concentre sur l'essence du besoin
• Traçabilité totale sans effort
• Moteur de recherche intégré
• Suivi, sans efforts, des évolutions des documents
36. Production et usine logicielle
• Quelle forge minimaliste ?
o Outil de déploiement
• Tester en permanence en environnement de pré-prod
• Gain de temps
o Projet actuel
Déploiement automatisé : 22 sec
Déploiement manuel : 10 minutes + fatigue intellectuelle +
erreur possible
37. Production et usine logicielle
• Le poste de travail
« Do you use the best tools
money can buy? »
Joel on software test
38. Production et usine logicielle
• Le poste de
travail
• Outil de
productivité
et de qualité
39. Production et usine logicielle
• Le poste de travail
o Investir temps dans le poste de travail
• Parfois avec des outils très simples
o Gain productivité / aisance au travail immédiat
40. Production et usine logicielle
• Le poste de travail
o Investir temps dans le poste de travail
PC dev
Forge
(repo)
Apliance
(cible)
Pilotage
Reporting
42. Conclusion
• Commencer son projet avec des bases solides
• Penser son projet comme un produit à vendre
• Faire communiquer management et techniques
• Aimer son métier et faire preuve de courage