Cater to Your Personal Pathologies

Managing your time, I’ve found, is mostly a psychological problem rather than a logistical one. Many books lay out a particular system – from the Covey quadrants to David Allen’s 43 folders to a sea of nifty acronyms. What I’ve found from trying them out, and watching others try to use them, is that a system only works if it matches your particular needs. More specifically, if it caters to what I call your pathologies.

We all have some idealized version of ourselves that we aspire to be. This paragon of virtue may never procrastinate, or always rise above temptation .. whatever takes your fancy. Then there is the actual, flawed, imperfect person we actually are. Many people try to use a system that ought to work, rather than one that does work (for them). Hence a sea of unused DayTimer notebooks, mountains of abandoned organizational gear, and endless hopping from one To Do app to another. If cosmetics are “hope in a jar”, then organizational tools are “hope in an app” (or for the traditionalists, “hope in a binder”).

So what do I mean by pathologies? I don’t know what yours are, but I’ll share some of mine.

I Hate Clutter

Some people feel comfortable surrounded by things. They naturally keep papers in piles and leave lots of things lying out on desks. Not me – I like a spare and streamlined work environment. How does this relate to being productive? A friend of mine built an elaborate set of rules for sorting his email. Messages were passed automatically to a lovingly organized cascade of email folders. It worked well for him and was really cool, and I thought I’d give it a try, too. Result: disaster.

All my mail would come in, be sorted into the appropriate category, and I would look at it and be soothed by its orderliness. The problem is that I achieved this calm and pleasing result without actually doing anything. I had to throw away the whole thing and go back to having everything pour into my inbox and annoy me. Then I would be motivated to clean it up, by actually looking at the mail, making decisions, and taking action.

I Like To See My Whole World in One View

When I’m figuring out what to do, I like to see everything that matters all at once. I get stressed out when there are things I need to be thinking about, but they aren’t in front of me so I’m not sure I’m remembering all of them.

I like to plan out my week every Monday morning, and for many years, I have used two facing pages in my notebook to show: the big projects I’m responsible for, any deadlines for the week or in the near future, active to do items, key appointments, top priorities for the week, and top priorities for each day. It is a challenge to capture all that in two pages, but I’ve found it to be a really good exercise – it forces me to think about what’s important and distill it. Each time I have a new kind of role, I have to change those two pages. What I needed to capture when I managed a big team was radically different than when I’m a team of one in a startup and mostly work by myself on a set of projects. I keep those two pages open on my desk most of the time, so I’m always reminded of the most important things that I’m supposed to do that day and that week.

I could keep going for a while (I like to write and draw on paper, I can’t use bound journals because pages can’t be inserted or rearranged, ..), but I’ll spare you, because the important thing for you is to figure out what your pathologies are.

Sleuthing Them Out

A good way to start is to ask yourself:

  • What system has worked well for me? What did I like about it? Why did I like using it?
  • What didn’t work? Did it fail (you kept forgetting to do something important), or was it too much overhead, or did you just stop bothering with it? Why?

Remember, this is not about some idealized vision of yourself, or what works for somebody else – this is all about you. When you answer these questions, especially the second one, try to avoid value judgments – it’s not constructive to beat yourself up with things like “I’m lazy” or “I suck at organization”. Stick to thinking about what you have tried, what worked, and (for the things that have not) why they failed you.

The answers might be psychological (“I like writing things on paper because it is more visceral and I feel more committed to getting it done”) or mundane (“I didn’t carry around the binder because it was heavy and didn’t fit in my bag”). Don’t scorn the details – your whole system can founder if you just don’t like using it. If the color of the notebook bugs you, or you have a fetish for fountain pens, pay attention. If you are using an app, the details of the user experience matter a lot. “This app made me set up all these categories and I just got lost – I need something simple.” Or “I hate looking at the interface – it’s ugly”.

Your “system” might be very informal – maybe you like post-it notes on your monitor. Or piles on your desk organized a certain way. As long as it works for you, that’s what matters. Try to figure out how to eliminate any friction that prevented you from using (or wanting to use) some solution. Try to enhance any quality that you really like.

At the end of the day, the measure that your approach works is that you know what is important and you get it done. Then you have created a magical accelerant for your life.

Kissing Frogs Part 3: Frog Dos and Don’ts

The first two posts in this series were from the point of view of the interviewer.  But suppose you are on the other side of the table?

Do’s

Do your research.  It’s really disappointing for an interviewer when a candidate doesn’t have the first notion of what the company or the team does, and it’s great when they have intelligent questions.  “I tried out your product, and it seems like one of your big challenges is integration with systems that customers are already using.  Is that right?  How are you handling that?”  So much better than somebody who doesn’t have a clue.  These days you can learn staggering amounts about almost anything on the Internet.  So check out the company, the project, and the people.

Do practice.  Interviewing is unnatural for most people.  You won’t have concise soundbites ready to roll out about the work you did in previous jobs.  You may be rusty or misremember the details.  It’s very, very useful to have some mock interviews before you go into the real thing, especially if you can do it with experienced interviewers who will be honest enough to give you candid feedback.

Do interview them.  You are preparing to commit huge amounts of your time to this team and this project.  It’s probably the biggest investment decision you are going to make – your time is your biggest asset.  So learn as much as you can while you are there.  Are these people you actually like?  Is the work inspiring?  Will you learn something and stay engaged for the long haul?

Do prepare.  Be ready for hard questions.  “Why didn’t you finish school?”  “Why do you jump from job to job?”  “Why have you been unemployed for the last two years?”  “Why did the product you worked on get panned by every review?”  Look over your resume through the eyes of a stranger (or ask another person), and think up the most difficult questions you can.  Answer them honestly, be open about mistakes (if appropriate), and tell people what you learned.  Don’t be bitter, don’t whine about your past co-workers .. be constructive.

Do be concrete.   I think the best questions are not open-ended and general.  But lots of interviewers use them, anyway.  Don’t meet vague questions with vague answers – ground your answer in detail.  Tell stories.  Not “I think I’m very results-oriented.”  Ugh.  Instead, “in my last job, I drove the marketing campaign for Jumble.  It was a tough push, but we delivered on time into five different channels, driving a positive awareness of 44% – the best result of any campaign our company had done.”

