
A Day in the Life of... Stuart Cheshire
Name: Dr. Stuart Cheshire
Title(s): Wizard Without Portfolio (See http://www.theideabasket.com/index.php/article/articleview/30/1/0)
Company: Apple Computer
Web site: http://www.stuartcheshire.org/
What I work on: All aspects of how computers communicate with each other, and how computers and humans communicate with each other (See "Wizard without Portfolio").
How I arrived at my present job: In the 1990s, while at Stanford, I wrote the multi-player network shareware game Bolo, which was a big hit at places like Apple. I was also vocal, even back then, about the abysmal state of ease-of-use for computer networking. When the good people at Apple heard in 1997 that I was close to finishing my PhD, they called me up and asked if I'd like to go and work there to pursue my goal of networking ease-of-use. I think the lesson from that is that if you do good stuff and make it freely available -- like good shareware software, quality research publications, useful web content, and the like -- that says a lot more about you than a plain old CV or resume.
How I organize my day: Having children significantly reduces your choices in such matters. I take care of my daughter in the morning before work, then I go to work, then I come back and take care of her in the evening after work.
On most days I work in my office at Apple so I'm available if people need to ask questions. However, if I have a lot to do and/or an important deadline, then I clear all the meetings from my calendar and work at home to avoid distractions. Constantly checking email is another distraction, so when I'm working at home I often quit my email client and don't even look at it for a day -- or more -- until the priority work is complete.
Amount of time spent working daily (at home and office): When I was younger and didn't have a child to take care of I would sometimes work until late at night, and sometimes all night. These days, it's a strict 9-6 job, or sometimes 9-7. It's a rare day that I work past 7pm. After my daughter is asleep I catch up on the day's email on my laptop at home before bed.
What I do to get myself thinking creatively: Getting away from the computer is important when there's a difficult problem to solve. When you're in front of the computer it's easy to waste your time on the daily trivia. There's always something to be done: email waiting to be answered, bug reports awaiting diagnosis, requests for meetings, voice mail to check, maybe a new version of the build tools to install. There's always a new test build of the OS to install (but if you don't do it today it doesn't really matter -- there will probably be another new one tomorrow).
Even when you're in the editor typing code, you're still distracted by side-tasks: what variable names to use, what to write in the comments, which file a new function definition should go in, etc.
It's when I'm away from the keyboard and mouse that I find I can think about the problem in it's pure form -- unencumbered by the software engineering constraints of how to type it into a compiler -- and that's when the truly elegant algorithmic solutions come to me.
My problem-solving strategy: If you mean tricky unsolved problems, my solution is to make time to think about them without distraction.
If by "problem-solving" you mean diagnosing and fixing bugs, then my strategy is the basic scientific method that we were taught in school, namely controlled experiments. You form a hypothesis, then you devise a repeatable experiment which will confirm or refute that hypothesis, and then you perform a controlled experiment and observe the results. What "controlled" means in this context is the same as any other science: you only change one thing at a time. You wouldn't believe how many times I see bug reports that go something like this: On my desktop Mac running OS X 10.1 on Ethernet in the office at work, Internet Explorer connects to Yahoo fine, but on my laptop running OS X 10.2 using the Starbucks wireless network, Safari won't connect to Google at all, so there must be a bug in Safari. I'm exaggerating, but only a little. All too often people make no attempt at all to narrow down the cause of the bug before filing a bug report.
What I do to relieve stress: Oh, that's easy. We go to Maui and spend a weekend at the Hyatt Regency on Ka'anapali Beach.
My hero, mentor, or person that I admire and why: David Cheriton originally taught me most of what I know about networking, and Mary Baker then taught me how to do that work in a way that makes publication-quality research papers. John McCarthy taught me that just because you're in your 70s, that doesn't mean you're too old to still be one of the foremost computer scientists in the world. There are many more people I could list, but the more I listed the more I'd feel bad about the remainder I left out.
What I do to mentor those who work for me: Taking the time to explain principles is very important, instead of just giving answers. It's the old analogy about giving a man a fish to eat, or teaching a man to catch fish for himself.
People who know me will tell you that when I have a strongly-held opinion on some subject, I'll say so and explain the reasons why, a trait that was firmly reinforced in my time working with David Cheriton.
How a negative event changed my life in a positive way: All negative events are opportunities to learn. The death of a loved one teaches you to make better use of the time you have with the rest of your family. If your hard disk crashes it teaches you to get a tape drive and start doing regular backups. The tragedy is when you fail to learn from a negative event and just make the same mistake again.
One event or decision in my life I wish I could go back and change: I regret never finishing my game, Bolo. On the other hand, if I'd finished that, I might not have finished my PhD, or started work at Apple, or created Rendezvous.
Second-guessing past decisions is a bad idea. There's no such thing as a decision without consequences. You can't go back in time and change one thing without it having a long chain of consequences. That's the message of so many science fiction stories. So, for us in the real world, I think the lesson is that it's easy to imagine only the positive consequences of making a different decision, and to overlook all the negative consequences. Instead of thinking how things could have turned out better, be glad they didn't turn out a whole lot worse. If you agree with my previous answer about negative events, this becomes trivially true: If you learn from every bad thing that happens, then a bad thing that didn't happen is missed lesson, and not learning that lesson at that time might have lead to you making a much bigger mistake later on.
What values are the most important to me and what I value in others: Whatever you do, do it well. There are people in this world who have crummy jobs, and do them badly, and pretend that they'll care about doing their job well just as soon as they get promoted into a good job. Those people will spend the rest of their life in crummy jobs, doing them badly, and complaining about the unfairness of the world. Do you do poor work because you have a crummy job, or do you have a crummy job because you do poor work?
My father taught me the importance of always trying to do what's right, and the importance of having the courage to make your own value judgments, instead of just doing something just because "everyone does that." If everyone else at school is bullying some other child, then it is your own decision whether you want to be part of that or not. Don't just go along with it to be part of the crowd. There are drawbacks though. Thinking for yourself doesn't make for an easy life.
My whole work on Zeroconf and Rendezvous has been an example of challenging the expected wisdom. For the entire 1990s (and before) everyone assumed that IP networking was supposed to be hard, and nothing would ever change that. (There was also the other community of people who would tell you that networking wasn't hard at all, and they didn't see what anyone was complaining about. Even today there are people who will tell you that setting up a home network isn't difficult. That's not a reflection of how easy it has become; it is a reflection of how low their expectations have fallen.)
In fact, my involvement with Apple and the Macintosh at all is really an example of "thinking for yourself" instead of blindly following the crowd. When I first saw the Lisa in 1983, it seemed obvious to me right away that if you were given the choice between working on a Lisa, or working on a command-line DOS PC, you'd have to have your IQ cranked all the way down to zero to willingly pick the command-line DOS PC. Yet that's what the population did in droves.
What inspires, motivates, or gets me excited about my job on a daily basis: When I witness just one person using something I've done, like Rendezvous, and their life is made just a little better or easier or more pleasant by that, and I think of that being repeated thousands or millions of times around the world, that inspires me to continue my work.
For example, it was very rewarding for me to see people using the network printers at the IETF meeting in San Francisco in March this year. While the Windows and Unix users struggled through tedious setup instructions to configure their machines to connect to the printers, the Mac users simply picked the desired printer from the list that automatically showed up in the "Rendezvous" menu in the "Print" dialog box.
Biography: Stuart Cheshire (http://www.stuartcheshire.org) received the B.A. and M.A. degrees from Sidney Sussex College, Cambridge, U.K., in June 1989 and June 1992, and the M.Sc. and Ph.D. degrees from Stanford University, Stanford, CA, in June 1996 and April 1998. He previously worked on IBM Token Ring with Madge Networks, Little Chalfont, U.K., and is currently a Senior Scientist with Apple Computer, Cupertino, CA, specializing in Internet Protocols. He has previously published papers in the areas of wireless and networking and Mobile IP.