A serious case of JustOneMoreBug
I just read Waking
Up from the Economy of Dreams, a pleasant essay about how Webmind, Inc.
went bankrupt in 2001 while trying to invent artificial intelligence.
The essay is an interesting read, mainly because the author seems to have
come out of the experience so... innocently. We were 3/4 of the way to a
real, working AI, he insists near the end of the story. It was just bad
luck that we ran out of money right as the .com bubble burst...
You might almost be able to believe him, except he also told the rest of the
story. The original development was supposed to take a few months.
To build the first sentient AI! Unsurprisingly (to me), it took longer than
expected. They actually ran out of money multiple times in the process, but
managed to land financing at the last minute each time. (Incidentally, that
sounds to me like a long string of good luck that finally ended, not
any bad luck at all.)
But okay, lots of startups almost run out of money, and just about everyone
underestimates the amount of work involved in their project. So what?
Well, the problem is that these guys felt sure, at each failure along
the way, that they were just one step away from having it finally work. And
when they finished that step and it still didn't work? Well, now
we're just one step away. We're almost there. We can feel it!
At NITI, we called this the JustOneMoreBug syndrome, spelled using WikiCaps
because it was a page in our wiki. It seems now that we must have been the
ones to invent that term, since I can't seem to find it in Google anywhere.
So with that in mind, I guess I'd better tell you what it is:
First of all, the fact that this was featured in our internal wiki probably
tells you something about our experience with it: ie. we had
plenty.(1) JustOneMoreBug is exactly what it sounds like: the
feeling that if you can just fix this one last bug, your software will work
perfectly, customers will come flocking to you, and riches will inevitably
ensue.
The frustrating thing about JustOneMoreBug is that every successful project
does have a moment exactly like that: the transition from
unreleasable to releasable, from unusable to usable, from unsellable to
sellable. And so if you're an optimist, you, like us, would prefer to
believe that this bug is your one last bug. And maybe it is.
Unless it's not, which becomes clear one way or the other shortly after you
fix it. Then what?
Then, if you're experiencing the JustOneMoreBug syndrome as opposed
to the JustOneMoreBug major life-changing event, you realize that
there's just... one more bug holding you back.
Fool me once, shame on you. Fool me twice, shame on me. You can get away
with claiming JustOneMoreBug once or twice per project - but if you go past
that, you have to stop and rethink. Why are there so many bugs that you
don't even know about yet? Believe it or not, really good programmers
will write programs that mostly work the first time, and the parts
that don't work can fairly easily be uncovered and solved. If your program
is fooling you about how stable it is, it's because your program isn't very
good. You need to stop and find a new strategy: often, by doing some heavy
testing and using the results to build a brand new multi-month development
schedule. That's bad news, because the project was supposed to be done
tomorrow. After all, there was just one bug left.
Webmind was on a multi-year marathon of JustOneMoreBug. I feel sorry for
them, because advanced research has a strong tendency toward that;
structured engineering principles just don't work for software
research projects. But it seems like their investors didn't realize
they were doing software research, and their researchers honestly
didn't realize - repeatedly - that the JustOneMoreBug feeling is just a
feeling, not a reality. And if the essay is any indication, they
still don't realize it; they still think they were almost there.
At least they didn't come out cynical.
Footnote
(1) NITI had two kinds of JustOneMoreBug experience. First, with
certain internal software projects (which is normal occasionally in any
software company, although if we'd been smarter we would have caught them
sooner). And second, with our business model: even if your product
works, if it's not selling as well as it should, there's a strong
tendency to believe that you just need to tweak one more thing about
your business and it'll take off. But just like with software, you
shouldn't fall for this trick more than once or twice. We fell for it
repeatedly, and that was our multi-year marathon. (Eventually the winning
fix wasn't a tweak. It was a complete re-analysis and redefinition of our
target market, and a corresponding total change in the way we dealt with
customers and resellers.)
June 29, 2008 23:29