Do be passionate.  It’s deeply dull to listen to somebody drone on in a monotone listing facts and figures about their career.  Boorrrrinnngg.  It’s very interesting when somebody’s eyes light up as they share personal stories about things they’ve done that inspired them.  Find things to talk about that you are excited about, that you loved doing in previous jobs or educational experiences.  You’re a human being, not a resume – let people get to know you.  Share yourself and what you love.

Don’ts

Don’t assume!  If you aren’t sure you understand the question that you are supposed to answer, don’t launch off and answer it anyway.  You can ask, or you can explain.  Start by asking: “when you asked me to design an operating system, did you mean something like Linux, or something else like an embedded system?”  Some interviewers want you to dive in and don’t want to be interrogated, however.  You can usually tell immediately based on their reaction to your first question.  In that case, I’d stop asking and make some assumptions, but I’d be explicit about them.  “Ok, I’m going to assume unless you stop me that you want an operating system like Linux.  That means a general purpose server OS that …”  Then you are diving in and moving forward but are clear about the assumptions you have made.  In any case, don’t ask too many questions – the purpose of the interview is not to collaborate with your interviewer on defining an extremely precise question, it’s to show that you are good at answering them.  So make sure you spend most of your time on the answer.

Don’t be prickly.  Interviews are inherently awkward, and some people like to put you under pressure to see how you perform.  I don’t like that approach as an interviewer, and don’t use it, but many swear by it.  That means they are going to push you.  They’ll ask tough questions or brain teasers and watch you sweat.  They’ll push back on your answers, with varying amounts of respect, to see how you handle it.  Don’t freak out .. just stay calm, and focus on the answer, not how you feel about the situation.  That doesn’t mean that you should allow yourself to be abused or mistreated, but keep your cool even if the other person is pretty hard on you.  If you think of it as a test, and letting yourself get emotional is failing the test, that might help.  Don’t let them throw you.

Don’t be desperate.  This is easier said than done, especially if you ARE kind of desperate to get the job.  But realize that the odds may well be against you in any particular interview.  They may have a favored candidate lined up and are just checking to make sure they aren’t missing a bet.  You may be a bad fit for what they think they need in the role.  The more you build up the job in your mind and get wound up about how you absolutely have to get it, the worse you are likely to perform.  So be hungry, give it your best shot, but don’t think it all rides on that one interview, because life is mostly not like that.

Don’t lie.  This should go without saying, but a lot of people seem to think it’s ok to fudge on a resume.  Who is going to find out, right?  Wrong.  In the age of Facebook and blogging and LinkedIn, it’s crazy to be confident that you can get away with it.  If the employer finds out that you have been deceptive, that’s probably game over.  And the world is a small place, so there is every chance that they might tell the next company you talk to.  So in addition to it being immoral, it’s also dumb.  Just don’t go there.

I hope that these ideas help you prepare for your next interview .. good luck!

Kissing Frogs Part 2: Conducting the Interview

You’ve done all your prep, and now the candidate is sitting there looking at you.  You have an hour, at the end of which you are supposed to have a smart and insightful analysis on whether to hire them or not.  How do you spend your time?

Have Them DO Something – Don’t Ask General Questions

One of the most common mistakes is to ask open-ended softball questions.  “What are your strengths and weaknesses?”  The candidate then babbles on about how disciplined and passionate they are, and how their big weakness in life is that they just work so hard, and take things so seriously – they struggle under the burden of an extreme work ethic that was just the despair of their former managers.  And now several precious minutes of your interview are gone, and you haven’t learned a darned thing.

I think it’s infinitely better to ask them to create something.  Write code on the board for a multi-threaded lock implementation.  Write the Javascript code to update the notification count when a new message arrives.  Design a UI for managing notifications.  Design a set of metrics to monitor the state of the business.  Create a plan to track and land a milestone.  Whatever is appropriate for the job you need them to do.

If the design involves a skill they need to have, you will quickly see whether they really have it.  Many people can do a lovely job describing a design they know but are lousy at creating one.  Confronting a blank white board and having to invent something on the spot cuts through a lot of blather.  If it’s a skill they are still learning, you will also discover a lot in watching them try to tackle a real problem.

What To Look For

When I pose a design problem, whether the result is an algorithm or a visual design or a report or anything else, beyond the quality of the work, I’m assessing a number of other things:

  • Do they like solving this kind of problem?  Of course there is some added stress because it is an interview, but you can usually tell if they are enjoying the opportunity to dig into the problem or not.  I try hard to make an interview feel as much as I can like the real job – sometimes I will pose a problem that I’m actually trying to figure out at the time.  If they hate doing it in the interview, they probably aren’t going to love doing it all day long.
  • Do we make each other smart?  If we’re going to be working together in the future, hopefully we have a good working rapport.  Did the design conversation zip along efficiently and cover ground well, or were there constant misunderstandings and false starts?
  • Do they handle pushback well?  I always question some of their decisions (politely, of course).  How they handle that will tell you a lot.  The worst reaction is if they get mad, or they dogmatically insist that theirs is the best approach without explaining why.  Almost as bad is if they cave immediately and ask what you think they should do instead.  A great reaction is to explain the rationale for the original design, and to list a couple of alternative approaches and why they seemed less effective.  I hope they welcome new data, if I share something useful that would influence the design in a better direction.  In general, I want to know if they are passionate about finding the best answer, or about moving forward with their answer.
  • How do they handle underspecified problems?  I like to ask design questions without providing enough information, to see what happens.  The two most common failure modes are to flail around and to make wild sweeping assumptions.  If I ask you to design an airport, do you just freeze up, do you assume that it is LAX (rather than, say, an oilfield airport in Alaska), or do you ask?  In general, I’ve found that people who fall into either of those traps often have trouble if they get hired.  The freezers aren’t good at taking on hard new problems without having their hand held, and the assumers bull off in wrong directions and get themselves (and their teams) into a mess.

