During my time at Mentor Graphics, I was always looking for technologies and technology companies that could be integrated into the product lines for which I was responsible. In a start-up, one generally looks to build new things; in an established company, it’s often possible to create value by combining multiple things into a more comprehensive solution. Since I was managing C and C++ software development tools for embedded developers, I was interested in anything that could make those tools better.
Debugging software programs (i.e., fixing them when they’re broken, which is almost always) is hard. In fact, some engineers say that debugging drives them crazy, which is sometimes literally true. Engineers tend to have conversations with their debuggers that go like this:
ENGINEER: What is the value of x?
DEBUGGER: The value of x is 3.
ENGINEER: That can’t be! The set_x function makes sure that x is always even!
The engineer is now denying reality, a classic sign of insanity.
And, so, I became interested in Undo Software.
Traditional debuggers use “stop and stare” technology; when the program crashes (“stops”), the user can look (“stare”) at the state of the program to try to figure out why it crashed. Unfortunately, it’s often very hard to figure out how the program got to be into its current state. UndoDB (Undo’s flagship software) allow users to record, and subsequently replay, Linux applications. In the situation above, the Engineer could ask to reset the program to the point right before x got set to 3 so that the supposedly impossible event can be observed — and then eliminated. You can think of UndoDB as “Ctrl-Z for software”; it gives you a way of undoing things your program has done.
After some exploration, Mentor and Undo decided that the time was not right for a business partnership. However, Greg Law, the CEO of Undo, did not take undue offense (pun intended). Over the past couple of years, we have gotten together to discuss Undo’s progress and strategy. I was honored when Greg asked me to join Undo’s nascent Advisory Board.
In fact, “Join a start-up advisory board” was one of my Key Results (under the “Participate actively in the start-up ecosystem” Objective) for Q4. (If “Objectives & Key Results” isn’t part of your vocabulary, check out okrs.com.) So, here was the perfect chance to do something that I particularly wanted to do. I’ve enjoyed my conversations with Greg, I know a lot about debugging technology (including the “reversible debugging” technology Undo uses), and Undo is growing nicely. But, before I agreed, there were two issues that I felt it was important to resolve.
First, I wanted to clearly define the responsibilities of the advisors. All-too-often an Advisory Board is just a list of names on a web page. To be useful, advisors should be actively engaged with the company. At the same time, advisors aren’t employees of the company and are not part of the day-to-day operating team. So, Greg and I worked together to clarify the level of assistance expected. I will be providing occasional strategic assistance, and will endeavor to help Undo (a UK-based company) expand further in Silicon Valley.
My other concern was my compensation as an Advisor. In addition to the obvious motivation (avarice), I wanted to be sure that I was likely to provide significant value to Undo. If, in Undo’s opinion, my contribution was not worth very much, then the relationship was not likely to be mutually beneficial. I would far more work with a company that believes that I can help it to be successful — and, as companies can only have so many advisors, they should seek out advisors who are worth compensating. Fortunately, this issue was easily resolved as well.
So, I am now pleased to be a member of the Undo Software Advisory Board. I greatly look forward to working with Undo and the other members of the Advisory Board, and hope to play a small role in its future success.