Lectures et publications de référence#

Cette page rassemble les livres, articles et publications importants qui sont mentionnés à travers l’ensemble du cours. Chaque entrée pointe vers la ou les sections où elle est discutée.

(Cette page sera enrichie au fur et à mesure que de nouvelles références seront intégrées dans le cours.)

Livres#

  • Gerald Weinberg, The Psychology of Computer Programming (1971) : approche psychologique du développement logiciel, introduction de l’egoless programmingModule 2, Introduction, Module 2, L’intégration continue, Module 4, Scrum
  • Fred Brooks, The Mythical Man-Month (1975) : réflexions sur la gestion de grands projets logiciels, dont la célèbre « loi de Brooks » → Module 1, Perspective historique, Module 6, L’économie du logiciel
  • Andrew Hunt et David Thomas, The Pragmatic Programmer (1999) : conseils pratiques pour le développeur, origine du principe DRY → Module 3, Architecture et modularité
  • Kent Beck, Extreme Programming Explained (1999) : manifeste de l’XP, origine de YAGNI et du TDD → Module 1, Perspective historique
  • Robert C. Martin, Agile Software Development: Principles, Patterns, and Practices (2003) : formalisation des principes SOLID, acronyme suggéré par Michael Feathers → Module 3, Architecture et modularité
  • Robert C. Martin, Clean Code (2008) : principes de conception et de lisibilité du code → Module 3, Architecture et modularité
  • Mike Cohn, Succeeding with Agile (2009) : la pyramide des tests → Module 2, Les tests
  • David Anderson, Kanban: Successful Evolutionary Change for Your Technology Business (2010) : formalisation de la méthode Kanban pour le développement logiciel → Module 4, Kanban
  • Gang of Four (Gamma, Helm, Johnson, Vlissides), Design Patterns (1994) : catalogue fondateur des patrons de conception → Module 1, Perspective historique, Module 3, Architecture et modularité
  • Martin Kleppmann, Designing Data-Intensive Applications (2017) : référence moderne sur les systèmes de données → Module 3, Les données
  • Martin Fowler, Refactoring: Improving the Design of Existing Code (1999) : formalisation du refactoring comme discipline, mécanisme de remboursement de la dette technique → Module 4, Gestion de projet
  • Ryan Singer, Shape Up (2019) : méthodologie de développement de Basecamp, approche asynchrone et “pitches” écrits → Module 4, Gestion de projet
  • Matthew Skelton et Manuel Pais, Team Topologies (2019) : taxonomie des structures d’équipe et de leurs effets sur l’architecture logicielle, manœuvre de Conway inverse → Module 4, Gestion de projet
  • Gene Kim, Kevin Behr et George Spafford, The Phoenix Project (2013) : roman fondateur du mouvement DevOps, parallèle entre lean manufacturing et livraison logicielle → Module 5, Introduction
  • Gene Kim, Jez Humble, Patrick Debois et John Willis, The DevOps Handbook (2016) : formalisation des trois voies de DevOps (flow, feedback, apprentissage continu) → Module 5, Introduction
  • Google (Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy), Site Reliability Engineering (2016) : formalisation des pratiques SRE, error budgets, on-call, postmortems → Module 5, Que faire quand ça casse ?
  • Sidney Dekker, The Field Guide to Understanding Human Error (2006) : approche systémique des erreurs humaines, fondement de la culture « just culture » et des postmortems blameless → Module 5, Que faire quand ça casse ?
  • Reid Hoffman, Blitzscaling (2018) : formalisation de la stratégie de croissance rapide des startups technologiques, tension entre vitesse et qualité → Module 6, L’économie du logiciel
  • Michael Feathers, Working Effectively with Legacy Code (2004) : définition du legacy code comme code sans tests, techniques pour travailler sur du code existant → Module 6, Le métier de développeur

Essais et manifestes#

Articles et essais#