Tag Archives: book review

Debugging - Book Review


I end up doing a lot of debugging, in fact every single day I'm debugging something. Some days it is software and scripts that I'm using for my PhD research, some days it is failed laboratory equipment, and some days it's working the problems out of a new instrument design. Growing up working on mechanical things really helped me develop a knack for isolating problems, but this is not knowledge that everyone has the occasion to develop. I'm always looking for ways to help people learn good debugging techniques. There's nothing like discovering, tracking down, and fixing a bug in something. Also, the more good debuggers there are in the world, the fewer hours are waisted fruitlessly guessing at problems.

I'd heard about a debugging book that was supposed to be good for any level of debugger, from engineer to manager to homeowner. I was a little suspicious since the is such a wide audience, but I found that my library had the book and checked it out; it is "Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems" by David Agans. The book sat on my shelf for a few months while I was "too busy" to read it. Finally, I decided to tackle a chapter a day. The chapters are short and I can handle two weeks of following the book. Each morning when I got to work, I read the chapter for that day. One weekend I read an extra chapter or two because they were enjoyable.

I'm not going to ruin the book, but I am going to tell you the 9 rules (it's okay, they are also available in poster form on the book website).

  1. Understand the System
  2. Make It Fail
  3. Quit Thinking and Look
  4. Divide and Conquer
  5. Change One Thing at a Time
  6. Keep an Audit Trail
  7. Check the Plug
  8. Get a Fresh View
  9. If You Didn't Fix It, It Ain't Fixed

They seem simple, but think of the times you've tried to fix something and skipped around because you thought you knew better to have it come back to sting you. If you've done a lot of debugging, you can already see the value of this book.

The book contains a lot of "war stories" that tell tales of when a rule or several rules were the key in a debugging problem. My personal favorite was the story about a video conferencing system that seemed to randomly crash. Turns out the compression of the video had problems with certain patterns and when the author wore a plaid shirt to work and would test the system, it failed. He ended up sending photocopies of his shirt to the manufacturer of the chip. Fun stories like that made the book fun to read and show how you have to pay attention to everything when debugging.

The book has a slight hardware leaning, but has examples of software, hardware, and home appliances. I think that all experimentalists or engineers should read this early on in their education. It'll save hours of time and make you seem like a bug whisperer. Managers can learn from this too and see the need to provide proper time, tools, and support to engineering.

If you like the blog, you'll probably like this book or know someone that needs it for Christmas. I am not being paid to write this, I don't know the author or publisher, but wanted to share this find with the blog audience. Enjoy and leave any comments about resources or your own debugging issues!

"The 4-Hour Work Week" - Thoughts on the Best Selling Book

In a best selling book "The 4-Hour Work Week", author Tim Ferriss argues for working less and experiencing life more.  While this concept is intriguing and what many corporate types long for, I was curious if and how Mr. Ferriss' ideas could convert over to academia.

In academics, many of us (myself included) enjoy what we do and spend much much more than 40 hours a week "working".  While we may not always be in the lab or in the office, we generally think about problems all day, all night, etc.  Why do we do this? Is it because we are addicted to work? Not really, we do it because of an intense interest and desire to solve problems.  You may think that this automatically throws the concepts of the book entirely out the door, which is incorrect! Tim Ferriss admits that he really does work more than 4 hours a week, but his main argument is cutting unnecessary things out of your schedule.

The concept of "work for work's sake" is hammered throughout the book as something to instantly eliminate.  Do you have items that you do to avoid tackling the big projects? For example, sending out a dozen "check up" emails that don't really need to be sent or could be addressed with a short face-to-face kills an hour or so and helps you avoid doing real items that are important but difficult.  This concept can come right on over to academics and graduate students are famous for ninja like procrastination skills.

To achieve the freedom described in the book , Ferriss outlines a plan on starting a business, automating it, and letting it produce income with minimum input from you... Sound too good to be true? It probably is and certainly doesn't sound like academia, but with some adapting I think we can focus it down and maybe consider a few of the sub-points in detail.

Starting a business to market a product: not so applicable to graduate students, we make ideas and concepts that can't be outsourced or sold. Later if your idea becomes a product, instrument, etc? Maybe. Overall I'd say this part isn't very applicable and you'll never have to worry about distribution houses and merchant accounts.

