Friday 19 July 2019

Four Years of Reading Stuff

Before Summer 2015

In the last 4 or 5 years that I worked for a startup I fell out of love with technology and learning in general. This was mainly because I came to hate my job. I saw it as a means to paying the mortgage and nothing more. There are many reasons why I got to that state of mind which I won't go into here. A big side effect of this state of mind was that I read virtually no non-fiction books. Looking back on that period of my life, this is the only time that I let myself get into a state of mind where I wasn't acquiring new knowledge.

I would have to ask for the smallest sums of money for a book that I may think I need. It would only get approved grudgingly and definitely only if it was seen to be directly relevant to something that we were doing to earn the company money. General learning and improvement was allegedly encouraged but in reality it was strictly in your own time. I remember even having to take a day off work to go to a training day to learn about a technology that we were trying to roll out.

Starting a New Life

So when I started as a consultant the genuine culture of learning that I found was fantastic. In my first few days in the job, sitting on the beach (other consultants call it the bench) talking to random people, it felt like I learnt more than I'd learnt in the previous 5 years put together. I was told that I had a budget to use for training and if I wanted to buy a book to read, provided it could be liked to any kind of learning that I wanted to undertake, it was fine. As far as I know, nobody ever really audited what books you bought. The result of that was that nobody abused the system, everybody bought stuff they wanted to learn about and virtually all learning was considered valuable to our work as consultants. So I started to read again and I haven't stopped yet. 

Many new starters and graduates asked me for book recommendations and from time to time I produced a list of everything I had bought and read (or sometimes given up on) during my time. I always found it good fun to go through my list of purchases on Amazon and give a one line review of that book. I updated my list from time to time and provided it to anybody that asked. Unfortunately I forgot to export that list when I left ThoughtWorks so I decided to write it up here to share with anybody who might be interested.

Four Years of Reading (or not)

Here is a list of all the books I bought in my first four years working as a consultant in a true learning culture...

The Innovators Dilemma

The Innovator's Dilemma is a business classic. It explains how seemingly established and well run companies can be very quickly put out of business by not being nimble enough to react to innovations in their business space. It has detailed case studies of the mechanical digger industry in the middle part of the 20th century and the hard disk industry from the second half of the 20th century as well as some examples of specific companies. Corporate failures following the innovator's dilemma pattern, and therefore validating the theory, since this book was originally written in the 1997 include Kodak and Blockbuster Video. This book is a must read for everybody interested in how modern businesses should deal with innovation in their industries.

The Whitehall Effect

The Whitehall Effect is a study of how public sector industries the world over fail to deliver value to the tax payers they serve. There are many reasons why this can happen but the patterns of failure are repeated all over the world with depressing regularity. This book is a must read for anybody who may be planning on consulting into the public sector.

Creating and Delivering Your Value Proposition: Managing Customer Experience for Profit

I bought this book just before I was due to start work on my first big gig at ThoughtWorks. In particular I wanted to understand a bit more about what outcomes we might be driving towards in the inception. It was a good easy read with some high level concepts about what a value proposition is and how to help shape it. 

Release it! Michael T Nygard

This book is a MUST read for all software developers. It is easy to read with some great (slightly dramatised) descriptions of real incidents that happened to the author to kick off each chapter. This is essential reading to get a feel for what it means to be production ready and what it means to embrace a devops culture.

The Hacker Playbook

A massive disappointment. I wanted a book to give me some pointers on app sec concepts and this sounded like it would. In fact, when I tried to read it (I had to give up halfway through) it felt like it had good messages but that it had been edited by two blokes in a pub at the end of an all day session. Avoid this one.

The Innovator's Solution

The follow up to the Innovator's Dilemma, first published in 2003. This describes how the author worked with some massive companies after the publication of the first book and helped them avoid falling foul of the innovator's dilemma. If you read the dilemma, you should read the solution.

The Evolution of Useful Things

This one was a fun read. I saw it on Amazon marketplace for 1p and it sounded interesting. If you're interested in product design, try and find a copy (I think it may be out of print).

AWS Scripted

This is an early book about writing infrastructure as code specifically around the AWS SDKs. I'm not sure if it would still be in print but I'd say it is obsolete now anyway.

The Linux Command Line

