Prévenez la dette technique de vos projets

JoliCode - Bastien Jaillot – PHP Tour 2014 @Lyon

Prévenez la dette technique de vos projets

Des anecdotes, des astuces qui changent la vie pour se sortir des situations délicates

Bastien Jaillot – @bastnic

Bastien Jaillot

Je suis fainéant pragmatique ಠ_ಠ

JoliCode

Conseil, réalisation, audit, expertise et formation

...Poney, Guinness et gif animé.

Profession : pompier du code

Pour ces prochaines 40mn…

  1. Dette technique : DAFUQ ?
  2. Prévention
  3. Résolution
  4. Conclusion pour les gentils poneys
  5. Go Licornes !

Dette technique ?

Version Wikipedia

Quand on code au plus vite et de manière non optimale, on contracte une dette technique que l'on rembourse tout au long de la vie du projet sous forme de temps de développement de plus en plus long et de bugs de plus en plus fréquents.

Wikipedia — "Dette technique"

Traduction

La dette technique est un emprunt sur la qualité. Elle est donc utile car elle permet de faire avancer le projet plus vite à court terme
Elle devient problématique quand le coût de développement d'une fonctionnalité devient supérieur à ce qu'elle peut rapporter

… et que ça gonfle tous les développeurs

Bastien J., maintenant

Version Fainéant™

Mix entre la somme des fonctionnalités qui n'auraient jamais du voir le jour et la sédimentation naturelle du code…
+ les boulets.

Bastien J., maintenant

La dette est inévitable

Au quotidien ?

Dette développeur 1/4

C'est quoi un test ?

Dette développeur 2/4

Les tests c'est pour ceux qui ne savent pas coder
Les tests c'est pour ceux qui écrivent des bugs

Dette développeur 3/4

On a tout bien fait, mais là on est obligé de prendre un raccourci pour respecter XX condition

Dette développeur 4/4

Le projet est en PHP, mais maintenant je ne fais plus que du [Python|JS|Go]

Impacts ?

Prévention

1. Trop de fonctionnalités

2. Prise de décisions ?

Une relation client sympa qui vire au cauchemar, ça arrive. Une relation client de merde qui vire à l’idylle, jamais. Fuyez, dès le début..

Christophe Andrieu – STPO

Notion d'intermédiaire

On ne peut pas se permettre de… <un truc moisi>

… dit un intermédiaire, sur un faux besoin et retarde donc le projet.

On a vite fait de ne penser qu'à ses intérêts

#nobullshit

3. Stimuler les intervenants

4. Gestion du temps

Frustration vs projet qui avance ?

Prévoir la mise en ligne bien avant la fin de la collaboration / contrat

L’amertume de la mauvaise qualité reste longtemps après que la douceur du bas prix est oublié

Benjamin Franklin

5. Gestion du code

<Lire la conférence de François Zaninotto>

Php 100k from Francois Zaninotto

There are only two types of code, code that delivers business value, and code that doesn’t. The cleanest code that doesn’t deliver value is still crap

— Anthony Ferrara in Beyond Clean Code

Théorie de la fenêtre brisée

Le mieux est l'ennemi du bien

les développeurs sont des créatifs, attention à l'égo

6. Surqualité

Caricature : intégration continue, compass, grunt… pour une landing page

Résolution

Tout projet informatique sérieux doit commencer par un dénigrement systématique du travail effectué par les développeurs précédents


-- Tous les développeurs, un jour, y compris envers soi-même

L'ennemi de la dette technique, c'est le pragmatisme.

Crédits