Other Questions I Like

 Once you have figured out whether they can do the work that is most important for your role, there are other questions that I’ve found effective:

  • Teach me about X.  Pick something that looks interesting in their resume – a skill they say they have, a project they worked on.  Have them teach it to you.  If it involves a design they did, ask them why they made certain decisions, and what they would have done differently in retrospect.  At the end of the discussion, do you feel well informed about the topic?  Any job I hire somebody to do will almost certainly involve explanations of complex topics, so it’s an important skill in its own right.  And, it will help you figure out how well they actually understood what they were working on.  If a very attentive listener can’t get a decent grasp of it quickly, they probably didn’t.
  • How would YOU interview somebody for this job?  This is a fun question, and I’ve found it is really useful.  It helps me understand what they think is important about the role and how thoughtful they are about testing for those characteristics.  It also reveals whether they have insight into other people and how to work with/manage them.
  • Share a great success and a disappointing failure in managing other people.  What did you do, how did it come out, and what did you learn?  If the person is interviewing for a management role, I want to know how they think about other people.  Are they insightful?  Do they passionately identify with the success of the people whom they managed?  If you are an experienced manager, you are pretty much guaranteed to have succeeded with somebody and failed with somebody, so you should have some interesting stories to talk about.  I also often pose a scenario – “Margaret is a superstar but runs roughshod over others, and you are going to give her a tough review calling her on it.  How do you prepare, what do you say, how do you handle it when she attacks you …”

Making the Call

At the end of the interview, you have to make a decision – “hire” or “no hire”.  Often, it’s obvious.  But if there is any doubt in my mind, I find it really useful to write down the reasons and talk them through with somebody else who has made a lot of hiring decisions.  By the time I finish explaining the analysis, I almost always realize that I’ve made up my mind, and can ground the answer in solid reasons.

The people you hire will largely determine how successful your team is, so choose wisely.  Good luck!

Kissing Frogs: Preparing for an Interview

One of the most important things you ever do is to interview people for a job on your team, and it’s hard to do it right – people don’t come neatly labeled.  But somehow, you need to figure out if this person is that great ingredient you can mix into the stew of your team and make it better.  I’m going to spend the next three posts on interviewing, and we’ll start with getting ready.

What Kind of Prince Do We Need?

We work at FriskyCo, a small technology startup, and we need to hire a great database engineer to design, build, and run our back end storage systems.  Let’s start out by making a very short list of hard requirements.  And really, these supposedly “hard” requirements are just “highly desirable” – somebody who has some other amazing strength might be a good bet even if they look very different from the person we thought we were looking for.

We’ll start with skills they need to have.  Ideally, our new hire would already be an expert in building, using, and maintaining highly scalable storage engines.  In fact, they’d have already done the job, with the same technology we want to use, for some other company.  Unfortunately, if we insist on that, there are a tiny number of people in the world who would qualify (the so-called “albino unicorn”).  We can hold out for that miracle, or we can accept more ramp and risk to get a broader candidate pool.

On the flip side, setting up a system like this is not for amateurs, so we aren’t willing to hire just any competent developer.  After a bunch of debate, we’ve decided we should look for these “hard” requirements:

  • Has built and deployed some kind of highly scalable system.
  • Is an expert at some industrial strength database system.
  • Is a skilled systems programmer.

But skills are not enough; it’s vitally important to assess team fit – whether the candidate will flourish in our team’s culture.  FriskyCo is a startup, which means we move fast and change our minds as we evolve the product.  They have to be able to handle uncertainty and not freeze or freak out.  They have to be inspired and passionate about the mission we’ve undertaken – we’re too small to have people who aren’t bought into the adventure.  We have a standard set of things we always look for as well around their nature – they are smart, not too arrogant, can handle pushback, and are driven to get things done.

Now we have a bottom line on what we need in a candidate (or at least what we think we need).  Note that we don’t have any requirements around education or “years of experience” – those can be useful indicators that somebody has what you actually need, but I think it’s a big mistake to focus on them rather than on your true requirements.

Architecting the Interviews

This is a crucial hire for us and we’re going to have a set of people talk to the candidate.  We’ve done a number of interviews together, so I have a pretty good sense of what each person does well.

  • John, the head of engineering, is a good all-around interviewer and does a great system design assessment.
  • Mary, the front end dev, has a good set of questions around designing a well factored database schema and a solid API.
  • Rajiv is good at straight coding questions.
  • I’ll test to see if they can handle our environment, if they have passion for the product, and if they have design insight.

By thinking about what each person should focus on, we are much more likely to get decent coverage.  Otherwise, everybody may ask coding questions and we won’t know if we have a good fit for the team.  Or, even worse, most people spend their time on team questions, and we don’t know if the candidate can actually build anything.  Also, the team is crazy busy, so giving each interviewer a concrete set of things to probe is much appreciated.  It isn’t a straight-jacket – if an interesting digression comes up during the discussion, everyone knows they can and should pursue it.  But each interviewer should really try to nail those one or two things that we’re counting on them to test, and have a firm opinion at the end as to whether the person is a hire from that perspective.

One tricky situation is that you are hiring for a skill that the team doesn’t have yet.  Suppose in our FriskyCo example, we don’t have anyone who knows databases well.  What to do?  Sometimes you can wriggle around this (maybe one of the folks can assess a schema, even if nobody knows how to design one).  But that’s pretty risky – it’s often possible for a glib person with weak knowledge to snow somebody who has even less.  So I always try to draft somebody from outside the team to participate in the interviews.  Maybe somebody from elsewhere in the company, if you are part of a larger organization.  A contractor you’ve worked with.  A friend who will pitch in as a favor.  There just isn’t any true substitute for somebody who is an expert at the thing you need to evaluate.

Interview Etiquette

Every candidate is interviewing us as much as we are interviewing them.  How they are treated will strongly affect whether they accept an offer, if we extend one.  So:

  • Don’t be clueless.  It’s really irritating when the interviewer isn’t sure what position you are interviewing for.  They haven’t looked at your resume.  They putz around, trying to figure out what to talk about.
  • Don’t be a jerk.  Enough said.
  • Don’t dither.  One of the most annoying things you can do is not to make a decision.  Interviewing at some places is like dropping a rock into a bottomless pit .. you wait, and you wait, and nothing seems to happen.  Get all the information you are going to get, and then make the damn decision.