I bought this one because I wanted to learn Linux. I worked through some of the early chapters when I was on holiday one time but never managed to finish it. It was pretty easy to read but actual work got in the way of me finishing it. If you want to learn about the Linux Command Line from beginner level it is OK.

The Chimp Paradox

This is a pretty famous book about psychology written by Steve Peters who has worked with many elite sports teams and individuals. If you're interested in why we do seemingly irrational stuff at times and possibly how to attempt to control your own irrationality, this is a very good and very readable book.

Difficult Conversations

This is a good book about how to approach difficult conversations. I found this hugely useful as a consultant and for advice on how to tackle difficult conversations with friends and family.

The New One Minute Manager

Very easy to read, very quick to read (I read it in a single short plane journey) short description of how to be a non-micro-managing, non overbearing manager. If I remember rightly the message I took from it was that managers should not be managers so much as facilitators and advisers.

Clojure for the Brave and True

I wanted to learn Clojure and this was recommended to me. It is a good learning tool with nice exercises and some humour (which eventually grates a bit) thrown in. It does make a good effort at explaining the philosophy of Clojure rather than just the nuts and bolts of do this, do that. If you are want to learn Clojure I would recommend it. There is an online version of this book that is available free although, from memory, there are reminders throughout that they would like you to buy the actual book.

Land of Lisp

I bough Land of Lisp at the same time as the Clojure book but I never got round to reading it.

Drive by Professor Daniel Pink

This book is a must read. Pink spent a lot of time investigating what motivates us to work. His conclusions were counter intuitive and controversial at the time. As a consultant reading this book made me realise that I had to understand people's motivations, hopes and fears in order to understand how better to help the organisation move forward. I realised that it isn't enough to put process in place, you have to link that thing that you are asking people to do to what motivates them to work. I thoroughly recommend this book to any consultant that has designs on being an influencer rather than just an implementor.

Javascript - The Good Parts

This one was recommended to me as a good book for learning Javascript but I've never got round to reading it.

The Pragmatic Programmer

This is a classic which, until I was going through my Amazon purchases writing this, I didn't realise I had. Thus, I haven't read it.

The Mythical Man Month

Another classic which contains some proto-Agile thinking and some explanations why traditional project management thinking doesn't work with software delivery. It is amazing that such "traditional" methodologies still exist. Everybody working in software delivery should read this.

Also the source of a classic Twitter gag that loads of people have recycled and repurposed down the years. No idea if the one I've linked to is the original or not. It was just high up the list when I Googled it.

Continuous Delivery

This is Jez Humble's manual on how to do continuous delivery. I would hope that for experienced engineers that this serves as a reference book on how to do things right. For consultants trying to get our clients to a better place this book is a useful thing to have lying around at the client site to encourage people in the right direction. For any grads or apprentices who are great at writing software but lack experience on how to execute software delivery this is an absolute must read.

Working Effectively with Legacy Code

This is a must read for anybody working on a project that is based around legacy integrations or any organisation that has tons of legacy. The definition of legacy is interesting. Feathers tells us that legacy is anything without tests, the age of the technology is irrelevant. Basically this book is great and everybody should read it.

The Elements of Computing Systems

This was recommended by a colleague when we were in the pub once discussing hardware architectures. As I write this I realise I bought the Kindle edition but it somehow isn't on my Kindle. I just downloaded it and discovered I've read the first chapter only. Must do better...

The Phoenix Project

This is a famous Agile Parable. I had actually read this several years earlier when somebody bought it for me for my birthday. I include this in this list because I bought a number of copies to hand out to the client developers at the place I was working after a talk I was giving on Agile principals. If you haven't read this, you should. It is a description of an Agile Transformation squashed into an unfeasibly short time frame to help the narrative of the story. Read with a pinch of salt on the timeframes but not on the lessons contained.

The Goal

Eli Goldratt's famous novella explaining the Theory of Constraints. Similar to the Phoenix Project in style (although published much earlier), it can be regarded as a parable of Lean manufacturing. It is very easy to read and has many valuable lessons about why we do things the way we do in Agile delivery.

It's Not Luck

The sequel to the Goal follows the same character as he is promoted and takes on responsibility for whole companies in the group rather than the single plant he had at the end of The Goal. There are valuable lessons in here on how to approach problems and how to reason towards solutions. The Socratic method is mentioned as a reasoning framework.

