Wikimedia Engineering Productivity Team/Book club

The Release Engineering Team would like to have a semi-regular "book club" to read and discuss interesting books and/or other long-form writings.

Currently Reading

 * TBD

Already Read

 * Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble and David Farley
 * Notes
 * Software Testing Anti-Patterns
 * Notes

Books

 * The Phoenix Project - a novel
 * DevOps Handbook
 * Scrum and XP from the Trenches
 * Lean from the trenches
 * Getting Things Done: The Art of Stress-Free Productivity by David Allen
 * The Getting Things Done (GTD) system as explained by its inventor. Not about software. Learning GTD might be one of the most useful things you've learned.
 * The Healthy Programmer: Get Fit, Feel Better, and Keep Coding by Joe Kutner
 * Marketed towards programmers but useful for office workers in general. We will need our bodies working fine long after we're retired. The book explains how to stay healthy (long term) even when your job includes sitting for many hours a day.
 * The Kubernetes Book
 * Hands-on introduction to K8s. Could do with some copy-editing.
 * OWASP and their security recommendations and lists of common security problems
 * Threat Modeling: Designing for Security
 * Being prepared for security threats, systematically.
 * Mastering The Requirements Process: Getting Requirements Right
 * Peopleware: productive projects and teams by Tom DeMarco, Timothy Lister
 * One of the classic books on managing software development projects.
 * The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks
 * The classic book on software and computer system development, and management of said development.
 * Systemantics / The Systems Bible by John Gall
 * "A complex system that works is invariably found to have evolved from a simple system that worked."
 * Unix: A History and a Memoir by Brian Kernighan
 * This is just out, so I haven't read it yet, but Kernighan was a participant in the history and the (co)author of work like The Unix Programming Environment and The C Programming Language.
 * New Dark Age: Technology and the End of the Future
 * What I can only imagine is a feel-good read about technology.
 * The internet/technology is built on metaphors to create models of the real world. All models are wrong, some are useful. If what the internet and technology has become is not useful we have an excess of information for modeling that can paradoxically make the world harder to comprehend—fun for everyone!

Articles/Essays

 * The Cathedral and the Bazaar
 * We should probably also read something that critiques this
 * Free Software Needs Free Tools
 * Video of a talk on the subject from 2018
 * How to do a code review
 * Google's internal code review guidelines
 * Our software dependency problem by Russ Cox
 * Software reuse is finally here, and it's creating problems (see also NPM, go get, pip, bundler, etc)
 * Against Software Development
 * Work on something that matters, if only to you
 * Things you should never do by Joel Spolsky
 * Never rewrite software
 * Bugs & Priority
 * Developing a shared understanding of priorities of tasks
 * Reflections on Trusting Trust by Ken Thompson
 * Turing award lecture that can be summarized as you can't trust Ken Thompson anyone :)

Videos
(Which are not books)


 * GitHub Actions - Now with built-in CI/CD! Live from GitHub HQ
 * Github actions: the coming standard I imagine for CI/CD
 * What nobody tells you about documentation by Daniele Procida
 * A.K.A., the 4 kinds of documentation: Tutorials, How-to, explanation, and reference