De beste boeken over software ontwikkeling die ik in 2021 las
Net als vorig jaar heb ik dit jaar weer vele fantastische boeken over softwareontwikkeling tot me mogen nemen. Bij dezen een overzicht van mijn vijf favorieten, en vijf eervolle vermeldingen.
Top 5
1. Vladimir Khorikov - Unit Testing: Principles, Patterns, and Practices
De beste boeken over softwareontwikkeling laten je met een nieuwe blik naar je code kijken. Ze inspireren je om direct met de opgedane kennis aan de slag te gaan: er mag geen dag voorbij gaan zonder dat je deze nieuwe inzichten in de praktijk brengt! Clean Code is zo’n boek.
En Unit Testing valt in diezelfde categorie. Het boek biedt fantastische achtergronden rond debatten over de aard van unit testing. Maar belangrijker nog: Khorikovs scoring van code op een schaal van unittestbaarheid (ik blogde er hier over) zit stevig in mijn vingers verankerd.
2. Titus Winters, Tom Manshreck & Hyrum Wright (eds.) - Software Engineering at Google: Lessons Learned from Programming Over Time
Leuk weetje: Building Secure & Reliable Systems: Best Practices for Designing, Implementing and Maintaining Systems, de tegenhanger van dit boek met een focus op site reliability engineering (SRE), was één van de redenen waarom ik deze blog begonnen ben. De essays in dat boek stonden zo bomvol met inzicht en informatie, dat ik dacht: dit moet ik opschrijven, anders onthoud ik het nooit. Helaas is er van dat opschrijven nooit echt veel meer terechtgekomen.
Het is een geluk dat ik Software Engineering at Google las toen dotkarl al live was, want dit boek is minstens zo informatief en sluit nog beter aan op mijn werk ook. De fantastische essays in deze bundel behandelen alles van het creëren van een veilig leerklimaat en de waarde van documentatie, tot het schrijven van goede tests en het reviewen van code. Software Engineering at Google is een must voor elke ontwikkelaar die niet bang is zijn vak in de volle breedte te overzien. Als je iets leert, leer het dan van de beste.
3. Tom Greever - Articulating Design Decisions (Second Edition): Communicate with Stakeholders, Keep Your Sanity, and Deliver the Best User Experience
Ook Tom Greever deed me anders naar mijn softwareontwikkelpraktijk kijken. Hij maakte me veel meer bewust van de manier waarop ik me tot mijn stakeholders verhoud. Sterker nog, hij opende me de ogen voor het feit dat ik me überhaupt - bewust - op een bepaalde manier tot hen kan verhouden. (Ik blogde er hier over.)
Door het boek te structureren rondom die belangrijke vergadering biedt Articulating Design Decisions niet alleen een strak geordende verzameling levensreddende tips, de boel leest ook nog eens als een thriller. De focus op grafisch design hoeft niemand af te schikken: Greevers advies is universeel voor iedereen die met stakeholders om moet gaan, en al helemaal als deze een mening hebben.
4. Maude Lemaire - Refactoring at Scale: Regaining Control of Your Codebase
Ik begon aan dit boek met het idee technische kennis op te doen over het aanpakken van grootschalige refactorslagen - en de aanname dat zulke kennis bestaat. De uiteindelijke inhoud van Refactoring at Scale verraste me dan ook positief. Ik las het boek in vijf dagen uit.
Het is een boek dat veeleer inzoomt op de politieke kanten van het plannen en uitvoeren van een grote refactorslag. En dat is maar goed ook, want die invalshoek is vele malen interessanter dan het is eigenlijk hetzelfde als kleine refactorslagen, maar dan heel veel.
5. Andrew Hoffman - Web Application Security: Exploitation and Countermeasures for Modern Web Applications
De beveiliging van je applicatie valt onmogelijk achteraf nog in te bouwen. Een applicatie is zo veilig als de zwaktste schakel in haar keten, en dat betekent dat dit een overweging is die in elke stap van het ontwikkelproces moet worden meegenomen.
Hoffmans boek is niet alleen van waarde omdat deze ontwikkelaars wijst op de meest voorkomende gaten in de beveliging van webapplicaties - dat komt pas in het derde deel. In de eerste twee delen toont de schrijver hoe hackers de zwakke plekken in je applicatie proberen te achterhalen. De les is belangrijk: pas als je weet hoe een hacker denkt, kun je deze effectief de pas afsnijden.
Eervolle vermeldingen
De volgende boeken verdienen een eervolle vermelding:
- Heather Adkins, Betsy Beyer, Paul Blankinship, Ana Oprea, Piotr Lewandowski & Adam Stubblefield (eds.) - Building Secure & Reliable Systems: Best Practices for Designing, Implementing and Maintaining Systems
- Martin Fowler - Refactoring (Second Edition): Improving the Design of Existing Code [blog]
- Len Bass, Paul Clements & Rick Kazman - Software Architecture in Practice (Fourth Edition) [blog]
- Robert C. Martin - Clean Agile (Nederlandse editie): Terug naar de basis [recensie]
- Jim Kalbach - Mapping Experiences (Second Edition): A Complete Guid to Customer Alignment Through Journeys, Blueprints & Diagrams
Welke goeie boeken over softwareontwikkeling heb jij dit jaar gelezen?