Conversations of Socrates

I wanted to read this because of references to it in the Goldratt books. I have only read the start of it and I found it hard to read because the test was too small. I have just rebought it on Kindle so that I can properly read it.

Toyota Production System

This is, straight from the horse's mouth, the description of how the TPS, which underpins much of modern Agile and Lean theory, came about and continued to evolve. It is a fairly short book and everybody needs to read it.

Socrates' Defence

This is a translation of Plato's (he was a disciple of Socrates) version of his time with Socrates. I bought this in paperback around the time that I was discovering that I can no longer comfortably read "real" books. I've just rebought on Kindle...

Socrates' Way

This is a bit more of a practical guide on how to apply the Socratic method. I did read some of this but then I couldn't find the book to continue.

Theory of Constraints

This is a more formalised, academic, treatment of the theory of constraints. I haven't read beyond the early chapters yet.

Godel, Escher, Bach: An Eternal Golden Braid

This is a great book by Douglas Hofstadter, the King of meta. I have read extracts from this from other sources and seen conference talks, including this one from my ex colleague Chris Ford, inspired by this thinking. Sadly the text in the edition I have is so small that it can only be read by ants using binoculars. I have thus utterly failed to read beyond the introduction of this one.

Presentation Patterns

I bought this because I was doing a lot of presentations for conferences and wanted to know if I was missing anything, doing stuff wrong or right. If you want some pointers on how to create and give presentations this is a good place to start. I recommend it.

Clean Code by Uncle Bob

If you haven't read this, you should. Simple as that.

The First 90 Days

Another one that was recommended to me that I bought in paperback before realising I can't read them anymore. 

Computing With Quantum Cats

This is the first book I bought on Quantum Computing when I was learning about it last year. It is easy to read and informative. I thoroughly recommend it.

Minds, Machines and the Multiverse

Another quantum computing book. This has a bit more practical detail on quantum computers. I used this as my reference point when I was working with a ThoughtWorks grad in Manchester on implementing Shor's Algorithm and the Quantum Fourier Transform. It is a good book for sure.

In Search of Schrodinger's Cat

From the same author, John Gribben, as Computing with Quantum Cats, this one is an explanation of the history of quantum physics. If you are serious about learning about quantum computers I suggest this as your starting point (before the above two). I eventually bought this when I realised that I needed a grounding in quantum mechanics in order to attempt to better understand quantum computing. Very readable and I thoroughly recommend it.

Accelerate

This book is great and pretty easy and quick to read. This is from the people who give us the State of Devops report and can be considered as an invaluable reference for transformation type work. The ThoughtWorks Tech Radar now has the 4 key metrics on it in Adopt, meaning that they believe that everybody should be using them. On the last ThoughtWorks gig I was involved in we were pushing for the client to start using the 4 key metrics as their only measures of progress and we were using the 24 capabilities outlined in the last chapter of the book as our tools for moving the needles on the 4 key metrics. This book is essential for any IT professional.

The Garden of Forking Paths

Not really a technology (or business) book. This is a collection of short stories translated from the original Spanish. I bought this because one of my quantum computing books recommended it as a thought provoking idea to help with reasoning with the Many Worlds Interpretation. It only cost £1 so why not?

Mathematics for Quantum Mechanics

I bought this one when I was first attempting to write a quantum simulator and therefore needed to understand the maths better. It is hard going, the typeface is scratchy (it is quite old) and hard to read and the material is dull without enough contextual explanation. Avoid it, read the next one instead.

Quantum Mechanics, the Theoretical Minimum

I bought this at the same time as the one above. It does a much better job. Still pretty hard going with some fairly advanced maths but much more readable.

The Beginning of Infinity by David Deutsch

I bought this expecting a book on quantum physics or quantum computing. Instead I got a brilliant thought provoking book about philosophy, epistemology and various other things into the bargain. It also helped me to form my theory of studying organisations through organisational memes (after I had also read the Selfish Gene). I'm not sure if it is directly relevant to our work as consultants but I thoroughly recommend it as a book.

The Fabric of Reality