Next, we’ll look at what to actually do during the interview.

Photo credit: Nickodemo

Artisans vs. Armies

There are moments in the history of software, when a product created by a tiny team has invented or transformed entire markets.  I was struck by evidence for a similar model in evolutionary biology: the theory of punctuated equilibrium, where there are long periods of relatively little change followed by short and dramatic periods of upheaval.

This kind of rapid change, brought on by an insightful act of creation, has happened repeatedly.  Afterwards, the market leaders usually settle into a period of stability and incremental refinement, backed by large teams.  For example:

UNIX: Ken Thompson and Dennis Ritchie were working at Bell Labs, and became disenchanted with a large-scale project to design a novel operating system, called Multics.  In reaction to its complexity, they created a much simpler alternative and impishly called it “Unics” (later renamed to Unix).  Thompson described Multics as “overdesigned and overbuilt and over everything” (a common complain about systems built by armies!).  Unix went on to become one of the two dominant server operating systems; it is now enhanced and maintained by an army of its own – thousands of developers around the world.

Visicalc: while a student at Harvard Business School, Dan Bricklin got tired of doing spreadsheets on paper.  He thought that he could use a personal computer to help, so he wrote Visicalc for the Apple II and transformed the role of the personal computer in business.  The spreadsheet has long since moved to the other model – Microsoft Excel has dominated the market for many years.

Electronic Arts: The company was originally created by Trip Hawkins in 1982 with a vision: find the brilliant programmers who could create amazing games for small computers, and celebrate those artists and their creations just as we do with great musicians.  One of my friends from junior high school wrote an early EA game (called Axis Assassin).  It was a very impressive homage to his favorite arcade game, Tempest, and he was the sole programmer who built it.  I still have the packaging with his picture and bio in it (at the ripe age of 18).  But that notion of the individual artist was abandoned by EA many years ago.  Now they make games like Madden NFL, which is built by 30 developers and has more than 10 million lines of source code.  The big PC and console games involve massive multi-year investments.  The artisans have moved to mobile, a disruptive domain where very popular games with millions of users are still being created by tiny teams of people.

American culture, I think, has always been caught between a celebration of the small (the lone inventor in a workshop building a better mousetrap, the small farmer setting forth in a Conestoga wagon on the Oregon trail, the “small is beautiful” philosophy of the 70s) and a celebration of the large (the great skyscrapers – “cathedrals of the machine age”, the massive industrial output that powered our economy and made us victorious in the world wars, the space program that landed astronauts on the moon).  Like the technology industry, our culture is tugged back and forth between these two extremes.

The Model

Across all of these examples, I find that there is a somewhat consistent pattern.  Typically, a new opportunity opens up due to some key technology transformation (like the advent of the PC or the Internet), which is not yet dominated by large established organizations.  Some ground-breaking programmers dream up a new kind of product and create it, often as an act of passion rather than of calculation. The new idea gathers popularity, and over time it either grows a large company around it or (occasionally) is taken over by some existing player that wakes up quickly enough and buys or builds their way into a dominant position.

Once a kind of software has become well-established, it usually stops being the realm of the artisan and becomes dominated by large, well-financed teams.  Division of labor was one of the foundational ideas of the machine age, allowing our society to generate massively more output than it ever could have from the labors of loosely organized artisans in their guilds.  The artisans in most industries were washed to the sea by mega-giants.

But division of labor has a great flaw in times of turbulence – it is extremely hard to rapidly re-architect large products or large teams.  At scale, nobody knows the full story of how either one functions.  In software, the products may be millions of lines of code.  The working relationships among hundreds of specialized experts on an engineering team is a tremendously complex system of its own – redesigning it can be even harder than redesigning the software.  Clayton Christenson and others have eloquently written about how hard it is for established players to reinvent themselves.

It’s Not Just Software

This alternation between artisan and army is not restricted to software.  I was fascinated to learn what happened in the 1800’s in manufacturing, elegantly described in the book The Tycoons (which I highly recommend).

During the Industrial Revolution, British industry was transformed by machine-based manufacturing.  Individual artisans were unable to compete and were largely supplanted.  That part I knew.  What I didn’t know, is that there were some key inventions in manufacturing that had the side-effect of making the roles within a factory require far less individual skill and judgment.  The British were slow to adopt them, and most British plant workers were artisans – in the 1890s, three-quarters of them were highly trained crafts-people with a lifetime of expertise.  By contrast, American plants had virtually none – somebody could be trained for almost any role in the plant relatively quickly.

For this and other reasons, American industry production sky-rocketed past the British.  In 1860, US output was one-third of Britain’s.  Fifty years later, it was 2.3 times larger (!).  Manufacturing has remained dominated by mass scale ever since, though there are interesting early signs of another major shift.  The rise of 3D printing technology makes it cost effective to do very small runs – we may see a new renaissance for the artisan manufacturer.

Another example is movie-making.  United Artists was founded in 1919 by four directors and actors, including Charlie Chaplin and Mary Pickford (two of the most popular actors of the day).  The vision, embodied in its name, was to create a place where the artists dominated, not what today we might call the “suits”.  The company struggled because the industry was moving to longer movies with high production values that required large teams and big investments (sound familiar?).

The company, and the broader industry, seesawed back and forth.  In the 1960s, United Artists created the Bond blockbuster franchise.  In the 1970s, they were involved in the shift towards small “auteur” movies that represented the singular vision of a one person (like Midnight Cowboy).  Then back to blockbusters in the 1980s.  Lately, “indie” pictures are all the rage.  The dynamics of the movie industry have interesting similarities to software, shifting back and forth across the spectrum between creation by artisan or by army.

We’re In a Time of Radical Change

As I’ve written elsewhere, because of the cloud and devices, technology is in a time of radical transformation – a lot of equilibriums are being punctured right now.  It’s a hard time to be an established leader – a threat can develop out of nowhere from a couple of passionate developers with a new idea, and it can grow to massive size in the relative blink of an eye.

