empirical engineering discussion (was: Re: [lug] Memory Leak Detection)
Nate Duehr
nate at natetech.com
Wed Apr 13 10:41:01 MDT 2005
Timothy Klein wrote:
>> Heh, funny that you used the phrase "poke the machines".
>> A friend and I were chatting about "empirical engineering" just a few
>> minutes ago, and we decided the best definition of that we could come
>> up with was "Poke at it until you fix it and then stop poking." LOL!
>
>
> I'm going to be a pedant and say that all engineering is empirical by
> default. Or am I missing some form of non-empirical engineering?
Ahh... we were specifically discussing engineers that have no connection
(either by choice or by corporate layers) to the real world systems they
deploy... so the empirical feedback loop isn't closed, and they forever
release real crud.
The cliche' is: Any engineer who's always done all his/her work on
paper* and never deployed anything to the "real" world, or written code
to sell that they had no intention on ever testing in enough scenarios
to simulate the "real" world correctly... i.e. Type in code, run once,
check-in to revision control, release.
* Today it's usually Visio diagrams.
There's plenty of engineers in telecommunications that never set foot in
a Central Office and their only input to their development process is
from trouble tickets escatlated slowly up through three or four layers
of people. They don't get much chance to be "empirical". Maybe at a
microscopic level to fix a particular bug report, but they have
virtually zero idea what really happens out where the equpiment actually
gets used until the inevitable escalations happen after a deployment.
A case in point that I can probably get away with without causing myself
too much trouble: Whoever the hardware engineer is on the three products
the company I work for (products released over 10 years time) has never
worked in a Central Office installing one.
How do I know? The screws are smaller than a #1, they're non-Phillips
and the only good thing they did was make them captive so they can't
fall out. But they should be a larger size and Phillips... and should
have been for the past two products.
But they keep using the tiny little captive ones, and ironically our
customer support keeps buying and giving away tiny little screwdrivers
to customers because they're always hunting for screwdrivers small
enough. Pretty little screwdrivers with the company logo(s) over the
years has been the "fix" for this problem. Heh.
The "empirical engineers" in the group take extra screwdrivers along
with them and a long string and TIE THEM TO THE EQUIPMENT. Heh... not
the "best" solution, but at least the customer has the tool at hand when
they need it.
If the guy who did the original design had any way to close his
"empirical" loop, and see how much grief the tiny little screws cause,
he'd surely redesign the faceplate and mounting mechanism in the next
product! :-) (Worse, this cascades into other engineering small but
significant screw-ups -- no pun intended! -- like I don't think I've
ever seen a way to report a "bug" against the HARDWARE... most engineers
building trouble ticketing systems don't think about that! I'm sure
it's in there somewhere, but the number of software tickets vs. number
of hardware tickets is probably 99 to 1, and the process isn't much
used... because it's a foreign idea... a bug in hardware?)
It's another example of a place where if someone could close their
"empirical" loop by sending a note... ("Hey where do I put a defect in
against the screw not being big enough?" -- again, no pun intended.
Hah!) the next revision might be more intelligent about such things.
The fact that it's easier to "close the loop" on open-source software
(usually), is one of the reasons I like it far more than closed
software, where it's virtually impossible to get anything but highly
filtered feedback back to the original engineer/hack that wrote it in
most companies.
Open-source developers don't LIKE the way it feels to get a flame-mail
saying, "Man does your software SUCK!", but it is a better "closing of
the loop" than a whitewashed trouble ticket with politically correct
phrasing that's been shared with four managers on spreadsheets and other
documents before the poor engineer has ever seen it! :-)
Some of the stuff I've read about how psycho Steve Jobs has been (and
probably still is) at Apple seems to relate to this... he bursts out
into (some say drug-induced) rages at his engineers when something isn't
"beautiful" or "it sucks". It's very very rare for engineers to get
this type of EXCELLENT feedback loop closure. (Of course, Steve
apparently takes this way too far, but I bring it up to elicit an
emotion from those that have read the stories. Actually Steve's
probably just an ass, but hey ... you all probably get the emotional
idea here...)
These are some of the weird things I lie awake and think about some
nights... how in the world do large companies with 20 layers of
protection around their engineering talent ever survive and release
things their customers actually want...? I honestly don't know sometimes!
Nate
More information about the LUG
mailing list