The much more famous book by David Deutsch. If you are interested in BIG subjects then this is a great read. Again, not much in here directly relevant to our work but certainly worth reading.

Enterprise Agility

This is written by one of my ex colleagues at ThoughtWorks. It is a great reference on why organisational agility matters, why we shouldn't be happy to just consider Agile as a methodology to help with software delivery and what it means to be agile (small 'a') in the modern business. I read this when I was first doing my talk Agile is a Dirty Word and most of the content was highly resonant to me as a consultant mainly working in transformational roles. I guess that shouldn't have been much of a surprise given the author was a colleague.

Bullshit Jobs: a Theory

I have long believed that organisations invent jobs to keep people employed. Large organisations evolve teams that add no value but have a sense of self preservation and survival. This book was recommended to me by somebody in a pub once when we were discussing this issue. It is easy to read and contains quite a bit of ironic humour that is right up my personal street. If you are interested in understanding where organisational dysfunction comes from, I recommend this one.

Evolutionary Architecture

Written by three of my ThoughtWorks ex colleagues, this book is a must read for anybody with responsibility over any large system. The main takeaway I got from it was the methodology, fitness functions, of actually measuring the effectiveness of your architectural decisions through their effect on those numbers. This book and Accelerate formed the basis of much of my thinking in the conclusions to my talk on Architects and Architecture that I first gave at Devoxx Poland in June 2019 (no video yet posted at the time of writing this). Everybody should read this.

Surely You're Joking Mr Feynman

I bought this because it was written by the famous physicist Richard Feynman and I thought it was a popular science book. Actually it is more of an autobiography in the form of several anecdotes and short stories of periods of Feynman's life. It was hugely entertaining and I recommend it. Absolutely nothing to do with our work though.

New Theories of Everything

A popular science / cosmology book. If you like A Brief History of Time and its ilk, you'll probably like this. I enjoyed reading it.

The Selfish Gene

Richard Dawkins' book propounding his new (when he wrote it 40 years ago) theory of evolution placing the gene as the unit of reproduction, not the organism that carries it. A thought provoking read that I was directed toward by reading The Beginning of Infinity by Deutsch. I used ideas in this book and in Deutsch' book to form my conjectures around organisational memes and how they can evolve into long lived pointless activity that we sometimes characterise as Risk Management Theatre. I haven't yet developed that theory far enough to write about it. It is a great read and I thoroughly recommend it although I'd struggle to link it to our day to work.

Joy Inc

Joy Inc is a book about building a workplace that people enjoy working in. It reads a bit like an Agile case study, a bit like a cautionary tale of badly managed businesses and a bit like an advert for the author's company. It is well worth a read and I recommend all people who are trying to get traction for Agile thinking should read this and recommend it to sceptics.

Infrastructure as Code

Written by a good friend of mine and ex colleague, Kief Morris, this is the de facto standard book on Infrastructure as Code. If you haven't read it and you are, or will be, working in a team that is responsible for infrastructure, then read it. Definitely a must read.

Reinventing Organisations

This was recommended to me by Steve Lydford, head of PS at Codurance, when I first spoke to him on the phone before I came here for an interview. The book examines various types of organisations from early human civilisations up to modern businesses. It proposes a new type of organisation a Teal organisation, in which there is no set hierarchy and units self organise. There are several strong case studies throughout the book and it is packed with anecdotes explaining aspects of the theory throughout. I really enjoyed this and I thoroughly recommend it. In terms of our business context as consultants I felt myself mapping a lot of the organisational principals to Agile principals and I felt like I've seen many of these things happening but generally only within an IT function, not a whole business. This book effectively argues that such ideas shouldn't stop in technology but should be allowed to permeate everywhere.

The Theoretical Minimum

From the same author as one of the quantum books I'm reading. An explanation of classical physics. Haven't read it yet.

Special Relativity and Classic Field Theory

Again from the theoretical minimum series. Again, haven't read it yet.

The Software Craftsman

And finally, the last book I expensed to ThoughtWorks was ironically written by Sandro Mancuso of Codurance. After I interviewed here and met Sandro I thought I'd read Sandro's book. I'm pleased to say I thought it was excellent. If you work for Coduracnce, you'll have been given a copy of this book. If you don't work for Codurance I recommend you read it.

No comments:

Post a Comment