But it’s a magical time for the artisans – they can challenge the dominions of the giants, tweaking the noses of the biggest companies in the industry.  And if they are right and they have a winning idea, they can have a tremendous impact.  You don’t need an army to change the shape of an industry – you can build a program and, with no capital investment at all, make it available to a billion people in an hour.  If you crack the code and build something that has real demand, there are ready accelerants poised to support you.  Investment capital is abundantly available to companies that have gotten traction, and people with every kind of specialized skill are ready to jump on the train once it has begun gathering speed.  I call it “scale fast or fail fast”.

I believe that during the next several years, many domains of human endeavor will be radically reshaped by small teams of scrappy challengers.  They will seize this period of transformation to forge and pursue new visions that will change the dynamics of whole industries.  It will be fascinating to see what they come up with.

Do You Learn More at a Startup?

I’ve had The Debate many times with people at very different stages of their career – whether to go to a startup, or to work at an established company.  One of the classic arguments for the startup is that you learn more than you would inside the belly of the beast at a large company.

Why it’s True

One of the distinctive things about life at a startup is that everything happens at a hyper-accelerated rate.  Which means that for a given amount of time, you will generally experience much more of the lifecycle of a product, a business, and a company.

I experienced this really vividly when I did my second startup, a dot.com.  I left Microsoft for the opposite coast to co-found the company.  In two years, we grew it from a few people to over 100, built a massively scalable server infrastructure from scratch and shipped it in six months, became the 50th most active site on the Web, went on a road show and took the company public, lived the exhilaration of flying high, got caught up in the crash and watched our stock go into the tank, had it come back to a more reasonable level, and merged the company with another.  Then my previous partner convinced me to come back to Microsoft to do an internal startup .. and I ran into people who were still working on exactly the same product cycle they had been doing when I left (!).  I felt like a traveller who has gone out into the world, had exotic adventures, and feels utterly changed by them, only to come back and encounter the polite incomprehension of the folks who stayed at home muddling along just as usual.

Another thing is that you typically get involved in a much broader range of activity.  At a big company, division of labor exists (must exist!) at an extreme.  There are hundreds of finance people at Microsoft who are extremely expert at what they do, so your involvement in that discipline even at senior levels of business ownership is very limited.  You consume their work, but that’s very, very different from actually doing it.  Similarly for legal, HR, recruiting, sales, lab management, datacenter design, office facilities, networking infrastructure, ad infinitum.

At a startup, there aren’t any specialists in most areas, so you have to jump in and do them yourself.  You get exposed to many aspects of the business that you wouldn’t otherwise know anything about.  If you like a holistic understanding of what’s happening, you love that.  If you want to focus deep in an area, it can drive you nuts.

But .. It’s Not That Simple

That’s the “pro” argument, but there’s another side of the coin that I think is often glossed over by the advocates.

Because things are moving fast and there aren’t a lot of “experts” around, you usually won’t get trained with any kind of deliberation.  Big companies are very uneven about how thoughtfully they develop their people, so it’s by no means assured that you will get a better experience, but hopefully you will.  I think one of the best way to learn, especially early in your career, is to “apprentice” with a more experienced and expert person.  Ideally, they are a great coach who will push you with challenging work, will evaluate it deeply and give detailed feedback, and they will be there to help when (and only when!) appropriate.  I think you are more likely to get that experience at an established company ..  but lousy managers abound everywhere, so you’ll have to be lucky or smart to find a good one.

It’s rare to get the opportunity to learn big and complex things systematically.  There are areas of expertise that are deep, hard, and take time to absorb.  Things like operating system and database kernels, distributed system design, compiler optimization, and machine learning, are systematic bodies of knowledge that call for the accumulation of knowledge and wisdom over many years to become a true expert.  In startups, you are scrambling like hell and need to get something up that works, so it’s hard to create something that is carefully and thoughtfully designed for the long term.  There are wonderful counter-examples of well-architected systems built by startups, and many pieces of crap built by big teams at established companies, so this is not some universal law.  But, in my experience, you are more likely to get a chance to master those kinds of areas at a big company that has the resources to invest in thoughtful architecture and quantities of deeply trained people available to work on it.

Running a business at scale is different than running a small one.  You won’t learn how to operate at scale at most startups.  Managing teams of hundreds of developers, keeping hundreds or thousands of sales people productive, coordinating hundreds of subsidiaries around the world – these are very difficult things to do well, and you won’t learn about them at a small company.

How it Nets Out

So will you learn more at a startup?  It depends on what you want to learn.  If you want to experience the whole business from customer experience to support to revenue, choose a startup every time.  If you want to move fast and see a lot of things quickly, ditto.

But, if you want to go really deep and immerse yourself in something complex, or you want to train yourself in your craft (whatever it is – systems programming, project management, finance), or you want to learn how to operate at high scale, you might find that you will do better at a larger and more established company.

What’s my approach?  Do both.  I have had by far the most fun at the three startups I’ve done, but I’ve learned powerful lessons at large companies that serve me well in everything I take on, with teams large and small.  And if you are at a startup, and it’s successful, then it’s nice to know that you have experience operating at larger scale – you won’t have to learn every lesson on the fly, when it’s life or death for the company that you do it right.

The Rip Van Winkle Question

Several years ago, I become responsible for a reasonably large business.  As you’d expect, the team regularly reviewed progress using a series of reports full of numbers.  Page after page of them, with thousands of numbers, analyzing performance by region, by pricing level, by licensing model, by customer type – you name it.

To an expert, these reports were filled with wonderful nuggets of insight.  Wow, what happened to sales in Germany last quarter – why did they tank even though the competitor’s results were strong?  Clearly, the Japanese sub is the only one leveraging the price increase – their average revenue per unit is spiking while everyone else is just plodding along.  And so on.

To somebody who was not expert (i.e. me), it was just a wall of numbers that didn’t convey much of anything.  To get a sense, check out a report like this one.  If you are an experienced investor, or used to reading accounting statements, you can glance over it and almost instantly you know a lot of interesting things about Google as a business.  If you aren’t, your eyes probably glazed over and you are hoping there won’t be a pop quiz at the bottom of this blog post.

