The Godmother of Continuous Integation: An interview with Tara Hernandez

Continuous Integration existed before CruiseControl. Before Martin Fowler wrote about it. Of course, it always was a primarily a practice, but some don't know that there was a Continuous Integration server that existed before CruiseContol: Mozilla Tinderbox. Tara Hernandez was instrumental in developing the first version of Tinderbox, and I asked her for a little more info:

Q: Where did you start out?
A: Borland was a great place to start out (first real job out of college), and I learned a lot. However, the CEO was insane and there was a strong personality cult around him that made it hard to reign in his bad ideas. For example, Borland was really really well regarded with regards to its compilers and if had stuck to that we might have been okay. But Phillipe Kahn (CEO) had this idea he could beat Microsoft across all technical verticals and so started acquiring other technologies like databases and stuff. We had so many products that we were competing against ourselves in some instances.

Microsoft finally noticed and squished us like a bug. The team at Borland I was on (Languages) got totally pillaged. Microsoft lured away almost all the top talent, including our VP. They probably spent 10 million dollars on signing bonuses. It was a mess.

Anyway, I got hired at Netscape after about 3 years of Borland. Somebody I had previously known at Borland pinged me and told me of an opportunity at this new startup Netscape. I was the first build/release engineer hired, and I only had 3 years of experience at a very sedate well-established company under my belt. Best analogy I can think of was that it was sort of like jumping out of an 747 without a parachute. There wasn't a consistent build platform, even within the same general operating systems group.

For example, there were two distinct make systems in play in the unix world. The revision control system (CVS) only worked on unix at the time, so for Windows and Mac platforms we had to run this crazy software to export the local hard drives as mounts readable on the unix network, and then people had to run xterm sessions to do any SCM transactions. It sucked.

Q: What was the problem that caused you to need Continuous Integration?

A: It was the fact that we had 2 version of MacOS (68k and PPC), two versions of Windows (16 and 32 bit) and (initially) 8 versions of Unix. At any given time our ability to successfully generate a set of builds was close to nil. Things would work great on one platform, but not on 6 others.

The most famous of these was when Brenden Eich took out the world by checking in the use of a NaN in the early javascript code (not called that then of course, but that's what LiveScript turned into). Turns out NaN was totally unsupported by 60% of our platforms. Sadness. On the other hand, to show his contriteness he bought me and my team a whole lot of expensive booze, so that worked out okay in the end.

Tinderbox really evolved out of desperate self-defence, because it was almost impossible for us to do our jobs -- mainly, get builds out the door in a timely fashion, and let developers know as soon as possible that they broke something somewhere and to please go figure out how to get it fixed.

About Tara:

Tara Hernandez is a specialist in software engineering infrastructure having developed procedures and tools at assorted Silicon Valley companies. Her most notable stint was at Netscape Communications Corporation where she initially helped develop new tools such as Tinderbox, Bugzilla, and Bonsai, and later helped adapt those tools to a public environment after the creation of mozilla.org and the release of the Netscape web browser as open source. Now at Pixar Animation Studios, Tara and her team are reinventing development infrastructure to handle the challenges of writing software in a film production environment.

 

DevOps New Zealand