Sun

Dec 3
2006

Marc Hedlund

Marc Hedlund

Engineering Management Hacks: Exupéry's Axiom

If you want to build a ship, don't drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea.

Antoine de Saint-Exupéry (attributed)

There are a lot of ways to build bad engineering teams, and very few ways to build great ones. I've come to believe that the attributed quote above spells out pretty much the only way I know how to build a great development group. (If you can't stomach the poetic misuse of "axiom" in my title, call it "The Little Prince Method" instead -- yup, same Saint-Exupéry.) Belief in this idea seems almost religious -- you either get it or you don't. There's no logical proof that supports it, just a bunch of anecdotes that bear common themes. If you accept it as a guiding principle, you can easily derive from it a small set of rules that guide engineering in the right direction. If you do not accept it -- and I would say that nearly all executives, investors, pundits, and even engineers in the software industry do not -- then it will seem like lunacy to run a development group on this idea.

I was recently asked how I run our development team. I said, "Well, basically I blog about something I think we should do, and if the blog post convinces the developers, they do it. If not, I lobby for it, and if that fails too, the idea falls on the floor. They need my approval to launch something, but that's it. That's as much 'running things' as I do, and most of the ideas come from other people at this point, not from me and my blog posts. I've argued against some of our most successful ideas, so it's a good thing I don't try to exert more control." I'm exaggerating somewhat; of course I haven't blogged about all of our ideas yet. But I do think of myself as Lobbyist-in-Chief, and I have lots of good examples of cases where I failed to talk people into an idea and it didn't happen as a result. One person I said this to asked, "So who holds the product vision, then?" and I replied, "Well, I guess I do," but really that's not right. We all do. The product is the result of the ideas that together we've agreed to pursue. I recruit people based on their interest in and enthusiasm about the ideas behind Wesabe, and then set them loose, and we all talk and listen constantly. That's how it works -- and believe it or not, it does work.

I've heard lots of ridiculous ideas about why Google has been able to recruit so many great people, and anyone who thinks it has to do with use of logical puzzles in interviews is out of their freakin' mind. I don't believe any single interviewing technique, nor any combination of techniques, is repeatably great at finding the best engineers (as I said in my VCAT post earlier this week). I attribute Google's success at hiring to three things primarily:

  1. I suspect that several of the early leaders of Google's engineering group (I'd identify a chain of Larry Page, Urs Hölzle, and Wayne Rosing from the people I've encountered, although I'm sure there are others I haven't) have golden guts about hiring developers and keeping them happy, and were able to find and recruit people using whatever techniques work for them individually;
  2. Google has a very clear and memorable idea about what they do -- organize the world's information and make it universally accessible and useful -- and by luck or design or both, that mission is at once admirable, idealistic, and lucrative; and
  3. past recruiting successes plus retention plus #2 have all snowballed, so that the engineers who have been hired make sure they hire other people they like and want to work with (which is the best recruiting technique of all), and people who would be great hires seek out jobs at Google.

I think most other things that have worked for Google flow from those three. For #1, you have it or you don't. For #3, it's happened or it hasn't. #2 is the best target you have for hacking your engineering management technique. Are you working on a great project? Do you have a clear statement of what it is? Do you promote it out to the world so everyone knows what you're doing, and the people who love the idea will come find you?

If not, you're left with applying strong doses of money, hope, command and control, and baling wire (to tie down the developers who want to go work at Google instead). I'm not saying baling wire won't work for a while -- it can. The more common name in the industry is "golden handcuffs," by which is meant a very strong economic incentive to stay. But Google did not start out paying top dollar for engineers; far from it. They started out teaching people to yearn for something vast and endless and amazing, and that works.

Let's take a counter-point to see this more clearly: what is Yahoo!'s mission? What sea is it they want to sail? I have no idea. If I've heard it, I've forgotten it, while with Google I was able to type it in off the top of my head, nearly word-for-word, above. There are a lot of great people at Yahoo!, but I don't think they applied to work there because they have a clear, common goal to pursue, and at least some of them seem to agree.

The best way to get developers to build something great is to make them believe your goal is worthwhile. If you do, control from the top will not only be unnecessary; it will be impossible. That's the best situation you can hope to create, and frankly I love that so many people don't believe that, since it makes things so much easier for those of us who do.


Previous engineering management hacks:


tags:   | comments: 15   | Sphere It
submit:

 
Previous  |  Next

0 TrackBacks

TrackBack URL for this entry: http://blogs.oreilly.com/cgi-bin/mt/mt-t.cgi/5092