In my case, I didn’t even know what half of the numbers on the business reports were about.  What the heck was the “PSP attainment vs. seasonality adjusted target”?  Did it matter that we seemed to be below what we had originally expected?  But I had to get smart quickly – these reports were the lifeblood of the business.  It’s like a medical chart to a doctor; they can spot patterns that reveal what is happening to their patients.  I had just become the doctor for this business, and I needed to know if the patient was suffering from any serious illnesses, so I could do something about them pronto.

So How to Start?

The best technique I’ve found is what I call the “Rip Van Winkle” question.  If you aren’t familiar with the short story, Rip was a man who fell asleep for twenty years, and found that the world had changed dramatically when he woke up.

What I did was to take every important angle on the business and find somebody who was really smart about it.  Then I sat down with them and asked the key question: “if you fell asleep for a year or two, when you woke up, what are the first things you would look at on this report to understand how the business is doing?”  Over and over again, I got amazing insights by asking this.  “Well, the first thing I’d do is look at new sales in the enterprise segment to make sure we are getting growth instead of just milking the installed base.  Then I’d divide that by the number of units for a quick check that our price was holding up and we’re not jacking up sales with deep discounting.  Then ….”

I did this walk-through with around 30 people, for a total of some sixty hours of discussions.  Finance people told me how they analyze the finance numbers.  Customer service showed me how they track and assess problems and customer satisfaction.  Sales managers talked about the pipeline and performance and hiring.  Often, different people would take me through the same report, and come at it from radically different directions.  I took copious notes, but I always asked for the top 2-4 things they would look at first.  I would highlight and number the places that held the answer.

Vital Signs

It turns out that for just about any report, even if it has hundreds or thousands of numbers on it, there are a handful that really tell the crucial story.  The rest of them might be useful to support the story or diagnose a problem, but you mustn’t get distracted.  In medicine they call them your vital signs – tell me your pulse and whether your eyes dilate and a couple of other things that can be measured by an EMT in seconds, and I will know if you are basically ok or deeply traumatized.  I may not know if you had a stroke or a concussion, but I’ll have a good basic sense of how you are doing.

This technique hinges, of course, on finding insightful people with an intuitive mastery of the numbers.  I could never predict who it would be from the org chart – they might be high up or buried deep.  But the people who worked in that area almost always knew whom I should talk to.  Ask around!  Once I found the right people, they were usually happy to share some wisdom with an interested and enthusiastic listener.  Buying them lunch never hurt, either.

By the end of those sixty hours, I was pretty darn good at diagnosing the business from the numbers, because I had learned from such a wide range of experts.  The process also turned out to be a useful diagnostic tool in its own right.  If I couldn’t find anyone in an area with great insights to share, chances were pretty good this was a side of the business that wasn’t being managed very well.

What I’ve learned by doing this exercise many times is that project reporting is almost always far too detailed – it’s like the old story about writing a shorter letter if you had more time.  It’s very hard to distill a lot of complexity into a tight report that shows only the key things – that means you have to figure out what those key things are (and have confidence that you didn’t miss anything vital!) – so most people cop out and throw in the kitchen sink.  As you are ramping up, think about how to cut way down on the amount of information being reported.  More is definitely not better, when it comes to metrics.  Einstein’s famous dictum applies perfectly here – “make things as simple as possible, but not simpler”.

The next time you have to get smart about a report full of numbers, give the Rip Van Winkle technique a try, and see if it works as well for you as it has for me.

Manage Your Firedrill Capacity

Ah, the firedrill – that urgent project that your team has to scramble to get done by the deadline.  Everywhere I have been, they are an inescapable fact of life.  “We just got a key customer meeting and we’ve got to have that demo ready!”  “There is a VP review of the project next week and we have to nail it!”  “I need this analysis done tonight for the board meeting – they said we have to cover this compete angle!”  “Our customer’s site is down and we have to get them back up ASAP – drop everything!”

Some of this is inevitable – things come up, so you have to rise to the occasion and get it done.  But some teams seem to exist in perpetual firedrill – life is just an endless succession of crises and it feels like a treadmill; you never get the chance to move forward on the really important projects that could be game changers, because you are running as fast as you can to handle the constant stream of do-it-now projects that bombard you.

How much you can control this problem depends on the role.  If your job is to fight fires (literal or metaphorical), then maybe the firedrill is what you do.  But if your work is more project-oriented, my guess is that a lot of them could have been anticipated and avoided.  That’s been my experience.  Test it for yourself – keep track of the firedrills you are pulled into for a couple of weeks, and look over the list.  How many of them really came out of the blue and could not have been avoided?

The Magic Wand: Designing Good Systems

Systems and processes can make life miserable and are one of the things that people complain most about.  They can get rigid, bureaucratic, and generally suck the spirit and energy out of life.  BUT … they are the critical tool that can eliminate firedrills, if they are done right.  What I’ve found is that you must design them thoughtfully, hone them until they cause the minimum of friction, and throw them out when they are no longer adding value. You probably will benefit from a system when something is predictable, repeated, and complex.

  • Predictable: hey, it’s a new year and we have to get our plan landed – wow, who could have seen that coming?  Excuse me, but it’s been on the Gregorian calendar for around 430 years, so this really shouldn’t catch you by surprise.
  • Repeated: if you do something once, then designing a system may or may not pay off.  If you do it over and over again, you don’t want to lose the hard-won lessons of the past.  Figure out how to do it well and bake it into a system so that you don’t have to think about it.  We’d never be able to function as human beings if our bodies didn’t do this constantly – we couldn’t walk, talk, eat, read, or write.  We spend much of our early childhood evolving our neural systems to master the key activities needed for life – think about how helpless an infant is.  Reinventing the wheel every time you do something keeps your team in perpetual infancy.
  • Complex: if it’s trivial, you may (may!) not need to remember how to do it.  But as things get complex, you are wasting enormous amounts of time and operating very inefficiently if you don’t capture that knowledge into a system.

