July promised to be an interesting month, along with a moment of zen. The bug story transcends two continents, five companies, six years of percolation, and a line in the sand found to be drawn through XP SP1. The story is that of SoftICE and DriverStudio. These two legacy tools of DevPartner heritage came across to Micro Focus from Compuware, who got them when acquiring NuMega. Those are the first three companies in this drama. A license holder of Driver Studio contacted us and said they’ve been using DriverStudio successfully on a contract project, and they wanted their customer to get their own license, such that for their turnkey effort the client firm got a complete toolchain and could do their own maintenance there forward. Add these two companies and that makes five. The client firm is in northern Europe, whereas the rest of us are in the US: there we have two continents. The six years of percolation demarks the span since Compuware prepared the final GA builds of both SoftICE and DriverStudio and today when we have someone trying to revive these long dormant tools. Starting in May and ending in July we finished the archeology into the legacy licensing system, the legacy serial number generator, and secured the final bits and build documentation. The last piece of the puzzle was answering the question “will this still work?” The answer was a resounding “Yes, but…” meaning it took a special bit of voodoo to revive these long dead products. Where is the bug? The bug was a matter of determining the end of the actual support matrix, not the documented one. There we come to the line in the sand through XP SP1. We knew that the tools—particularly SoftICE—could not handle USB keyboards or mice, so we fell back to PS2 peripherals. The product would start, but you could not see it. The bug turns out to be a limitation in the SoftICE universal video driver: it could not handle the color depths of modern video adapters, rather it would only work in 16-bit color. There was certainly a Eureka! moment in the lab when that last limitation finally got resolved and was understood. Could we have guessed that would pose a problem in retrospect? Hardly!
What is the lesson here? Is it: “don’t give up, lightning may strike and you will find the answer!“? I think it is deeper than that. As software engineers, we’re all trying our hardest to do right by the customer. But what happens when your customer asks for something “impossible”? On the surface, this is one of those times: a legacy product, not built in half a decade, against a platform all but abandoned by its vendor, on a system with peripherals you might be lucky to find on EBay, with security padlocks intentionally in place to prevent people from running it. I find it fascinating that engineers can still manage to break through these barriers when engaged with sufficient tenacity, courage, and creativity. I also find it encouraging to see that once you’ve built an application that truly aids others accomplish difficult tasks—ala performing self-resident kernel debugging the way SoftICE does—it will likely outlive its intended commercial life by years, decades, or longer. I hope we all find ourselves working on such products at some time in our careers.