Comments: 15

  Henrik [12.03.06 05:39 PM]

Now that's a bloody good post :)

  Tim O'Reilly [12.03.06 08:42 PM]

How true, Marc. I have a more self-deprecating version of this story, likening my management style to the 50's musical The Music Man, about the con man who teaches kids to play band instruments with "the think system." He hums a tune and asks them to figure out how to play it. And surprisingly (at least in the context of the movie), it works.

I do have to say that I don't think I've been anywhere as good at humming the tune as I need to, mostly because I sometimes let myself get talked out of the radical parts of my vision (or melody, to keep the metaphor consistent.)

You outline a process that also has a lot of luck in it. If Google hadn't found the powerful economic engine, they wouldn't have found it as easy to stick with the vision. The two reinforce each other.

But as Thomas Jefferson once said, "I'm a firm believer in luck, and the harder I work, the more I seem to have of it."

So keep at it!

(And let me add: GREAT POST!)

  Bryan O'Sullivan [12.03.06 09:29 PM]

Wonderful post, indeed. I've worked at a few shops that we ran this way, and there's nothing like it.

What's miraculous is preserving this spirit across a liquidity event. I've been through a few of these (three - in each case a buyout), and in only one case was it a success. The team stayed intact, managed to make use of the sudden increase in resources to better leverage its market position, and did great in the marketplace. We could simultaneously relax, because we weren't focusing on keeping the company afloat any longer, and start to think with a longer horizon. The result ranked as one of my most memorably pleasurable jobs.

If you're relatively new to the employment world, and you find yourself in a good work situation like the one Marc describes or the one I just mentioned, study every aspect of it like *crazy*. Good environments don't just happen by accident; thoughtful people like Marc create and sustain them, with deliberation.

  Marc Hedlund [12.03.06 10:19 PM]

Thanks for the great comments. One of the shops Bryan mentions is one of the models for what I'm hoping to build at Wesabe; I agree with him that it was an amazing place. And Tim, the self-deprecating part of the post was in the first line: "There are a lot of ways to build bad engineering teams..." -- I know because I've built some of them. :) "Good judgment comes from experience; experience comes from bad judgment." I hope this time around I exhibit some more good judgment and and get good experience from the rest!

  Eric Costello [12.04.06 06:52 AM]

Great post.

The extent of the success we've had with Flickr is in large part due to Stewart Butterfield's similar approach to running our ship.

  Bob Waldron [12.04.06 07:13 AM]

Very timely and well-written post, Marc. It reinforced the message in the book "Innovation: The Five Disciplines..." (currently being read) that we should work on important things, not just things that are interesting to us.

Your leadership technique sounds somewhat what Jason Fried espouses. If you guys haven't talked, you might consider doing so.

A project is in the formation stages in the midwest to work on a challenging but inspiring goal. If you'd have the time, we'd love to get your feedback regarding the "idea/mission/vision" statement to help us improve it.

Keep turning your thoughts into words and making them available to others on O'Reilly Radar. It's certainly appreciated by many of us on the receiving end.

L'Chaim!

Bob Waldron

  Owen [12.04.06 10:28 AM]

I'm so tired of this blogorgasm over how awesome Google's Engineering culture is. Here are my thoughts on the topic of Goooooogle...

Most software projects that are (business critial / make money) are by nature boring. Trying to make it inspirational is a waste of time. Google started the same way every other dumb SF startup started (they buy into the aeron chair drink the koolaid thing, obviously), it's just
that they hit a homerun and made a bazillion dollars. Gee, that's nice for them. This is about envy. It's not a lesson to be learned and applied elsewhere.

All the neat XP stuff they do works because they have 5000 talented engineers and obviously the one thing they have that EVERY OTHER COMPANY DOESN'T, is a large number of guys who can program their way out of a paper bag. Try any of that shit with 5 mediocre and stressed out hacks working 60 hours a week on a boring but business critical project that's 6 months late. Most places I have worked assign tasks based on a balancing of who is going to fuck it up less versus who is overworked the least mixed with several rounds of "Oh, that's Bob's code, get him to fix it". If you've ever had to work on a piece of code written by "that guy" and cursed your very existence, then you might be a software engineer. The real secret is that ALL engineers are that guy to every OTHER engineer. Now you know.

