"Stimulate, don't simulate" from Frederick
Hill.
“MyCompany” makes processors, and one thing you have to do when you make
processors is create a reference board that has your chip and some RAM and
a serial port and other things, enough to "do something" with the processor.
You also have to write all the software needed to use the board, an assembler,
compiler, a Windows application to talk to the board, and so on. You give
this board and the software to the customer, who might be making, say, a
digital camera, and the customer's engineers can play with the board and
determine for themselves what the processor can do and if it would work well
in their next camera.
I've worked on the development tools here at MyCompany. I wrote the
assembler, for example, and some of the Windows software used to connect
to our reference board. A field application engineer was trying to
upload an executable to his reference board, and he couldn't even get a connection,
and he asked me for help. I watched him attempt the connection on his
laptop, and then I went back to my machine to try and reproduce the problem
("Make it fail"). It worked with my board, so I brought the FAE's board
over, and it worked.
Now, before, I would have spent a lot of time trying to reproduce the failure
on my system. But, I remembered all your advice about reproducing failures,
particularly the advice about working with the failure on the system where
the failure was occuring. I bit the bullet, brought the board back
to the FAE, spent 20 minutes creating a development environment on the FAE's
laptop, and...
The problem was that the FAE had a previous version of the board support
software installed. But I had asked the FAE about that, and he had
just installed the current software. Or so he thought. His laptop
used to belong to one of the guys in sales. A couple of months earlier,
my boss had created a special version of the board support software for a
sales trip, and had used the version number "1.5" for this ad hoc "release".
At that time, we were on version "1.4".
But now, the current version of our software was "1.5". So, when the
FAE did the install, the installer looked at the version number of the software
on the laptop, determined that version 1.5 was already there, and didn't
change anything.
I would not have found the problem if I didn't work on the FAE's laptop,
and that is something that I just wouldn't have done before I read your book.
© 2002 by David J. Agans
All content on this site is copyrighted.
You have permission to download, print, and otherwise distribute
the Debugging Rules poster, providing you use it in its entirety with
no modifications whatsoever.