Automation: YES! This is something that many graduate students, professors, and even undergraduates can use more of.  My motto is "if you have to do it more than 10 times, write a program".  In some cases that is overkill, but a few simple things like automating your email rules, writing a data plotting routine instead of pointing and clicking to make the same plots, or even automating bill pay can save you enormous amounts of time.

First off for email: my personal plan follows the David Allen "Getting Things Done" philosophy of inbox zero.  At the end of everyday when I leave for home my inbox (electronic and physical) has exactly zero items in it.  If the item takes less than 2 minutes I do it immediately, if it takes more it gets clipped into OmniFocus and the email archived or deleted.  You can also improve your spam filters and use smart labeling/smart inbox depending your email setup.  All my inboxes (about half a dozen addresses) forward to a gmail account because I think they are the most versatile provider.  I use Sparrow as a client, but the web interface is fine as well.  Check out the wealth of information including Gmail Ninja.

Ferriss encourages readers to check email only twice a day and then cut down from there: this simply isn't possible in my field.  Ferriss even recommends paying personal assistant services to do things like check email, make basic appointments/decisions, etc.  Assistants aren't really useful for more than business type emails though and as a graduate student I live in the world of mostly non-FAQ style messages. Could I check email less than I do currently? You bet, and I'm working on that.  Checking email the first thing in the morning, while discouraged by many experts is still essential for me.  I want to know what's flying my way for the day that I need to add to the schedule.  Playing with timers that shut down my email for 30-90 minute focus sessions is an experiment I plan to try in the coming year.  (Ferriss would call this a "lifestyle experiment", which is an excellent term in the eyes on an experimentalist.)  Use a stats service to track your email response time, length, thread length, etc.  If you're sending an email every 20 minutes thats in a long thread of long messages just pick-up the phone and call or Skype the parties involved.  I know, I hate phone calls as well, but it saves massive amounts of time.

Further automation (some from Ferriss and some I've picked up) includes Amazon auto shipment of essential items and automatic bill pay.  The automatic shipment of Amazon products on a schedule not only saves me money directly, but time.  I no longer run to at 8:30 pm several times a year to pickup essentials I've forgotten.  Things like deodorant, toilet paper, toothpaste, printer paper, ink, toner, juice, snacks, and just about anything non-perishable can be scheduled to ship at a given interval.  I see the email that a shipment is on the way and leave a note to drop the package at my door instead of the office for the UPS delivery man/woman.  It sounds silly, but it really does save me trips and thinking about repetitive tasks.  Options to request and additional shipment and skip a shipment exists if you over/under estimated how often you use a product.  Automatic bill pay is a similar process: the computer does it and I just supervise by looking at my online banking site every week and noting account action emails. (If you happen to be in the area, PNC bank has great online tools.)

Meetings: Ferriss advises us to avoid these at all costs.  While that may be a good bit of advice, spending time with fellow scientists is how new projects emerge, so cutting isn't as easy as in business.  I do like the idea of having someone requesting a meeting (be it a student or colleague) send some discussion points ahead of time to the group.  This means everyone knows what's on the table and conversation is less likely to drift.  Hit the points, write down new points, but try not to chase them.  Save the idea batting for my favorite meeting idea: agree to meet later for a drink and bring notebooks.  Geologists are famous for their love of beer and having a beer is a relaxed environment that allows ideas to flow onto paper and doesn't eat into the "business hours" of trying to knock off action items.

While there are more points in the book, I want to mention just one more: mini-retirements.  Ferriss says why retire? just take breaks from the work and spread experiences throughout your lifetime.  This is a great idea and very easy to do in academics.  We get mini breaks with semester schedules, but it's not uncommon to go on a research trip or go to a conference overseas and spend an extra week or two.  Several people in our department end up living overseas for months at a time to do their work and get new experiences.  This concept is on my list of experiments to try, but I've noticed working in intense sessions and then really taking small breaks during the day/week has already helped.

In the end, I recommend you read the book.  Maybe grab it from your library and see what you think.  Ferriss seems like a rather abrasive personality, but you don't have to be to adopt a few of the concepts in the book.  It really boils down to the same idea though: make a get of goals, get to them in the best way possible, and don't waste time, recreation or work.