L’exergue du livre donne le ton.
We build our computer systems the way we build our cities: over time, without a plan, on top of ruins.
Au début j’étais dubitatif en lisant le résumé sur l’histoire d’UNIX/Linux et sur celle des langages de programmation, mais c’était une façon d’introduire des concepts. Ensuite, le livre prend de l’ampleur. Marianne Bellotti nous fait partager son expérience concernant la modernisation des systèmes, elle a beaucoup travaillé sur ces applications que l’on nomme legacy – une appellation à double sens. Elle parait énoncer pas mal de généralités qui sont du bon sens, mais elle a raison, parfois le bon sens ne s’applique pas à l’informatique.
Technology doesn’t need to be beautiful or to impress other people to be effective, and all technologists are ultimately in the business of producing effective technology.
Elle souligne des points que j’ai pu observer à de nombreuses reprises comme la propension des ingénieurs à tomber dans l’over-engineering toujours pour de mauvaises raisons, comme prévoir des cas qui n’existent pas et n’existeront jamais, simplement pour la beauté du geste ou parfois pour ne pas s’attaquer au vrais problèmes, ce que l’on appelle yak shaving.
Engineers tend to overestimate the value of order and neatness.
Elle défend des points de vue qui pourraient paraître contre-intuitifs comme les monolithes à l’époque du micro-service roi et le piège de la réécriture d’un système qui a été reprise maintes fois dans la littérature et qui porte le nom de Second system syndrome, mais qui prend tout sons sens dans le cadre de ce type de projets.
We are swapping a system that works and needs to be adjusted for an expensive and difficult migration to something unproven.
La clé du livre est certainement de consacrer suffisamment de temps pour que les systèmes évoluent en continue et qu’ils ne reçoivent jamais la qualification de legacy.
In the end, technology is never finished being built. The legacy modernization projects of today were the finished systems of yesterday.
Enfin il ne faut pas oublier que ce n’est pas un travail ingrat, bien au contraire, si des investissements sont consentis pour moderniser un système c’est qu’il a prouvé sa valeur et que le travail effectué pour le moderniser aura forcément, lui-aussi, de la valeur. Elle nous invite donc à remettre en cause notre vision de ce type de projet à arrêter de penser que ce qui est important est toujours la nouveauté, le hype. Au final, une semaine après la lecture, je me suis retrouvé à énoncer certains des arguments du livre dans le cadre de mon travail, c’est bien ce que l’on attend de ce type de lectures.
[…] but the reality is systems that are not used get turned off. Working on legacy systems means working on some of the most critical systems that exist […]
Bellotti, Marianne. Kill It with Fire: Manage Aging Computer Systems. No Starch Press, 2021.