30 Seconds In
The first paragraph is just the main character answering his cell phone. The second paragraph is establishing that he is an asshole, because he he is answering his cell phone while speeding 10 MPH over the limit, after having been at a doctor 's office "trying to keep the other toddlers from coughing on us", so basically he's a privileged self-absorbed shitheel who doesn't appear to have any regard or thought for other people. Wow. This is not an auspicious start, but this book has been flung at me by multiple people now so I shall continue on, despite the fact I already hate this fucker.
Making Progress
There he is again on page 216 "breaking every speed limit", however by this point we also have several other asshole characters for example Steve who just declares that everything must get done while ignoring the massive dysfunctionality of this mythical company, and Sarah the executive who happily undermines other teams while demanding that her own pet project gets any resource she wants at anytime.
There are quotes like this "Show me a developer who isn't crashing production systems, and I'll show you one who can't fog a mirror." that show just how horribly cynical virtually everyone depicted has become. I almost took that one personally because I think of my current team of developers who routinely produce working software without crashing production systems, on a regular cadence.
Stepping Back
But let me put aside my personal indignation and acknowledge that I have in the past worked with
1) Every single one of these characters in one form or another.
2) Worked for companies that have had similar forms of dysfunctionality.
3) Had utterly unreasonable demands placed upon my team, "no matter what the cost"
The company depicted here may be slightly exaggerated, in just how bad it is, but in the fine details each of the specific problems is quite realistic. This company represents a conglomeration of a huge number of the real life problems that IT organizations exhibit.
Personal Experience
My second long term job was with a long defunct startup company that had 5 sections each trying to do different things, but all controlled by a megalomaniacal CEO and his family, who it turned had been embezzling which explained in retrospect why the paychecks would bounce, and then he would come swooping in with money to save the day on a very regular basis. We survived multiple rounds of near death, and then funding, absurd promises made for amazing software, unrealistic deadlines, many late nights recovering from disasters (often self-made) and then finally died during the dot.com bubble crash of 2000.
My next job was with a now defunct company that made software for lean manufacturing, which is exactly what this book is about. During that job I learned about concepts like single-piece flow, WIP reduction, continuous improvement, and how to identify and correct bottlenecks. All these concepts are major parts of this book. Ironically, the company did not apply those same principles to our own software development cycle, and instead we had more or less formalized waterfall methodology with 6 months of design, 6 months of coding, 6 of QA, after which we struggled against larger behemoths who could strongarm companies into not buying our software even when it was better, because of marketing and package deals, done in corporate bedrooms. I mean boardrooms. At that company there was one project that had been promised to be done in 3 months by a sales guy, which the dev team said would take minimum 9 months, but we were tasked to "get it done". I worked a run of 32 continuous days 16 to 18 hours a day, sleeping under my desk when I couldn't function, and working a short 10 hour day on either Saturday or Sunday so I could go home and take care of basics. After 32 days I told my boss I was going to take a weekend or else I was "going to kill someone". He let me take the weekend. Ultimately we were acquired by one of the behemoths, and then slowly and systematically dismantled and the entire team was terminated 1.5 years later.
My next job was with yet another startup, and when I got there it was a mess, but at least we had customers, and a reasonable runway. However the market was tough, there were ups and downs, and development was shaky. Deployments were exciting, and could sometimes run overnight as problems were found, fixed on the fly, and occasionally after overnight attempts to fix would be backed out, which was also fraught with danger. We slowly switched over to Agile practices. At some point one of my bosses brought in an Agile expert. I was skeptical, but fortunately he was not a smug, mysterious asshole like the one depicted here in this book. We listened, we argued, and then slowly we started adopting practices and making changes.
And it worked.
Not all at once, and the transformation was not on the magically short time-frame that is presented in this book, but with persistent and diligent application of key concepts we slowly progressed from being constantly in fire-fighting mode into a mature development organization that delivers working software on a continuous pace, with relatively few defects, and moreover we are predictable. When new work is brought to us, we are able to provide surprisingly accurate estimates based on story points, which my direct report boss can turn into road maps that he present to the higher-ups. Deployments are now boring, as they should be, and on the rare occasions when something goes wrong, we can easily back out, and then we follow up with an analysis to determine what went wrong, and we fix it.
To me, some of the most important lessons to learn included the idea of always looking for ways to improve processes. If something doesn't work - stop doing it. Focus on problems that you have the ability to fix. Focus on those problems that create the most waste. Remove bottlenecks. Make things repeatable. There are plenty more.
There were other factors in our journey to improvement, including substantial attrition. There were lots of developers that just needed to go because they either could not wrap their heads around the ideas, or were extremely difficult to work with, or wanted to be rock stars. This book really only deals with that aspect in the character of Sarah, but she was executive level, not development.
The team I work with now still has a long way to go, but we are on the right path, and we keep working towards ideas in this book.
Wrap It up, You Long Winded Bastard
If I were to rate this book as a fictional novel, it would be at best 2 stars. The characters are wafer-thin and would certainly make Mr. Creosote vomit. The plot is relatively straight-forward, and is compacted a bit too much if the intent is to depict a real company transformation. But that's not really the point. This book is intended to convey certain ideas, and whether or not all people would agree (I have personal friends who screech and wail on a regular basis about how much they hate Agile - but in every case they attack with strawman arguments) those ideas can in fact make vast improvements in an IT organization. If you are reading this novel it should be with the goal to understand those ideas.