Today’s header image was created by chuttersnap at Unsplash

Last time, I discussed the first five books in my top 10 list of books which have had a positive effect on my software development career.

If you remember, I said that I wasn’t going to list the obvious choices (like Code Complete), because they were obvious. Also because I wouldn’t be able to bring much to the conversation about them.

As a little reminder…

How Are You Going To Do This?

I’ll list each book, discuss why I think you should read it and how I think it’s helped me to improve. I’ll also link to the book on Good Reads where you can see what other people think about each book, and I’ll even have a link directly to Amazon where you can buy a copy of the book.

The List – Another TL;DR

Here is the same list from last time, complete with links to GoodReads, before we go into the remaining five books, I thought it would be a good idea to list them again.

As with last time I’ve not ranked them. Each book appears in the list, but not in any kind of order.

I covered these first five in the previous part in this series

these would make amazing gifts for the software developer in your life

Let’s get back to the list.

The Spirit of Kaizen: Creating Lasting Excellence One Small Step at a Time

What does Kaizen have to do with software development? Well, let’s take a quick look at the Japanese phrase Kaizen:

KaiZen Kanji with furigana

The little characters above the kanji are called Furigana and aid the reader in pronouncing them

This is usually translated into “Change for the Better”, but actually translates to “betterment” or “improvement”.

Kaizen is the name given to a methodology which was largely adopted by the Japanese after the Second World War, that of continuous improvement through small changes.

The theory goes that it’s much easier to make lasting changes if you make them in tiny increments.

this backed up by the habit loop in Charles Duhigg’s The Power Of Habit

Using a constant feedback loop of:

  • Observe
  • Plan
  • Change
  • Reflect

you can make small, but fast changes to your behaviour, thought processes or habits

it also sounds a heck of a lot like Agile, to me


Buy “The Spirit of Kaizen: Creating Lasting Excellence One Small Step at a Time” at Amazon

The Spirit of Kaizen is both a fantastic introduction to the topic of Kaizen and the history of the methodology, but also a fantastic story about how it can be utilised to improve business processes. It draws from Mauerer’s practise of being a consultant.

interesting side note: I first heard about this book on The Art of Manliness podcast

Masters Of Doom: How two guys created an empire and transformed pop culture

Think what you want of First Person Shooters, and video games for that matter

did I say that I run a video games blog with my brother 😛

you can’t deny the impact that the two Johns (Carmack and Romero) had on the industry in the early 90s. They effectively revolutionised the genre, using computers which didn’t belong to them, in their own time.


Buy “Masters Of Doom: How two guys created an empire and transformed pop culture” at Amazon

This book chronicles the forming of iD software and the early design documents which became the Doom bible. It’s a fascinating read, and an amazing entry point into the mind of one of the best

in my opinion

contemporary software engineer: John Carmack. How good is he? Well, every time someone said that something couldn’t be done, Carmack made it happen. you can see footage of Carmack’s remake of Super Mario Bros. 3 (mentioned in the book) here, for example.

Nintendo had informed Carmack that porting SMB3 to PC would be impossible due to technical limitations

Effective Programming: More Than Writing Code

I’m sure you’ve heard of Jeff Atwood

if you don’t read his blog, then you really should

or one of the products he has created

stack overflow and discourse

There’s more to being a software engineer than just writing code, that much is a given. This book takes the reader through a whistle stop tour of some of those topics in order to take you from being a good engineer to being a great engineer.


Buy “Effective Programming: More Than Writing Code” at Amazon

Sure this book is comprised of some of his more famous blog posts, but it’s great to have to hand for reference. Plus, using a computer in order to learn this these things feels a little antithetical.

Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software

We all have those projects which seem to go nowhere or suffer from a little scope creep

“if you could just add this one tiny feature…”

Imagine that happening with your dream project. Now imagine that you’ve secured thousands of dollars of investor money. Now imagine that your progress is being reported very, very publicly. NOW imagine

I’m already imagining too much

that the project process starts to slip.

Dreaming in Code is about the development of Chandler, but more importantly a glimpse into what open source project management is like.

I have no idea how the Linux Foundation manages it, if I’m honest.

Dreaming in Code covers what happens when a project’s goals aren’t met and the mad scramble which happens in order to reach those goals.


Buy “Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software” at Amazon

The more important outcome of the events in this book was the creation of the Open Source Applications Foundation.

Do you have a Playstation 2/3/4/PSP/PSP Vita? Do you have an Android device? Do you have a wireless router? Do you access the Internet?

If you answered yes to any of these questions then, without a doubt, you use open source software everyday. Regardless of whether you work in open or closed source software development, the lessons to be learned in this book are vital.

The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

Oh boy. This book.

It’s all because to the folks at the CodingBlocks.{NET} slack group that I know about this book.

so big thanks to them.

I’m sure that I’d have heard about it eventually, were it not for them. But thank goodness for all those folks telling me about it.

Let me start by saying this: if you work as, or with software developers/coders/IT folks/engineers, then this book WILL change the way that you see your business. You’ll see how everything in the business is meant to drive towards a single goal, and that you’re probably surrounded by folks who (with or without knowing it) undermine the businesses ability to reach that goal on a daily basis.

Reading this book introduced me to a bunch of business management processes. It even lightly

and I mean really lightly

touches on Kaizen (without calling it out by name).

Sure, it’s fiction but the authors know the industry. Really, really well. The characters could be almost anyone at your company, without being a caricature. It’s scary how so many big companies act the same way. Even Microsoft acted the way that Parts Unlimited

the fictional company in the book

did, back in the day – as pointed out in the references section at the back of the book.


Buy “The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win” at Amazon

There is so much information in this book that it benefits from multiple reads. From the Theory of Constraints to Kanban and everything in between. Seriously, you’ll learn so much about business project management and how development is meant to be done from reading this book.

If you’re a developer/Ops/DevOps/IT person and you take your job seriously:

READ. THIS. BOOK


That’ll do it for my two part list of top 10 dev books… for this year, at least. I’m keeping a log of the books that I read and I’m going to be doing another one of these lists, this time next year.

If you’re a developer (or any other kind of IT person), what would your top 3 recommended books be? Are they the same as mine?

If you’re not a developer, what would your top 3 recommended books be?

Let me know in the comments below and I’ll make sure to read them in the coming year.

Related Post


GaProgMan

Jamie is a .NET developer specialising in ASP.NET MVC websites and services, with a background in WinForms and Games Development. When not programming using .NET, he is either learning about .NET Core (and usually building something cross platform with it), speaking Japanese to anyone who'll listen, learning about languages, writing for this blog, or writing for a blog about Retro Gaming (which he runs with his brother)