Name ONE other company that has their zillion dollars, a clear goal (as you mentioned) if not a clear path on how to get there (they have one product that makes money and 100 that don't, which seems more like a 1% success rate in my odds book), the 5000 guys they've already hired, etc. Every other place I've worked at is desperate to hire good software engineers but everyone wants to work at google and nobody wants to work at a real company. Because that's just not reality. Reality is 10 years of grinding work rewarded by carpal tunnel syndrome, a stooped posture and a thousand worthless stock options. And not a million options either. Engineers don't get founder shares.

Gee, Google is so awesome. Do you know they can switch teams at will and work on different things if they want to? Wow. Ooh. They can probably go on vacations too without development halting for a week because there's more than one guy who can do what they do! Did you know they get bonuses if something they built makes a buttload of money for the company? In my experience, all you get is a pat on the back because that's what you were HIRED TO DO. Gee, with those luxuries, what could any of us accomplish? Probably not much, because even if you had the engineering team and the money, your idea is probably stupid.

You know how we run our engineering team? My boss tells me what to do and I do it. That's my job. That's it. I'm going to work on it until I decide to look for a different job for whatever reason. That's the mission statement here. MY mission statement. I don't drink the kool aid anywhere that I work. I did that when I was younger and all I got was a closet full of t-shirts from companies that aren't in business any more, half the pay I could have been getting somewhere that actually made money, and a bunch of worthless stock. My job won't be changing any time soon, and it's not going to get any cool fairy dust sprinkled on it no matter how much anyone blogs about it, because software development is not sexy. It's kinda boring and tedious and sucks most of the time but it's still the best job I've ever had. On good days, it can be pretty great. On average days, it's a job. All the rest is smoke and mirrors, and that's all this google bullshit is. It's geek envy, that's all.

Pay software engineers a good salary, give them a decent working environment and tell them what to do and they'll generally be able to do it. It definitely helps to know WHAT YOU ACTUALLY WANT TO BUILD and that it will take TIME and HARD WORK. That's what we do. We do like building software. But you can keep your dreamy dreams of magical inspiration and your fairy dust. Your engineers are probably rolling their eyes and nodding and wishing they were working at Gooooooogle anyway.

  Brad Greenlee [12.04.06 11:48 AM]

Actually, Owen, we aren't wishing we were working for Google. Marc's post was spot-on.

I agree that we shouldn't put too much weight on Google's approach to engineering management as the key to their success. There are certainly quite a few examples out there of successful products built with mediocre engineers.

However, if you think software development is boring and tedious, you're either in the wrong job or have the wrong attitude, or both. One of the reasons I love working with Marc is because he doesn't just tell me what to do. We all share some variation of a common vision and figuring out how to achieve that vision is a group effort. Sure, there are non-sexy things that have to get done, but I'm doing them because I know they have to get done to make our product better, not because Marc told me to do it. And I really want to make our product better.

In the end, if you don't believe in what you're doing, you probably shouldn't be doing it. Sure, work is just a means to an end for some, but we spend too much of our lives working not to enjoy it.

  Marc Hedlund [12.04.06 02:31 PM]

Hey, Owen,

My primary thought reading your comment was that it sounds like you've found the right job for you, and that others may feel differently. I think it's generally true that people who have control over their environment are happier, but not all people need the same kind of control to be happy. If your work environment works for you and makes you happy, great!

I do envy the quality of Google's products, the huge number of great people who work there, and their success. But, I've never applied for a job there, despite knowing people there for six years now. What I'm doing makes me happy. I do think there are some things they do that are completely worth emulating -- for instance, inspiring people with a great mission. You asked for other companies with a long list of qualities that only Google has, and of course there are none, but I certainly think there are other companies that have small, self-directed, deeply inspired groups of people building great products: Flickr (as Eric mentions above), Apple, and Amazon are three examples.

Thanks for the comment.

  Owen [12.04.06 03:19 PM]

Me again. I do appreciate you taking my comments seriously despite the profanity, and I admit it was kind of a rant. I view all Google hysteria through the coffee stained lens of hard won bitterness and experience. In the interest of full disclosure, I interviewed at Google once and did not get a job. I also worked for a publicly traded company and had the worthless stock options because I wasn't hired pre-IPO. I have also moved across country three times for jobs at startups, and I currently work for a startup company that I think has great potential. I work hard and I'm good at what I do. But I don't do the kool aid thing. I am naturally skeptical and anti-enthusiasm and I don't think I'm alone in that among engineers. A fellow engineer pointed out this post to me and said "Dude, you should go do your anti-Google rant thing here, that would be funny".

I wouldn't want to drink the Google kool aid, even if I worked there. And more so if I don't! I don't see why everyone is looking to them as an example of how to do things. I was trying to say that IT WORKS FOR THEM BECAUSE THEY ARE Google. The rest of us are not, and we all have to build things in the context of our own jobs and careers and companies, and the "rest of us" get plenty done that we feel good about.

I didn't mean to imply that engineering (or my current job) is tedious and boring. It certainly is to girls in bars, but I don't find it so! I probably should have said that a big part of the job is essentially concerned with implementation details, and a lot of the people who are really good at that stuff don't care so much about the grand vision, and certainly don't know how to translate that into a good product. It's all blah blah blah to us because we heard it at the last company and we will hear it at the next one. But we do care a lot about the nuts and bolts of construction. There are a LOT of steps between vision and implementation. If you just put the engineers in charge and give them unlimited resources and some vague long term goal, I think you end up with a lot of weak copies of existing ideas, like the vast suite of generally pointless Google applications.

I respect the job of Engineering Management a lot, and I have worked with some pretty good ones. However, the best projects and products that I have worked on have been the result of intense, myopic, near term focus on that particular project or product and making it really good. The long term "mission" is something that the CEO talks about once a year at the all hands meeting. The engineers go out afterwards and drink beer and make fun of it all, and get on with the job of building what we're told to build. That's just my perspective as a guy in the trenches though. Later!

  TunnelRat [12.06.06 09:41 AM]

Owen,

I too am sick of all the Google glorification. If every company made billions of dollars in profit, they to would be a great place to work for engineers. Google is basically an aberation -- the bottom line has no impact on what is essentially a playground for the hypersmart. Yes, they do come up with some great stuff, but it sounds like the most indulgent technie sandbox in the world.

I myself have to deal with schedules, weak developers who couldn't care less about technology, and clueless Ludite managers. My world is one of deadlines and profit motives. Trust me, once Google's margins shrink back from the stratosphere, they'll be just another hi-tech sweatshop. There is no genious that made Google a great place to work. The genious was finding an idea that made billions. Once the money flows as easily as it does at Google, the "great place to work" stuff follows.

People there are "inspired" and "amazed" becuase of one thing -- the cash cow that is pay-per-click. The rest of us live in the harsh reality of Owen's world. To keep holding Google up as the panacea of engineering culture that should, and can be, emulated by the rest of the world is delusional.

  Mike [12.06.06 11:51 AM]

I have to agree with Owen and TunnelRat here.

Without meaning to take anything away from Google, they are an aberation. They have a decent search engine, and used that to build traffic. Then they took someone else's idea and made it mainstream with that traffic. And that is where all of the money comes from. Now it is just a matter of throwing other stuff out there to try to trap eyeballs on GoogleWorld. They can afford to not care about the outcome as long as the AdSense franchise isn't threatened.

In this country we have a habit of listening to people who have been successful, and this isn't necessarily a bad thing. It just needs to be kept in context. When they are riding high everyone listens, wanting to believe they are a few steps away from getting there too. It simply isn't true. Success of that magnitude always has a health amount of luck behind it, and there are relatively few categories left where someone can take a $6 billion bite starting from zero. We happened to have a few of them in a span of 10 years, but it is historically absurd.

Google will continue producing outstanding work for some time with all of their talent and financial muscle. Assuming that what they do has any relevance to how the rest of us do our jobs is pretty ridiculous, though. It isn't because the rest of the world "doesn't get it" but because we all don't have a cash cow in our barns.

-Mike

  Ezekiel [12.07.06 10:41 AM]

Most software companies can be made to resemble Google, with revenue of tens of millions per software developer. It takes a carefully created framework. Google is one such example of that framework. MSFT, IBM, and Sun are other partial examples of similar success. Imagine 40 programmers bringing in $400M per year. I saw that in a non-googly environment. That is why these articles about Google keep appearing. It is possible. We want the environment, the success, and the satisfaction.

Would your company value (and pay) you more if you bring in $100k/year or $10M/year? It pains me to be of low value due to a company's environment. I might as well be be a barista.

That reminds me of the Cupertino bubble tea shop that seemed to serve at least 5 customers per minute instead of just 1 or 2. Same idea. Good software is a lever.

  Ed M [12.29.06 07:34 AM]

Here is a clip from Jim Collins where he states that the question of having the right people on the team (or using his analogy "the right people on/off the bus") is a huge time consuming part of a business.

  Ministry Guy [09.13.07 07:34 PM]

My love for Google has always been pretty nebulous. This kind of solidifies and, I guess, justifies it. :)

Post A Comment:

 (please be patient, comments may take awhile to post)






Type the characters you see in the picture above.

RECOMMENDED FOR YOU

RECENT COMMENTS