« Proprietary 3D For All! | Main | Responding to Autodesk Audits »

A story about NURBS and bugs from Ken Versprille

The most interesting conversations at any industry conference are usually held in the bar of the host hotel.  If you want to learn what's really going on with a company (or an entire industry, for that matter), just go to the bar after all the meetings of the day are over, find a group of "mature" people sitting around a table covered in half-full glasses, and pull up a chair.

Fortunately, I've been in the CAD industry for long enough that, when I do this, I can usually find someone I know, or someone who knows me.  (A few years ago, when I was unexpectedly barred from attending Autodesk University, I just found the bar, and spent time visiting with friends, both new and old, including some who worked for Autodesk.  Those conversations made my trip worthwhile.)

Last week, I was at SolidWorks World, and spent an interesting evening at the hotel bar, chatting with, among others, Ken Versprille.kenVer.jpg

To be respectful, I ought to call him "Dr. Ken Versprille."  He's earned the honor.  His doctoral dissertation was the foundation for NURBS, the curve and surface math used as the basis for modern CAD software. He tells a bit of the story in the book An Introduction to NURBS: With Historical Perspective, by David F. Rogers.  You should be able to read the relevant part (pages 175-177) here, in Google Book Search.

Here's a bit more of the story, as related to me by Ken (over several glasses of wine) last week:

After college, Ken went to work at ComputerVision (CV) as a programmer.  One of his first assigments was to write code to handle splines.  At the time, as you might imagine, he was interested in working on NURBS.  His boss, however, was more concerned about schedule, and told Ken to implement the code using (much simpler) Bézier curves.  He also gave Ken a very short deadline to get the work done.  Grudgingly, Ken got started. At the appointed hour, with no time left, he literally wrote his last line of code, compiled it, and ran it.  And it worked right -- first time.

Some years later, after Ken had moved up the management chain, CV decided it was time to start supporting NURBS.  The programmer responsible for the project came to Ken, to get guidance on how to do it.  Ken gave him only one simple instruction:  Go to a particular source code file, change the setting of a flag from 0 to 1, then recompile the software.

Ken had, from the very beginning, implemented NURBS.   He'd just never enabled it.

The important part of this story, beyond the Dilbert-like character of doing an end-around run on a pointy-haired boss,  has to do with bugs.

Because Ken had never enabled the NURBS code, it had never been tested as a whole.  However, as a part of his development process, Ken did unit testing, where he validated each individual unit of source code.  In the end, when the code was finally enabled and tested, there were only two bugs -- a fact of which Ken is justifiably proud.

Posted on Tuesday, January 29, 2008 at 01:07PM by Registered CommenterEvan Yares in , | CommentsPost a Comment

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
All HTML will be escaped. Hyperlinks will be created for URLs automatically.