5. Petitrappelsurlemanifesteagile
Les individus et leurs interactions
Plus que les processus et les outils
Des logiciels opérationnels
Plus qu’une documentation exhaustive
La collaboration avec les clients
Plus que la négociation contractuelle
L’adaptation au changement
Plus que le suivi d’un plan
8. Agilehangover
“On est passé en mode agile, mais notre produit
est toujours aussi difficile à maintenir.”
“Je pensais que ça allait résoudre tous nos
problèmes.”
“On nous a menti ! L’agilité, ça ne marche pas !”
12. SoftwareCraftsmanshipManifesto
En tant qu’aspirants Artisans du Logiciel, nous relevons le niveau du développement
professionnel de logiciels par la pratique et en aidant les autres à acquérir le
savoir-faire. Grâce à ce travail, nous avons appris à apprécier :
Pas seulement des logiciels opérationnels
Mais aussi des logiciels bien conçus
Pas seulement l’adaptation au changement
Mais aussi l’ajout constant de la valeur
Pas seulement les individus et leurs interactions
Mais aussi une communauté de professionnels
Pas seulement la collaboration avec les clients
Mais aussi des partenariats productifs
13. L’artisanat?
“L'artisanat est la production de produits ou
services grâce à un savoir-faire particulier et
hors contexte industriel : l'artisan assure en
général tous les stades de sa production, de
transformation, de réparation ou de prestation de
services, et leur commercialisation”
Wikipédia
Approche du développemnt qui met l’accent sur les compétences des développeurs. C’est une réponse aux maux récurrents de l’industrie du logiciel, comme la priorisation des préoccupations financières vis à vis de la responsabilité du développeur.
Mouvement inspiré des concepts développés dans le livre “Pragmatic Programmer” (1999)
En 1992 déjà, Jack Reeves suggérait que le dévelopepment de logiciel était plus un art qu’une discipline d’ingénierie
Le software craftsmanship est né en 2008 lorsque Uncle Bob a proposé une 5ème valeur au manifeste agile “L’artisanat plutôt que l’exécution”
2001
Travail toujours le même, quelle que soit la méthode :
On essaie de faire avec la dette technique toujours plus grande
Le but est de satisfaire le client avec toujours plus de fonctionnalités, au détriment de la maintenabilité du code
Professionnel “normal” :
De l'intérêt sans passion pour son travail
Pas/peu de veille technologique
Pas d'investissement dans l'amélioration de ses conditions de travail
Par contre, adopte les bonnes pratiques qu'on lui propose
Plaisir à bien faire, à maîtriser son travail
Artisan :
Chercher les pratiques
Qui vous réussissent
Qui vous différencient de la norme
Code élégant et efficace (Bjarne Stroustrup, inventeur du c++)
Simple & direct (grady booch)
Peut être lu et amélioré par un dev différent de celui à l’origine du code. Il a des tests unitaires et d’acceptance. Le nommage est significatif (dave thomas)
Il semble avoir été écrit par quelqu’un qui s’en soucie (michael feathers)
Vous savez que vous travailler avec du code propre quand chaque méthode que vous lisez est exactement celle à laquelle vous vous attendiez. Vous pouvez l’appeler “beau code” quand le code vous laisse paraître que le langage a été fait pour résoudre le problème (ward cunningham)
=> Clean code is
Facilement accessible aux autres (direct, clair, avec de bonnes abstractions, pas de surprise, bien nommé)
Est fait pour le vrai monde (a une bonne stratégie de gestion des erreurs)
L’auteur se soucie clairement du logiciel et des autres développeurs
Est minimal (fait une seule chose et a le moins de dépendances possible)
Est bon dans ce qu’il fait
Partage des pratiques
Club de lecture
Bown Bag Lunch
User groups
Conférences
Mise en application des pratiques
Entraînement (nouvelle pratique, nouvelle techno)
Faites semblant jusqu'à le faire vraiment :
Une connaissance (une nouvelle techno)
Une attitude (ex TDD, parler dans une conf)
Appliquez cette connaissance avec la bonne attitude
Syndrome de l’imposteur
Plantez-vous, corrigez et recommencez !
Former les jeunes développeurs aux bonnes pratiques.
Elles ne sont pas innées et nécessitent des années de pratique
=> Garder les bons développeurs (ne pas les forcer à passer chef de projet) et les faire encadrer les jeunes (pair-prog, revue de code…)