My anticipation grew as soon as i heard of her new novel. It's about a programmer, a tester and a bug that drives them crazy. My expectations were so high that i worried i could only be disappointed.
The book is unsettling and it's taken me some time after reading it to decide what to think of it. Of course, the fact that it's made me think automatically means its worthwhile.
First off, it does a good job of portraying what it's like to work, day after day, programming and testing: the dreadful meetings, the insane deadlines, the endless nerdy humor, the overwhelming technical minutia. Secondly, it's a grim story, and it only gets grimmer as the book progresses. It contains several allusions to Frankenstein, and doesn't make programming look much fun; if you're looking for a peaen to programming, stick with Wired.
I checked many reviews from other readers. Mostly, they cited these two aspects -- its versimilitude and darkness -- as reasons why they did or didn't like it ("too technical", "won't dissapoint programmers", "lacks humor", "a cautionary tale"). The surprise ending certainly made me uncomfortable. The veracity allows it to be quite haunting.
The story centers around a bug that is hard to reproduce and that mostly occurs when the product is being demonstrated to investors and potential customers. The cause of this bug is eventually explained. I disagree with everal readers who have said that they couldn't believe that this bug could happen or could remain dormant for so long. Bugs often look obvious when you actually find them.
Others have sniffed that the code on page 337 actually contains a second bug, which is true enough. It's pretty glaring. I suspect that even non-coders who compare the code to the diagram on the facing page will find it. But this only proves how easy it is for bugs to happen in the first place. (I suspect this bug will be fixed in later editions of the book.)
Personally, i appreciated how the story hinges on how the programmer and tester must overcome their mutual hostility before they can work together to eventually understand the cause of the bug. Encouraging programmers and testers to work together better has been a theme i've written about and is central to my own consulting practice. It's nice to see more writing on the topic.
The book also offers a bit of advice for consultants. The tester eventually becomes a quality assurance consultant. It's from this vantage point that she narrates the events of the book. She reports that the ruder she became to her clients, the more money they would pay her.