26.04.2015 Views

Founders at Work.pdf

Founders at Work.pdf

Founders at Work.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Ray Ozzie 105<br />

to work in a highly mobile fashion, behind the firewall, outside the firewall, and<br />

in a secure manner. So we went for a desktop architecture.<br />

Livingston: So this is a big problem th<strong>at</strong> you were approaching. How did you<br />

start?<br />

Ozzie: Before I start a company, I typically write a couple of founding documents.<br />

One of them is very outside-in: it’s a scenario-based document, describing<br />

the high-level challenge th<strong>at</strong> I’m trying to address and the end user<br />

scenarios th<strong>at</strong> we are trying to solve. This <strong>at</strong>tempts to explain wh<strong>at</strong> we’re trying<br />

to accomplish to anyone who joins the company or we might need to get financing<br />

from.<br />

Then I cre<strong>at</strong>e a second, bottom-up document describing the different technologies<br />

th<strong>at</strong> will have to be assembled to accomplish th<strong>at</strong> vision.<br />

The first thing we did in both Iris and Groove was get a big open office and<br />

recruit a core team of people. Generally these were people I’d worked with<br />

before, so I wouldn’t have to get past the trust issue involved in understanding<br />

wh<strong>at</strong> they are good <strong>at</strong> and wh<strong>at</strong> they’re not.<br />

And we’d just sit down with the whiteboards and just try to work through<br />

some of the more difficult algorithms, make key tooling decisions. Early on in<br />

Groove, we had a very big decision to make: do we do it in C++ or do we do it<br />

in Java? These types of decisions are important because you can never go back<br />

on them once you’ve started down th<strong>at</strong> p<strong>at</strong>h.<br />

In Groove’s case, there was a very risky piece of technology—a certain algorithm<br />

for synchroniz<strong>at</strong>ion th<strong>at</strong> we didn’t even know if we could do. And we didn’t<br />

want to hire more people and really get going until we knew we could<br />

accomplish it. It took about 3 to 4 months before we were confident th<strong>at</strong> we’d<br />

be able to actually build wh<strong>at</strong> we wanted to.<br />

Architecturally, Groove was a real contrarian play <strong>at</strong> the time. This was in<br />

’97, an era where most people were saying, “Things will move from other architectures<br />

to the Web.” We were basically saying, “The Web will hit its limits <strong>at</strong><br />

some point for certain applic<strong>at</strong>ions, and we want to go to a peer-to-peer architecture<br />

th<strong>at</strong> would complement the Web, not replace it.” For a certain class of<br />

applic<strong>at</strong>ions it would be very effective. It’s a masterless synchroniz<strong>at</strong>ion where<br />

people could do things like work independently on all these different peer<br />

nodes and the algorithms would get everyone in sync.<br />

It can get very complex when you have a dozen people and they’re in different<br />

subnets. Eventually these people come together and it’s complic<strong>at</strong>ed to<br />

make sure all the changes get applied in a uniform fashion for everyone. So we<br />

worked through th<strong>at</strong> on the whiteboard and then in a prototype. Once we were<br />

sure we could build it, we decided to hire the first 15 to 20 people and just<br />

embarked on the project.<br />

Livingston: Masterless synchroniz<strong>at</strong>ion was a novel technology th<strong>at</strong> you guys<br />

really had to work through?<br />

Ozzie: It had been done for years in a variety of settings—especially in an academic<br />

setting. But the commercial PC environment is a very harsh one. People

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!