What’s in the “Phone on Fire” Mystery Book?
Sunday, October 26th, 2008 | Author: lisaksimone

What this book ISN’T

This book is not a hardcore textbook or a manufacturer-specific or toolset-specific “how to” book. It isn’t a book that becomes dated after a few years. It isn’t a book that guilt-trips you into reading it just because you bought it.

What this book IS

This book contains a series of technical mysteries for readers to solve. It’s fiction, and it’s nonfiction. “CSI for Embedded Systems” if you will. Machines crash, products catch fire - the engineers at Hudson Technologies race to fix the problems before it is too late!

I’ve tried to make it as realistic as possible, from the way problems are found and reported, through the pain of management pressure that “this must be fixed today.” It also includes some traditional and nontraditional debugging methods and testing, and interactions with the folks from hardware, system test, and marketing.

But the technical stuff I’m trying to convey isn’t so much in-your-face as it is a consequence of the interactions of the Hudson Technologies engineers who solve each mystery. Oscar, Josie, Ravi, and Li Mei are technical folks who you’ve all met and worked with (or for). They’re a typical engineering team. They have good days and bad; they have flashes of inspiration and at other times bang their heads in frustration on the bench after days of little sleep. While they’re less dysfunctional than some teams can get, they feel the same pressure to nail the bugs amid sometimes frustrating team dynamics, broken or missing tools, some idiot customers and a stressful trade show demonstration. Despite it all, they learn and adapt, and blow off steam together after work.

Each mystery also begins with a Real-World Bug from Jack Ganssle’s collection of embedded disasters. The disasters were selected to mirror the chapter mystery in symptom or in root cause. While some Real-World Bugs are humorous (temperature in a hot Texas town is reported at 505 °F) others result in loss of life - a sobering tribute to the ease with which we randomly change 1’s and 0’s in our code.

Please note that this book will not teach you intricacies of a programming language or attempt to trick you with pointers to functions returning arrays containing pointers to functions. It contains very little raw source code - only about 14 pages. Why? Because most powerful debugging techniques are language-agnostic. (Jumping straight into the software listings without a plan can derail the best intentions anyway.) I also avoided mentioning specific processors or tools to focus on the general problem-solving techniques instead.

My goal is to tease you with a series of symptoms, clues, and realistic bugs, and provide logical steps to help you brainstorm root causes and propose targeted searches through the software and hardware.