Firedrills are a great indicator that you need to do something – jotting down a line or two about each one will take you less than a minute a day and looking the list over will help you diagnose places where you have a missing system or a failing one.

Don’t Waste Your Firedrill Capacity

Every team has some capacity to absorb firedrills.  That capacity increases as people are more committed to the mission.  It increases with confidence in the team leadership – people figure that if the leaders say something is important, it probably is.  But if you burn through that capacity too often, or you waste it on things that are obviously just screw-ups in planning that could have been prevented, you’ll pay the price.  People will get grumpy, cynical, burned out .. and eventually will leave the team.

So manage that capacity.  Fill the tank by fostering trust and commitment.  Avoid burning it up on dumb things that you could have avoided with some thoughtful planning.  Come clean when you screwed up and the team has to pay for your mistake.  And then when you really do need them to commit heart and soul to pulling off something heroic, the team will be right there with you, ready to dig deep and gut it out.

Rubber Gloves, Not White Gloves

I’ve always loved to be involved in making things happen, on the ground.  The detail of execution, the individual decisions that mount up to determine success or failure – I like to plunge my hands into the engine grease.  Hence, rubber gloves, not white gloves.

That enthusiasm hasn’t always been embraced by the environment I’m in – places where the focus was on Big Ideas™, not the minutia of execution.  In academia, research labs, and staff or management roles, I was often supposed to step back, see the bigger picture, and identify the key trends and leverage points.  I love to do that, but I find that big ideas often become irrelevant if you are disconnected from the details.  In studying many projects that both succeeded and failed, my conviction has only deepened that the combination is where the magic lies.

Combining Vision and Execution

A great example is Brunelleschi, the architect who designed the beautiful Duomo – the dome that sits atop the famous cathedral that dominates the skyline of Florence.

It took 140 years to complete the building; the dome had remained a puzzle for decades because nobody could figure out how to build it.  The solution called for rediscovering ideas that had been forgotten since the days of the Roman Empire, and new inventions that had never been tried before.

Brunelleschi solved the problem in 1419 and got the commission, dedicating most of his adult life to constructing the dome and other parts of the cathedral.  The dome took more than four million bricks (37,000 tons of material!), and with the lantern on top stood 375 feet high.  He got a couple of the first patents ever issued to protect his ideas for a new kind of hoisting machine and a river transport vessel.  Brunelleschi was intimately involved in every step of the construction, laid some of the bricks himself, and immersed himself in every detail (including the work schedule and diet of the people doing the construction).  If you are interested, check out the Wikipedia entry; Ross King did a great job telling the story in more detail in the book, Brunelleschi’s Dome.

Another interesting case study was the race to reach the South Pole first in 1911.   Two expeditions were involved.  One party, led by Robert Scott, was less focused on the details of planning and preparation.  The other, led by Roald Amundsen, was a great example of deep focus on every detail.  Amundsen insisted that every member of the expedition be an expert skier who had been practicing the sport since they were children.  Scott’s team mostly couldn’t ski.  Amundsen prepared navigation sheets so that they wouldn’t have to make complex calculations when they were exhausted.  Four out of five members of his final team were experienced navigators.  Scott had one, and used a technique that required more calculation.  Amundsen relied heavily on sled dogs and figured out how to keep them properly fed and cared for.  Scott’s team didn’t want to rely as much on dogs so they were dependent on horses, which turned out to be poorly adapted for the conditions.

Both teams were staffed with brave and seasoned explorers, but the results starkly illustrate the cost of poor focus on execution basics.  Amundsen got to the pole first and returned successfully without losing a man.  Scott, and the four companions who made it to the pole with him, all died.

Right Vision, Bad Execution

There are many, many examples where a compelling vision but poor execution leads to disaster.  It often happens even if the vision is a great and achievable one.

I thought it was very interesting to learn about the history of the Panama Canal in the excellent book by David McCullough called Path Between The Seas.  Basically, there was a competition to come up with the design for a canal that would connect the Atlantic and Pacific Ocean and avoid the laborious and dangerous trip around South America into the treacherous waters of Drake’s Passage.  A Frenchman, Ferdinand de Lesseps, had been the leading spirit behind the Suez Canal and came up with a hastily slapped together plan that chose a sub-optimal path and paid little heed to the enormous engineering challenges.  An American team very carefully and thoughtfully developed an alternative based on extensive surveys.  Lesseps, who was a charismatic, larger than life figure with little engineering knowledge, carried the day anyway and inspired investors to finance the effort.

An engineering group estimated it would cost $214 million; Lesseps cut that to $120 million with no real justification.  After eight years, 22,000 people had died (mostly of malaria and yellow fever – nobody realized that they were spread by mosquitos) and $235 million dollars had been spent, but the project was only partially done with the hardest issues unresolved.  The company went bankrupt.   The project was eventually taken over by the American government, after a fifteen year delay, and it took another $375 million and nine years to complete (but came in under the budget estimate!).  I think it’s a powerful example of a great vision, uncoupled to strong execution, leading to horrible results.  Then that same vision, carried forward in more pragmatic and expert hands, created a vital global resource.

Vision is Crucial .. but Must Not Become Decoupled From Reality

I’m a great believer in the importance of vision and strategy.  But strategy has to be deeply, deeply informed by all the infinite detail of execution.  And in looking at brilliantly successful strategies in technology, I’ve found that they are often emergent properties.  They were glimpsed, and then refined, by someone steeped in a deep understanding of their markets and the technology forces transforming them.  A kernel of insight evolves into a huge success – it doesn’t leap forth from the mind fully formed, like Athena from the forehead of Zeus.   Having a big and bold goal is fantastic .. but strategy is shaped, and success or failure is determined, by the execution.

Great execution is hard and requires endless focus and obsessiveness to achieve.  I’ve mostly worked on large software projects, and when you are building something that has millions of lines of code in it, the team must work together extraordinary well.  Such projects call for Herculean efforts and tiny bits of friction can lead to huge problems.  The code, the test suites, the shiproom triage meeting, the bug count, the milestone definition .. those are the clay and brick from which the great cathedrals are forged.  Lose your connection to the grit and the glue at your peril.

