The Phoenix Project write up
The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win is one of the best change management book I have read in recent years. Below are some notes about what I learned:
Types of work
If you ask the question What is work? Most people will say “The project I am working on”. That is only the partial truth, for any organizations, there are four types of work:
- Business project — This is the kind of work that customer will pay you to do
- Internal project — Customer don’t pay you to do this kind of work. but these type of work are essential to help you to achieve your goal. For example, an internal system upgrade that improves your work efficiency
- Change — This is the time you spend on changing the way you work so you will work more efficiently. This is also work because you have to spend time understanding existing processing, creating a new process and to get buy-in from people around you.
- Unplanned work — Any kind of work that is not in your schedule. Change of regulation, bug fixes, spontaneous meeting, handling an employee suddenly quitting…etc.
Of all the above, unplanned work is the worse. It eats up the plan work’s time by forcing you to stop what you are doing, and while you are working on the unplanned work, it creates even more unplanned work as the by product.
Unplanned worked creates inefficient team and it brings down moral because everyone feels like they are constantly losing control. Unplanned work must be identified early and eliminated at all cost
Make work visible
One of the main reasons why software project always miss the schedule is because the work in software is invisible. Invisible doesn’t mean it doesn’t exist. Since most immature organization didn’t put in the effort to make software work visible, they often discover work at the very last minute when they try to ship something.
Factory plant has less of this "not knowing how much work needs to be done” problem because raw material is physically visible and everybody can see good starts to pile up if one of the process is slowed down. Software company must also do the same by making their work visible such as using the Kanban board. One of the key concept here is to “Make wait time visible”.
Any changes made not on the bottle neck is an illusion. Improvement made before the bottle neck would just mean that finished work would pile up after the bottle neck because downstream is not ready to digest it. Improvement made after the bottleneck would just mean that all works will be piled up before the bottleneck and will never reach the downstream.
Apply strategy that protects your companies most important goal. For example, logistic company’s biggest KPI is to ensure on-time delivery of goods. Their biggest threat to prevent their KPI is that their truck breaks down. To ensure their truck doesn’t break down, they implement regular maintenance schedule and oil change every X miles such that their trucks will not breakdown.
The same framework can be applied to software design, first come up with the priority of the company, then decide what can prevent that from happening and do scenario planning and apply procedure to eliminate problem before it occurs.