The Phoenix Project by Gene Kim
Date Read: February 1, 2023
Listing to this book is the only method of consumption I can recommend. I am a little biased since this is the way I have decided to approach it. However hear me out:
- It is not as dense with useful material as pure nonfiction books, so you don't need to make a ton of highlights.
- It is a little to basic to be read like a proper novel.
- It is a great way to learn about DevOps principles while doing simple activities like exercising, dish washing, etc.
In my experience I have been not to succesfull in staying engaging when listening to non-fiction books. This was perfect however. So, with the method of consumption out of the way, what did I think about this book.
It is really good. If you are a programmer, you journey is very likely to be a unique one. In my case for example, I learnt to program myself, and when I got my first full-time gig programming, the team I was on was already implenenting the principles mentioned in this book. Everything was documented, all the processes were automated with Github Actions and or project manager did a great job keeping the projects in Agile format.
If you have never heard of DevOps procedures, than you might recognize a lot of characters from this book. You will likely learn quite a few things.
All of that said, the principles described in this books have already penetrated the industry deep enough, so anyone who is doing programming these days, even if you are an Indiehacker you likely you something like that.
I would certainly recommend people listen to this book as a complement to the everyday routine. It might motivate you to be more structured about your work, like it did for me.
The story revolves around the character of Bill, who is tasked with reviving a struggling IT department at a company called Parts Unlimited. Through his journey, the reader is introduced to various IT concepts, such as Agile, Lean, and DevOps, and the benefits they can bring to an organization. Here are some of the lessons you will encounter while consuming this book:
- Document as many procedures as possible.
- Don't have a star programmer who is the only one who knows how to fix something. If you see someone like that tell them to follow step one to make sure as many people know how to do any given thing.
- Automate all the repetetive processes: Unit testing, Deployments, Updates, etc. You may find more tutorial on this topic by searching for terms like continuous integration, continuous delivery, and continuous improvement.
- Try to keep tech debt to a minimum and if that exists resolve as soon as possible. Point 1 and 3 will help with that a lot!
- Consider learning about Agile and Lean methodologies. Optional! I think (personally) that this mostly means that you should use a Kanban board and move things along as you work through them. This point might mean more to bigger teams, I don't have such experience.
"The first principle of the Three Ways is to create fast flow of work as it moves from Development into IT Operations, and then into the hands of our customers, without sacrificing stability, reliability, security, or compliance. The second principle is to amplify feedback loops, so that not only are we notified when something goes wrong, but we can also see if our system is trending towards an unhealthy state. The Third Way is about creating a culture that fosters two things: continual experimentation, taking risks and learning from failure; and understanding that repetition and practice is the prerequisite to mastery."
"The best way to fix problems is to prevent them from happening in the first place. The best way to prevent problems is to make them immediately visible, so that everyone involved can see and understand the impact of their decisions and actions. This is the essence of systems thinking, which is the practice of understanding how things, regarded as systems, influence one another within a whole."
"The Third Way is about creating a culture that ensures that problems are identified and resolved to permanently fix them. This requires a focus on addressing the underlying causes of problems, rather than just the symptoms. We must also learn from our mistakes and ensure that we are continuously improving our systems and processes to prevent the recurrence of known problems."
"The best way to accelerate a project is to eliminate the amount of work that doesn't need to be done in the first place. This is the essence of Lean thinking, which is focused on maximizing customer value and minimizing waste. By eliminating unnecessary work and optimizing the flow of work through the system, we can reduce cycle time, improve quality, and increase throughput."
"The most successful people are those who are good at plan B. Having a plan B means that we are prepared for the unexpected and can quickly adapt to changing circumstances. It also means that we are able to take calculated risks and learn from our mistakes, without being paralyzed by fear of failure."
"Any improvement not made at the constraint is an illusion."
"Maximizing local efficiencies often results in globally inefficient outcomes."
"No matter how good people are at their jobs, if they're working on the wrong thing, it doesn't matter."
"If you don't know where you are and you don't know where you want to go, it doesn't matter which way you go."
"The only way to fix a systemic problem is to understand the system of which it is a part."
"The first step in any journey is not knowing where you're going."
"Culture changes one person at a time, and it starts with the leader."