Blog

Alexander Bird Software • Blog

Notes to myself
About

Reading List

Books I've found helpful or want to read soon

Before you get into it: I've sorted these to make them easier to browse, but I'm not totally satisfied with the categories — they don't do the books justice. So, take the headings with a grain of salt.

Software Structure

Books about how to structure your software
Building Evolutionary Architectures
Ford, Parsons, & Kua
How to build software that maintains its virtues as it grows and changes
Book
Domain-Driven Design
Tackling Complexity in the Heart of Software
Evans
How to architect software to make that solves real problems and can be adapted easily to solve new problems (by making it easy to collaborate with non-technical domain experts).
Book
Refactoring
Improving the Design of Existing Code
Fowler
Detailed instructions and examples about how to change code without breaking it.
Book
Design Patterns
Elements of Reusable Object-Oriented Software
Gamma, Helm, Johnson, & Vlissides
An inventory of ways to structure your code to solve certain technical problems (including examples and notes on when to prefer one over the other)
Book

Process & People

Books about software development process and how we collaborate
Software Design X-Rays
Fix Technical Debt with Behavioral Code Analysis
Tornhill
Uncovering coupling, pain-points, technical debt, who has what expertise, team boundaries, and many other useful things using your git repository, git commands, and bash.
Book
Lean Thinking
Banish Waste and Create Wealth in Your Corporation
Womack & Jones
How to focus on the useful things and remove the useless things so you can deliver more value more effectively. Many case studies.
Book
Rework
Fried & Hansson
Advice about professional attitudes and values that lead to healthy and effective software development
Book
The Practice of Creativity
A Manual for Dynamic Group Problem-Solving
Prince
How to run a really effective brainstorming session
Book

Web UI

Don’t Make Me Think!
A Common Sense Approach to Web Usability
Krug
Book
Defensive Design for the Web
How to improve error messages, help, forms, and other crisis points
37signals
Book

Want to Read

User Story Mapping
Discover the whole story, build the right product
Patton
Book
Working Effectively with Legacy Code
Feathers
Book
Extreme Programming Explained
Embrace Change
Beck & Andres
Book
An Elegant Puzzle
Systems of Engineering Management
Larson
Book