Here are some notes on a few books I enjoyed and learned from in 2018, not all of which are books published that year.
The Rust Programming Language, Carol Nichols, Steve Klabnik (also online at https://doc.rust-lang.org/book). If you’re looking to learn or explore Rust, this is the book to start with. The book works through the language feature area by feature area, with minimally sized code snippets - the focus is on explanation through the text instead of reams of code. Instead, much of the technical content that the authors use for teaching purposes are compiler error messages, which cleverly leverages one of the language’s best features, and one programmers will spend a lot of time with in practice (Rust has quite clear compiler messages). Overall the content is well laid out with minimal forward references. There’s a lot of emphasis given to memory management concepts: ownership, borrowing, and lifecycles, as these are the most novel aspects relative to other languages. The sections on testing, generics/traits, pattern matching, and object oriented programming, are particularly strong. I would have liked to have seen function pointers covered earlier in the initial section on functional language features, and extended coverage on references, but these are minor enough, and what’s there is enough to get the gist. Every now and then you come across a software book that’s enjoyable for its own sake, The Rust Programming Language is one of those books - not just an excellent introductory book on Rust but an exemplar of technical writing.
Team of Teams: New Rules of Engagement for a Complex World, Stanley McChrystal. Here’s a claim - the hardest problem facing business organisations today is internal collaboration - you see this everywhere, from alignment and program management in enterprises, to operating models in SMEs, to principles and culture codes in startups. Team of Teams advances the state of the art and discussion on collaboration, and is the best ‘business book’ I’ve read in some time. The book talks a lot about devolved ownership, autonomy and flattening to enable speed in complex situations. In modern business these are almost cliches, but implicit in Team of Teams is a focus on accountability and decision making within a fast learning loop. The descriptions of the O&I (Operations and Intelligence), a long, remote daily meeting involving a huge number of people designed to get through a lot of stuff quickly were fascinating (“Eventually we had 7,000 people attending almost daily for up to two hours.”) - from my software engineering point of view they sounded more like incident rooms than traditional meetings. The use of liaisons reporting up to a high level to improve communications and build trust across organisational boundaries was also interesting. It’s no blueprint, but overall there’s plenty of interesting and counter-intuitive concepts to chew on. A follow up book, One Mission, goes into more detail on liaison and the idea of decision spaces as a rubber band for autonomous teams.
Accelerate, Nicole Forsgren. Accelerate is a well-written, well-researched work on the makeup of high performance software teams, and what such performance might mean for an organisation. By deciding to focus on performance over productivity, and outcomes over output, the authors dodge an industry quagmire on productivity measurement and instead, identify a set of characteristics for performance - lead time, deployment frequency, mttr, and change fail percentage . What sets it apart from anything else I've read is the claim that strong teams are not trading off on traditional dimensions like speed versus stability, instead drawing the conclusion that high performing teams improve along all dimensions. The book provides a basis for application thanks to the definitions of performance dimensions being concrete enough for teams and managers to apply. It also provides hooks into areas like Design & Lean (via Reinertsen), and organisational culture (via Westrum). Given we have little by the way of evidential support for software development practices and that effective software development is critical for many businesses, we should be delighted when someone actually attempts to gather empirical data. With that in mind, the only negative in the book was an overly circumspect foreword by Martin Fowler. Accelerate is the most important software methodology book in recent years, and one that deserves to become highly influential amongst practitioners.
Prediction Machines: The Simple Economics of Artificial Intelligence, Ajay Agrawal, Joshua Gans, Avi Goldfarb. If I had to recommend only one popular book on AI and machine learning, Prediction Machines is that book. The book’s focus is on the second order effects of machine learning, which the authors frame as - what might things look like when machine learning makes predictions cheap and abundant? This framing allows them to take a different, more grounded direction on the implications of AI than other recent popular books such as Superintelligence and The Master Algorithm. There’s good awareness of details given they’re not AI practitioners: for example they make a distinction between a prediction (a score) and a decision (a threshold), a nuance often lost in popular commentary, and one that matters in real world applications of machine learning and AI. I’ll confess I’m predisposed to like the book’s premise having worked on technical initiatives to simply serve predictions backed (sometimes) by machine learning instead of AI as an end in itself. As a result I found it easy to agree it makes more sense to look at success problems and externalities of abundant machine learning, rather than speculate on the nature of machine intelligence. The book only really weakens when the authors extrapolate on what could be viable to predict without factoring in the possible investments. From an economic standpoint this risks underestimating both the R&D costs to underwrite future advancements in machine learning and sunk cost to date (it’s taken decades to make modern supervised, especially deep, learning viable for applications). Still, a minor distraction from the best popular take on AI to date.
High Growth Handbook, Elad Gil. A good read for founders, and I think especially for engineers and product managers working in, or thinking about working in, early and mid-stage startups for the insight it gives to all the other functions needed to make a business actually work. The specific advice on growing startups is hugely informative, but much of the value is the insight it gives into the mindset of those who are growing or have grown startups, and how they think about operations. This is because the book is based around interviews, rather than case studies, such that you can draw your own conclusions from singular examples versus the generalisation you see in many business books (a useful comparison with High Growth Handbook in terms of style is with Blitzscaling, to the extent` they are worth reading side by side). One amusing aspect was the repeated emphasis on hard metrics and KPIs for the business itself, except, at the board management level, where it's about personalities and feelings 😀 As someone who's worked as an engineer and a product manager, it was nice to read a book that focused on growing the other critical functions needed to build out a business - many startups begin from product/engineering foundations and may risk over-indexing on those disciplines for too long.
Factfulness: Ten Reasons We're Wrong About the World—and Why Things Are Better Than You Think, Hans Rosling, Ola Rosling, Anna Rosling Rönnlund. The claim of the book is that on a number of important scales, humanity’s lot is getting better, in some cases remarkably so, even thought we may feel and observe the opposite despite facts and data. The book does a great job at outlining the state of the world, its trends, and why it’s hard for us to see due to various instinctual biases and structural issues with media. The part I learned most from was the deconstruction of developing and developed world along a spectrum of four levels (“The Gap Instinct”) and the tendency to hurry up to stand still (“The Urgency Instinct”). The multiple-choice-you -won’t-believe-this-one-weird-fact approach does grow long in the tooth, it’s even admitted about half way in - “By now I hope you have worked out that the safest thing to do in this book is to pick the most positive answer”. Regardless the Roslings succeed in reminding us in an age with the world’s information (literally) at our fingertips, and truth becoming a function of reach, that we in fact don’t know as much as we think we do. The lack of condescension from the authors about our aggregate ignorance is a remarkable meta-lesson (a useful contrast to Factfulness is The Book of Why, which spared no effort in pointing out the failures of others). It’s refreshing to read a book that’s globally optimistic and locally realistic, without being naive or Panglossian - lots done and lots more to do is a reasonable summary. This is one of those books you could own just on principle and one I’m likely to buy copies of to give away.
Leonardo da Vinci, Walter Issacson. I confess, I nearly didn’t read this book. After reading Issacson’s Benjamin Franklin biography and struggling with its constant apologia for Franklin’s behaviour, I felt like passing. But this is a great book, a warm and engaging read on a mythical figure not many of us know much if anything about as a person. Isaacson spends a lot of time describing da Vinci’s insatiable curiosity about pretty much everything and attributing that to his genius. It’s clear Isaacson loved his subject and his work, he paints da Vinci as mercurial but human, using da Vinci’s notebooks to drive a lot of the book’s content. Rather than a linear history or a narrow focus on him as an artist and inventor of contraptions, there’s plenty given over to da Vinci’s scientific and anatomical observations, reflecting his disposition as a polymath and the definitive Renaissance man. Of all the books here, this is one worth getting in hardback.
NOS4A2, Joe Hill. Joe Hill has described this book as his "senior thesis on horror" and in it we learn he's one of the predominant horror authors of his generation, and beyond that, a fine writer. There's a lot going on in this big book: parallel worlds, parent/child relationships, deconstruction of Christmas, addiction, a road trip, serial crime, a league of unlikely heroes, a haunted house (or car). Given that, it could have been 700 pages or so of shambling chaos, instead we get a well-formed and well-informed story that's an unsettling rather than horrific dissembling of horror tropes (and to a small extent, Americana). While it will get compared to his father’s (Stephen King) longer works from the 70s and 80s due to some sampling and references that Hill has talked about elsewhere, it’s better structured, paced and written than any epic King put out in that period - only The Shining really holds up to NOS4A2. It feels more than anything like a world built around the idea of Pleasure Island (or the Land of Toys) from Pinocchio than a homage. If you’re not already a horror fan it’s maybe not the best entry to the genre, but if you are, well worth it.
Macbeth, William Shakespeare. I first read this for my leaving certificate way back in the late 80s and was blown away. I re-read it every now and then and it remains every bit as powerful each time. It starts with one of the great openings of any play or novel, a foreshadowing like no other, and from there never lets you go. It's a relentless descent into darkness starting with Duncan’s regicide and peaking with the murder of Macduff's family, an act of savagery and desperation rarely surpassed in English literature, all the more remarkable for being written in or around 1606. If Shakespeare's early English is a struggle, you can pick up a fun graphic novel that helps drives the story (there’s even a version rewritten in modern English). In an age that rewards ambition above so much else, and one marked by a tyranny of action, Macbeth arguably has more to tell us today about the human condition than the better regarded but introspective Hamlet. Hamlet in fairness is at least trying to work it all out, whereas Macbeth is forever blaming circumstance for being a monster, fundamental attribution error writ as rhyme and meter. Probably my favourite play and one I’ll never stop coming back to.
previous years: 2017.