From: www.itworld.com

Keeping Bugs at Bay

by Dan Blacharski

July 23, 2002 —

 

"All large computer programs have bugs," states Mike Spertus, cofounder
of Geodesic, a Chicago company that offers performance and availability
management software. Simply stated and true. "Even if you get bugs out,
you put in new ones." Indeed, according to the SEI, about 60% of code
changes introduce new defects--so the goal of 100% software perfection
is elusive, a high-tech nirvana we strive for but never quite achieve.
We can only hope to come as close as we can, and to mitigate the results
of the ones that get through.

Developers have plenty of tools at their disposal to write programs with
fewer bugs -- debuggers, diagnostic tools, management tools, and
methodologies, all of which are useful and help improve code accuracy.
Nonetheless, regardless of how many of these tools you use, there will
always be bugs. It's a fact of life. But when you're trying to run an
e-commerce platform that plays to an unlimited number of users, even the
smallest bug can cost money in terms of lost opportunities. "You're
going to run imperfect software on limited hardware, and it can't fail,"
added Spertus. "Those three things don't go together."

The next best thing to 100% bug-free software (not gonna happen) is to
have a self-healing system whereby the symptoms of software bugs are
stopped before they can cause any damage-a sort of a stopgap damage
control measure to keep problems from occurring in between code
rewrites. Geodesic has developed this technology.

The Geodesic system recognizes the symptoms of software flaws as they
occur, and then corrects them on the fly. Think of the software flaws as
a leaky roof, and Geodesic as the bucket you put underneath it. You
still need to fix the leaky roof, but in the meantime, it's nice to have
that bucket to keep the leak from ruining your carpet.

Here's one example of what the system does: a common error in
long-running e-commerce server programs is memory leaks. If you have a
program that has memory leaks, Geodesic Runtime Solutions doesn't
actually change your code and fix the problem, but it does watch for
leaks to occur, and when memory is leaked, it goes in and cleans it up,
and issues a report that informs IT staff of the problem.

The system takes an innovative approach to a problem that is getting
more and more vexing, for two reasons: First, programs are getting more
complex, and second, development cycles are getting shorter. The days of
two-year development cycles are over. In a 60-day cycle, which is more
common now, it's impossible to spend two weeks tracking down a bug,
despite the risks inherent in deploying less-than-perfect code. Having
this sort of protection at runtime is the only way to work on a short
cycle and still have an e-commerce system that works.