In this post, I'm going to share some of the books I read this year. In the nonfiction realm, some of them are very much on point for software developers. Others are just good books that let you know what's going on in the world.
In fiction, I'm drawn to technology-driven Sci-Fi. I found some great reads this year. I also listed some books at the bottom of this post that weren't that good. I think it's just as important to tell you about the good books as the not so good books.
The Principles of Product Development Flow
Dark Territory: The Secret History of Cyber War
Freedom (Daemon Book 2)
Test Driven Development: By Example
America’s War for the Greater Middle East: A Military History
Change Agent: A Novel
Spaceman: An Astronaut’s Unlikely Journey to Unlock the Secrets of the Universe
Good to Great: Why Some Companies Make the Leap and Others Don’t
Great by Choice: Uncertainty, Chaos, and Luck–Why Some Thrive Despite Them All
Lock In: A Novel of the Near Future
The Difference: When Good Enough Isn’t Enough
Lean Six Sigma For Dummies
Disrupted: My Misadventure in the Start-Up Bubble
Trapped Under the Sea: One Engineering Marvel, Five Men, and a Disaster Ten Miles Into the Darkness
The Art of War Publisher: Shambhala
This is the most important book I read in 2017. In fact, it's probably the most important book I've read in several years.
Here's the deal: agile software development (and SCRUM in particular) borrowed successful ideas from manufacturing and applied them to software development and expected to see the same results. The problem is that the fundamental assumptions that make LEAN and the Toyota Production System so successful in manufacturing don't hold up in software development.
So, team after team adopted SCRUM and then wondered why they weren't going any faster and why they were having so many problems. So they called in the consultants and the consultants said that they weren't doing it right. Try harder! So they tried harder but SCRUM still didn't work as advertised.
Well this book has the answers! I'm not going to lie, this is a serious book. But, I'm telling you, Reinertsen knows what he's talking about.
I did a couple of blog posts on chapter two if you want to have a look:
- Cost of delay: how to calculate quantitative cost of delay and CD3
- Cost of delay: prioritize your product backlog by CD3
- Cost of delay: simultaneous feature development
This is a chilling history of America's cyber war activities and a look at the current battle space.
Make no mistake, cyber is just as much a domain as air, land, sea, and space. The military needs to control it if it wants to control the battlefield.
America is in a unique position. Because it has the largest and most technologically advanced economy in the world, it has the biggest attack surface. Some people in the government want to defend and harden the economy against attacks while others in the government want to collect exploits so they can use them in offensive operations.
Spying is rampant (even among allies). Corporate IP theft is rampant. Nations are hacking nations. And nobody seems to have a coherent plan to protect themselves.
Our technology has reached the point where a strong cyber strike could cripple a nation. And unlike a missile strike or bombing campaign, it's very difficult to determine were it came from to know against whom to retaliate.
This book is especially relevant to software developers because we are the people writing the crappy, exploitable code that makes all this possible.
Awesome fiction for your geeky soul.
I decided to read this book after I watched the movie and I wasn't disappointed. The movie largely follows the book but on a compressed scale.
Instead of that two hour feel-good feeling you got from watching Mark Watney struggle to "science the shit out of this" in the movie, you get to experience that feeling the whole time you're reading the book.
Amazing Sci-Fi. The obituary of a tech titan triggers an AI he created to execute his plan from beyond the grave. It's killing people, hacking, recruiting a citizen army, and we don't know why. It's always one step ahead of the FBI and all the other law enforcement agencies. As they struggle to comprehend what's happening, the AI is moving pieces into place to obtain its primary objective.
It's interesting to think the tech that's just around the corner and how it can be used for good or evil. The book's got AI, AR, self-driving cars, IOT, and so much more.
Freedom is the second book in the series and you won’t want to miss it. It picks up right after the first book and the action is awesome and unrelenting.
I actually enjoyed the second book more than the first.
What you think of this book will be heavily influenced by your views on TDD and your level of skill level as a TDD practitioner.
This book is aimed at TDD beginners and I think it serves that target audience well. Beck resolves lots of misconceptions about TDD. And he shows you how to actually go about applying those three simple TDD rules with realistic and lengthy examples.
If you are an intermediate or advanced TDD practitioner, you will not find much new material in this book.
Have you ever wondered why the American military is permanently camped in the middle east? Have you wondered which half of the crap on TV about the middle east is true? Or how does this all end?
I sure have. Bacevich lays it all out and it's ugly and deeply concerning. If you have the slightest interest in America's foreign policy, you should definitely check out this book.
Set 28 years in the future, an Interpol agent is injected with a mysterious substance in a subway. He wakes up in a hospital handcuffed to the bed and everyone thinks he's a notorious crime lord. His DNA and appearance have been altered, which is supposed to be impossible.
He spends the rest of the book trying to get his body and his life back and we get to come along for the ride.
In 2045 there's advanced genetic engineering and medicine, autonomous military drones, self-driving cars, AR, VR, total surveillance, and massive numbers of climate refugees.
I liked the Daemon series better but this Suarez novel is well worth your time.
I've always been fascinated with NASA and the Astronaut Corp. What does it take to make it as an Astronaut? What do you have to do to get in? How do you get a mission? Mike Massimino tells all in this fascinating and entertaining story.
This man went "all in" over and over again for the slimmest chance to become an astronaut. Any rational person would have given up right at the beginning. But he persisted despite overwhelming odds, got into the program, and made it into space.
What's the difference between a good company and a great company? This book aims to answer that question.
I really like Jim Collins' work. This is good material for a software developer trying to get a better understanding of how successful businesses are structured and how they think.
Collins' model of how to build a long-term successful company is very different from what you typically see in Silicon Valley and that's a good thing.
This is an interesting read and I believe it will be well worth your time.
In this book, Collins investigates the roll of luck (both good and bad) in running a successful company.
All companies have both good and bad luck but the most successful companies make plans to minimize the bad luck which will inevitably come and maximize the good luck should an opportunity present itself.
Just like in Good to Great, Collins shows that successful companies look very different than the typical Silicon Valley start-up. While these high-flying tech companies are getting all the press, the great by choice companies are quietly and methodically doing their thing and crushing the market and the competition in the process.
In the near future a highly contagious virus spreads across the world. Most people recover after experiencing something similar to the flu but a small percentage become trapped in their bodies unable to move a muscle (known as being "locked in"). Fast forward 25 years and the best solution anyone can come up with is to put computers in the victims' brains and give them androids to act as their surrogates in the real world.
This brings up all kinds of interesting issues. What happens to your internet connected brain computer when the manufacturer goes out of business? Who does the security updates? How do you protect the software on really old computers from being hacked? How can you tell that the android you're talking to is really being controlled by the person you think is supposed to be controlling it?
And then there are all kinds of issues with discrimination against persons with disabilities and the proper role of government in helping find cures for serious illnesses. It's an interesting read.
What would happen if your communications technology and electricity all stopped working at once? No phones, no computers, no internet, no power--nothing. What if it happened in New York city right before a wicked winter storm?
The answer is that things get ugly. The civilized part of civilization goes away pretty almost immediately when the power goes out and people get cold, hungry, and desperate.
I couldn't put this book down!
The thesis of this book it that its very difficult to have a successful company if your people don't give a crap.
The author suggests that you need to adopt a 'caring mindset' if you really want to make a difference.
A caring mindset is achieved through practicing the STAR principles of being: straightforward, thoughtful, accountable, and having resolve.
That's a totally fair position but I'm not sure this is an idea that needed a whole book. Some Amazon reviewers talked about the book being one big advertisement for the author's services and I can't disagree with them.
Lean was born in Toyota and Six Sigma came out of Motorola. This book introduces a mashup of the two methodologies.
I read this book hoping to find a way to improve the effectiveness of our software development efforts but it isn't very applicable to software development.
If you work in an environment where other departments are doing one or both of these methodologies, then you might get a good introduction in this book. Otherwise, I'd say you are much better off reading The Principles of Product Development Flow (Donald Reinertsen).
Find out what it's like to work for a tech company run by people who don't have the slightest idea of how to be mature adults. Funny, cringe-worthy, and sad all at the same time.
It's a cynical take on start-up "culture."
Trapped Under the Sea: One Engineering Marvel, Five Men, and a Disaster Ten Miles Into the Darkness (Neil Swidey)
This book is not directly related to software development.
I've been reading books on engineering to see how other disciplines deliver solutions to complex problems. This is the story of a team of divers that attempted a one-of-a-kind mission deep into a tunnel in the bedrock below the ocean floor.
The mission failed and two divers died. There were plenty of signs that the mission was unlikely to succeed but time pressure, greed, and wishful thinking on the part of many people kept the project moving forward.
There are many parallels with doomed software projects here.
Ingenious: A True Story of Invention, Automotive Daring, and the Race to Revive America (Jason Fagone)
This is the story of the X-Prize hyper car competition. The author followed several teams as they prepared for the competition, competed, and a little bit of follow-up afterwards.
I'm always interested to see how people come together to make something and how I can use that information to make better software. Unfortunately, I didn't learn much I could use in this book.
It's an okay read, at best.
This book is a classic among the business people who see business as as a metaphor for war. My professors mentioned it now and then when I was in business school. I came across it at my library and thought I would check it out.
It's not the first book I would recommend for a software developer looking to understand business. Hell, it's probably not the 100th.
The book is filled with cryptic almost riddle-like wisdom about waging warfare in China several hundred years ago. Unless that's your thing, look elsewhere.
Thoughts? Comments? I'd love to hear what you think I should read next.