Thursday, June 23, 2011

Lessons in a 21st Century Tech Career: Failing Fast, 20% Time and Project Mobility

By James Whittaker

If your name is Larry Page, stop reading this now.

Let me first admit that as I write this I am sitting in a company lounge reminiscent of a gathering room in a luxury hotel with my belly full of free gourmet food waiting for a meeting with the lighthearted title "Beer and Demos" to start.

Let me secondly admit that none of this matters. It's all very nice, and I hope it continues in perpetuity, but it doesn't matter. Engineers don't need to be spoiled rotten to be happy. The spoiling of engineers has little to do with the essence of a 21st century tech career.

Now, what exactly does matter? What is the essence of a 21st century tech career that keeps employees loyal and engaged with productivity that would shame the most seasoned agile-ist? I don't yet have the complete story, but here are three important ingredients:

Failing Fast. Nothing destroys morale more than a death march. Projects going nowhere should do so with the utmost haste. The ability of a company to implode pet projects quickly correlates directly to a great place to work. Engineers working on these project gain not only valuable engineering experience, they experience first-hand the company's perception of what is important (and, in the case of their project, what is not important). It's a built-in lesson on company priorities and it ensures good engineers don't get monopolized by purposeless projects. You gotta like a company willing to experiment. You have to love a company willing to laugh at itself when the experiments don't pan out.

20% Time. Any company worth working for has any number of projects that are worth working on. It's frustrating for many super-sharding engineers to see cool work going on down the hall or in the next building and not being part of it. A day job that takes all day is tiresome. Enter 20% time, a concept meant to send a strong message to all engineers: you always have a spare day. Use it wisely.

Project Mobility. Staying fresh by changing projects is part of mobility. Continuous cycling of fresh ideas from new project members to existing projects is another part. The downside here is obviously projects with a steep learning curve but I scoff in the general direction of this idea. Whose fault is it when a wicked smart engineer can't learn the system fast enough to be useful in some (even a small) context? Only the weakest organization with the poorest documentation can use that excuse. The only good reason for keeping people on a project is because they have no desire to leave.

These three concepts are better than all the lounges and free food any company can provide. Here's an example, a real example, of how it worked recently for an employee I'll call Paul (because that happens to be his name!).

Paul joined Google a little over a year ago and spent two months on a project that was then cancelled. He learned enough to be useful anywhere but was new enough that he really didn't have great context on what project he wanted next. Solution: I assigned him to a project that was a good skill set match.

Less than a year later, his new project ships. He played an important role in making this happen but in that time he also realized that the role was leaning toward feature development and he was more interested in a pure test development role. However, he was steeped in post-ship duties and working on the next release. A cycle that, happily, can be broken pretty easily here.

Another project had a test developer opening that suited Paul perfectly. He immediately signed up for 20% on this new project and spent his 80% ramping down in his old project. At some point these percentages will trade places and he'll spend 20% of his time training his replacement on the old project. This is a friction-less process. His manager cannot deny him his day to do as he pleases and now he can spend his time getting off the critical path of his old project and onto the critical path of his new project.

Mobility means a constant stream of openings on projects inside Google. It also creates a population of engineering talent with an array of project experiences and a breadth of expertise to fill those positions. 20% time is a mechanism for moving onto and off of projects without formal permissions, interviews and other make-work processes engineers deplore.

Let's face it, most benefits are transient. I enjoy a good meal for the time it is in front of me. I enjoy great medical when I am sick. I appreciate luxury when I have time for it. Even my paycheck comes with such monotonous regularity that it is an expectation that brings little joy apart from the brief moment my bank balance takes that joyful upward tick. But if I am unhappy the rest of the day, none of those islands of pampering mean squat. Empower me as an engineer during the much larger blocks of my time when I am doing engineering. Feed my creativity. Remove the barriers that prevent me from working on the things I want to work on.

Do these things and you have me. Do these things and you make my entire work day better. This is the essence of a 21st century tech career: make the hours I spend working better. Anything more is so dot com.

Ok, Larry you can start reading again.

10 comments:

  1. Excellent post! I really enjoy reading your blogs. One question- I heard Google engineers work overtime a lot. Is it because they spent one day on their own project and then have to work over time in the other 4 days to catch up?

    ReplyDelete
  2. Dr. Whittaker, I'm a huge fan. Great post, although I'm curious about what sounds like an anti-startup bias..

    "Any company worth working for has any number of projects that are worth working on."

    "Anything more is so dot com."

    IIRC, Google sprang up from a small group working on a single project (search) in the midst of the dot com era..

    ReplyDelete
  3. More often that not perks are offered just because it's easier than building a strong engineering culture.

    As a rule of thumb I just distrust companies and engineers putting perks first.

    ReplyDelete
  4. Great post James, wish more companies would realize these three points.

    ReplyDelete
  5. willy, I couldn't agree more. Faizal: touche! It's amazing how much big company thinking has crept into my soul!

    ReplyDelete
  6. We need to implement this at Zappos :). TY for an awesome post!

    ReplyDelete
  7. I don't fully agree with the 'Project Mobility' concept. While I understand the importance of having fresh ideas flowing, and it is good to rotate staff, I see a downside. In my organization, there are quite a few projects that require deep domain knowledge, and people with many years in it are invaluable to the organization. I have seen far too many people coming in due to 'mobility' and breaking things that were built on the solid foundation of experience and deep realization.

    ReplyDelete
  8. Excellent....Keep posting things like this dude....subscribed

    ReplyDelete

The comments you read and contribute here belong only to the person who posted them. We reserve the right to remove off-topic comments.