DevTools > Valuable Books
There are several resources I've found invaluable while building tools over the years: this is a perenially incomplete snapshot that describes some of them.
For Inspiration
No list about building tools is complete without Douglas Engelbart's The Mother of All Demos (youtube). We have a long way to go.
Watch Inventing on Principle by Bret Vector for something more recent before you sit down to build something.
On Visualization
Good visualizations can make a tool; unreadable ones filled with chart junk can break it. Good visualizations are your first line of defense to simplify complex domains with a lot of data.
Edward Tufte's Visual Display of Quantitative Information is my favorite of all the books I've read on visualization. It's also an astonishing compendium of beautiful visualizations built by people over centuries.
On Usability
The Design of Everyday Things by Don Norman is excellent for building intuition around making usable tools with affordance. You want to develop tools that push people into a pit of success; read this book to learn from examples.
On Metrics
Douglas W. Hubbard's How to Measure Anything is an excellent way to figure out how to measure progress – and particularly figuring out how much you're willing to spend to get that measurement.
At the same time, I enjoyed this talk by Fred Kofman that identifies the pros and cons of locally vs. globally valuable metrics – and informs why I prefer to goal on global metrics.
It's also valuable to recognize the limitations of measuring software productivity. I found it enlightening to look through Making Software: What Really Works to understand how hard it is to measure productivity and how much care any attempts to do so require. I've only skimmed this book, but I wasn't particularly encouraged about the feasibility of measuring engineering productivity well.
On Building Software
Fred Brook's The Mythical Man-Month is one of my favorite books in this space; this book introduced me to the concept of a "Toolsmith" – and surgical software teams with different skill sets.
On Identifying Opportunities
Richard Hamming's The Art of Doing Science & Engineering is an excellent book for building good habits: choosing to work on something important, keeping up to date, and working towards the future.
Tools are generally introduced into a specific context and might not interact with the environment in the way you expect them to. Thinking in Systems by Donella Meadows is an excellent way to start thinking about how different systems might interact; Systemantics is a somewhat cynical-yet-accurate description of why your tools will almost certainly never work out the way you expect.
Comments
Add your comments to this Twitter thread, or drop me an email.
10/ https://t.co/BDAbrA79mF
— Kunal Bhalla (@kunalbhalla) June 24, 2021
An (incomplete) collection of resources I've found useful while building tools.
This includes usual suspects like @EdwardTufte & @worrydream, but also books on thinking with systems and metrics on software engineering.