That’s why I love being in a startup .. we have a bold vision for what we hope to achieve, but our days are full of designing and building the product with endless and loving focus on every detail.  Hopefully we are achieving a combination of vision and execution that will let us have the impact we aspire to make in the lives of our users.

As the leader of the forces opposing evil in the universe .. you’re fired!

Epic tales are a lot of fun to read – the struggle of good and evil, the climactic moment of truth when the future of humanity or the world hangs in the balance.  They also can provide good insight on managing complex projects .. or rather, how not to.  There are some great lessons to be learned from the bungling incompetence of fictional heroes (and yes, this point of view can make you a real buzzkill, so you might want to keep these thoughts to yourself!).

Risk Mitigation and Contingency Planning

The worst sins of omission are basic risk analysis, mitigation, and contingency planning.  Very brittle plans are made, with no effort to figure out a Plan B if something goes wrong.  That makes for great drama, but it’s lousy planning.

Let’s start with Lord of the Rings.  It’s a great story that I have loved since I discovered The Hobbit as a ten year old – it has edge of your seat excitement with a richly detailed universe as the backdrop.  But come on .. what kind of a grab-ass plan was that for saving the world from evil?  We’ve got a group of clueless hobbits wandering to Bree with the Nazgûl charging around and almost catching them. The hobbits are supposed to hook up with Aragorn, but they don’t even know what he looks like – would it have killed Gandalf to give them a description?  How about an escort?  The great civilizations of Middle Earth are facing Armageddon, and they can’t scare up a couple of people to help out?

On Star Trek they are always beaming the ship’s top officers onto a potentially hostile and unknown planet, leaving the Enterprise with mostly junior people to run it.  What’s up with that?  They probably shouldn’t be sending most of the senior officers into harms way in the first place.  And, a Constitution class starship is a massive investment and a jewel in the crown of the Federation .. how come they don’t have enough seasoned officers on board to be fully covered even if four or five of the most senior ones insist on wandering into danger all the time?

In the wonderful fantasy series “The Dark is Rising”, they almost lose the ancient artifacts that determine the victory of good or evil because .. somebody left a note with a family and they happened to forget to deliver it.  Really?  Come on!  If that’s the best you can do, time for a new project manager who has a clue.  To drive a complex and crucial initiative, think about the aspects of your plan that are fragile and could easily go wrong, and build in defense in depth.

The Dark is Rising heroes not only made one dumb and potentially fatal arrangement, they keep doing it.  Don’t be like them.  If you see a particular breakdown, think about the underlying causes and address them.  Don’t settle for the obvious explanation – dig deeper.  Say you are running an online service and it went down .. why did it happen?  Well, there was a bug in the code.

  • Sure, but why did the bug slip through?  Do you need better tests?  More tests?  More realistic load testing?
  • Why did it happen in the first place?  Was there some communication breakdown?  Is the architecture of the system too baroque?  Are there missing levels of abstraction between system components?
  • Why was it hard to find and fix?  Do you need better diagnostics?  Better logging?  Better monitoring?
  • Why did it affect so many people?  Could you have a more loosely connected system?  Could components be more resilient when others fail, and degrade the user experience more gracefully?
  • Why were you down so long?  Does it take too long to deploy a fix?  Too much time to restart components that depend on it?

In running a project, you often have to make bets and take gambles – that’s part of the game.  However, you should think about the key bets you are making, and what will happen if your bet is wrong.  How quickly can you tell that you made a mistake (and be fairly sure about it)?  What will you do to reverse course or mitigate the failure?  Are you keeping anything in reserve so that you have some resources you can apply to help rescue the situation?  If you are making an unrecoverable bet, are you clear about that and about the due diligence you need to do up front?

Defining Roles

One of the common sources of confusion and inefficiency in a team is not knowing what role everyone is supposed to play.  Often, you can muddle along until something really important comes up, and then under stress the team works very poorly to resolve the issue.

Think about Boromir and Aragorn – after Gandalf fell into the cavern fighting the Balrog, they hadn’t resolved who was left in charge of the group.  Boromir deeply disagreed with the strategy Aragorn laid out.  Frodo decided he didn’t want to be with any of them any longer.  Since he was the ring bearer, ultimately it was his decision .. but nobody had given much thought to it.   It’s critical to figure out how the most important decisions are going to get made, and it’s a lot easier to do that before you are in the middle of a stressful situation with emotions running high (though hopefully you won’t be getting attacked by the Uruk-hai).

Thinking Out of the Box

It’s easy to get trapped into conventional thinking.  We’re all prone to unconscious assumptions – how things are supposed to be done, constraints we think we have to live with.  For example, Gandalf is close friends with the eagles, who can .. fly.  While carrying riders, and even outmaneuvering the fell beasts that the Nazgûl are riding later in the story.  So why is the Fellowship slogging their way through the mines of Moria and playing tag with terrifying ancient spiders, when they could get to Orodruin in a couple of hours?  Maybe with some Legolas-class archers along to provide suppressing fire in case anybody tries to interfere?  The whole thing could have been wrapped up and the hobbits tucked cozily back in their beds after a nice end of the day snack, before Sauron had a clue.  This idea is hilariously developed on “How it Should Have Ended”.

In life, it’s impossible to identify and question all your unconscious assumptions .. but you can tease out the most important ones.  Ask yourself what you are assuming, and whether you have the evidence to back it up.  Ask “what do I have to believe?” in order to justify a proposed course of action, and see if you can get some kind of backup that those things are really true.  Or a way to notice that they aren’t, so if you are on a delusional path, you’ll figure it out as quickly as possible.

Learn From Everything

I have found that there are great lessons to be learned about accomplishing your goals from every life experience.  Learn on the job, by all means, but I try to make everything grist for the mill – books, stories, movies, tales from history .. it all provides insight and inspiration to help you pick the goals that matter to you and to find ways to achieve them.  And before you decide that “actually, hope is the plan”, remember that in real life, you aren’t the main character.  There is no author who will turn your heedless folly into an exciting story of success against all odds.