Monday, June 29, 2015

When You're Having Fun

[ In case it isn't obvious: This is my private blog, and this is my private opinion ]

Assuming you don't span two leap years, 2191 days is exactly six years.

In the beginning of June 2009, I was consulting with a company with whom I had previously worked, and had received an offer to rejoin them as a full-time employee.  This company prided itself on treating its employees like family -- it was the sort of place where as long as you tried, and they could find the budget, they'd find a job for you.  I was going to be able to work from anywhere in the country which was particularly attractive because my spouse wanted us to move to Portland.

On Wednesday, June 3, an old friend of mine called me.  He had joined Netflix (the DVD company), and had a UNIX Engineering group reporting to him.  His Engineering customers were talking about moving to the cloud and he was going to need help to figure out how IT could support them well.  On Thursday, June 4, I talked with the hiring manager, who thought the cloud thing would maybe eventually be an interesting thing, but for now really needed help figuring out how UNIX engineering would Automate All The Things[tm].  I had my first round of interviews on June 5, and my second on June 11 (we've gotten faster since then), and got the job offer to join Netflix as I was driving home from the second round.  I signed the offer the day after that, and joined Netflix on June 29, 2009.  Exactly six years ago.

The more things change ...

It's interesting to look at the last six years and see what's changed and what has remained the same.  From a cultural perspective, what has remained the same tells an incredible story -- Purchasing still requires no approvals (I remember when as a UNIX engineer I was placing $200K orders every other week, at some point our Purchasing people asked if my boss was aware of all my purchases; I asked them if they'd like to see me cc him on my orders, just as an FYI, and they said that'd be nice, though obviously not required).  My work with our InfoSec group is still basically on a volunteer basis (InfoSec doesn't approve anything; I don't need to involve them in my projects; I do so because they help me get my job done better).  Our expense policy is still the same ("act in Netflix's best interests") (though six years ago, managers had to still approve expenses; now they're automatically paid), and our vacations still unmetered.  There are still no formal processes for opening headcount requisitions, and as a hiring manager these days I own my job descriptions, interview panels, and final decision about hiring and firing.

Some things have changed.

When I joined Netflix, my director told me a story to explain the problems IT was dealing with.  The VP of Web Engineering reached out to him and complained, saying "I asked you for eight web servers, and I got eight web servers, all of which were almost exactly alike."  One of the words in that quote should fill you with dread.

When I was in IT, responsible for giving Engineering the resources it needs, it took us forever to provision machines.  I once established a reputation for recklessness when I promised my Engineering customers that I'd get them the ten servers they needed for the PS3 launch in a scant three days.  When they asked, dubiously, whether I was sure I could do it, I told them I was willing to bet my job on it (and was later counseled by both my manager and director that this was an unnecessarily brash statement, given the aggressive timeline).  These days, of course, we provision tens of thousands of servers every day, automatically, quite often without people noticing or doing any work to make this happen.  And they're all exactly the same.

Why am I still here?

Six years, for me, is a huge amount of time.  My average tenure until Netflix has been about 27 months.  More interestingly, if you exclude my longest and shortest stints, the standard deviation of my tenure has been about 2.5 months.  A 2.5 month standard deviation makes for a very narrow band -- at around 2.5 years, I reliably get bored, or annoyed, and move on.

There are various reasons why someone may want to work at Netflix.  We do interesting tech things.  We have a pretty great product.  You get to work with smart people.  You get lots of autonomy.  Having Netflix on your resume makes your next employer incrementally more interested in you.  Netflix pays pretty well.  If you're interested in speaking at conferences, you'll find that's encouraged.  The list goes on.  (Over)simplifying the whole thing, for me it comes down to three kinds of factors: The reasons I want to come to work, the reasons working where I do doesn't frustrate and annoy me, and the reasons why my workplace still wants me to come to work in the morning.

I want to come to work because I've never worked at a company of any material size that treated its employees so humanely, and had humane behavior so ingrained in its culture.  I've also never worked at a company that seems to earn as much revenue per employee (Seriously, check out http://www.wolframalpha.com/input/?i=Netflix+revenue+per+employee+over+the+past++8+years and compare to others).  I think Netflix is a great case study in how humane corporate cultures are not simply not in conflict with a desire to be incredibly profitable, but in fact aid profitability.  I'm deeply interested in supporting and promoting this idea, both because it makes the American workplace better and because it makes it more likely my next job will be a better fit for me because of it.

Treating people humanely manifests itself in a variety of ways, mostly manifestations of the Freedom and Responsibility culture.  It's things like my boss telling me when I joined Netflix that I shouldn't have to bring my personal equipment to work, and that I should just tell my company what equipment I needed to be effective.  Or how when I asked for a 4K display a few months ago, my desktop support group noted on the ticket that it was not a supported display, so they wanted one as well (rather than gating the request).  Or the fact that when I've had unanticipated family events come up (fun story: I went on a two week vacation in February that, due suddenly finding myself adopting my son, turned into a six week vacation.  My boss was enthusiastic.  I came back to a promotion).  Or the trivial fact that minor computer equipment is in vending machines with no accounting or tracking of what you get whatsoever.  Don't sweat the small stuff.

Treating people humanely also means dealing with terminations humanely.  Not doing the Performance Improvement Plan dance means nobody's going to spend a few months documenting why you're bad at your job, and terminations can be a lot more amicable and decent.  I've had friends terminated from Netflix, and I've heard them rave about that last conversation with my HR business partner.  I've dealt with much, much worse :)

As for not being frustrated and annoyed ... alignment is a magical thing.

Our industry already talks a lot about DevOps, which I'd argue at its heart is about a better alignment between ops and dev people.  It's great.  I love it.  One of the most magical periods of my work at Netflix was when I was an ITOps person and worked closely with an engineering team, including attending their staff meetings and understanding their needs well enough I was able to start responding to their requests with versions of "no, I don't think you want FOO, I think BAR would work better for you.  What do you think?"

But talking about Dev and Ops alignment is only the beginning.  Imagine a workplace where total alignment exists not just between Dev and Ops, but between everyone you work with.

In most workplaces, engineers have a completely different set of priorities from IT, Facilities, HR, or Legal.  And I think that it comes down to the fact that in general, product delivery is all about optimizing something (innovation? customers? income? buzz?) while most of these other groups are all about mitigating or constraining something (cost? risk?).  When two groups, one motivated by maximizing something and the other by minimizing something else, try to work with each other, hilarity ensues.  For very low values of hilarity.

One obvious example of this is HR.  I suspect people become HR professionals for the most honorable of reasons, but in the end HR's mission -- as expressed to me by many HR people in several companies -- is one of risk mitigation.  The biggest risk to the company, from their perspective, comes from employees, in the form of legal action.  Most of the HR groups I've worked with have, explicitly or implicitly, believed their job was to protect the company from its employees.

With such a significant lack of alignment, it's not a surprise most engineers I've known have not worked well with most HR people I've known.  Personally, I've sometimes referred to HR (though not to their faces) as the natural predators of the creative class.

And then there are the HR people with whom I've had the joy to work at Netflix.  I remember figuring out the difference about six months into my tenure -- my HR people's mission is similar to my own -- maximize and enhance the benefit to Netflix.  With alignment of goals comes alignment of action, of context, and of approach.  And suddenly I find myself with an HR and recruiting group I -- for lack of better word -- love.  My recruiters have my back.  My HR business partner cares about my success.  I have a stronger, more trusting, more intimate relationship with my HR people than I've had with most of my managers, ever.  Pure joy.

The same is true for the purchasing people I work with.  And the facilities people I work with, who work tirelessly, and behind the scenes, to help me get my job done.  And, basically, everyone else.  One of these days, I should talk about my work with our lawyers, or Information Security people.  They make me happy.

The last time I left work frustrated by lack of alignment and another group's goals conflicting with my own was ... a long, long time ago.

And, at last, we get to the whole "getting to come to work" part of it all.

When I have direct reports, I'm pretty conscientious about managing them well.  I try to be thoughtful about working well with my peers.

Were I try to try to characterize my relationships with my managers, I'd use phrases like "benign neglect" or "amused tolerance."  They might use phrases like "a pain in the neck," or "has an allergy to authority."  This has sometimes led to career-limiting relationships with my management, which I've usually considered to be part of the cost of doing business.  I am easy to lead, difficult to manage.

And then there's Netflix, where my 2014 360 feedback from my manager included the phrase "Continue challenging me with regular feedback. I receive more actionable feedback from you in a week than I do from others in a year."

And so here I am.  Six years in the same company, though not in the same role.  Having started as a UNIX engineer on the ITOps side, then managing Service Delivery for ITOps, then becoming an engineer in Product Engineering and finally going back to managing a software development group, it's been a pretty diverse set of responsibilities and challenges.  I never imagined I'd be here this long -- I expected to get fired within a year.  I negotiated with my spouse leaving after two (and then renegotiated as we hit the two year mark).

It's hard for me to imagine being here for another six years.  Some day I'll leave.  And I'm pretty sure I know what I'll say on that day.

It's been a hell of a ride.

Thursday, January 15, 2015

Quantifying Personal Retention Impact: A Mathematical Thought Exercise

When I was promoted to managing the Insight Engineering group at Netflix, my manager sat down with me and said "these are incredibly smart engineers who, generally-speaking, will know what they need to do.  Your first job is to retain them." 

I've generally considered a big part of my job to be a positive impact on the retention of my employees and coworkers.  Prone as I am to quantification, I came up with, and in this blog post propose, an exercise for quantifying retention impact.

Firstly, it's more obvious to rate retention impact from the perspective of recruiting attraction -- you get used to the people you work with, and in most cases you're not making active, daily, decisions about whether or not you want to work with them.  Looking at it from the perspective of whether or not you'd pursue a new job with this person clarifies things a bit.  

So for a given person with whom you work, imagine they've left the company, and you're considering leaving the company to go to another company.  You find out they work in that company and your relationship with them would be the same as the relationship you have with them today -- if they're managing you today, they'd be managing you at this new company; if they're a peer today, they'd be a peer in this new company, etc.  What's your response, on a -3 to +3 scale?

-3: No.  Just no.  I don't care if it's the best job in the world, it isn't worth it if I have to renew this relationship with this person; 
-2: Ugh.  Do I have to? Maybe there are some very significant reasons why I want this job and am willing to undertake the pain of this relationship again, but boy howdy it better be a ludicrously great job;
-1: Oh well.  If the job is decent and I was pretty sure I'd take it anyway, I'm not happy to hear this, but I can live with it; 
0: No impact
+1: Oh cool.  I'm somewhat more inclined to take the job because they're part of the package
+2: Wow.  I'm much more inclined to take the job because I'll get to work with them again.  I'm willing to take some pain to do it; 
+3: Almost irrespective of how bad the rest of the offer is, or how terrible the environment, if I get to work with them again I'll do it! 

Think of the process by which a person p comes up with the answer with respects to you as function R, so R(p) has an output between -3 and 3.  

Firstly, it's useful to look at the value of R(p) for the set of people for whom you are most relevant -- direct reports, peers, manager, etc.  You can then expand to other people -- how about people in other teams? The further out, the smaller the amplitude of the likely answers -- it's unlikely that someone who hasn't worked closely with you would consider you a +3 or even a +2, probably, and for the vast majority of people who work in my company, I'm almost definitely a 0 because they don't know who I am, and it's not hugely relevant to them.  

It's noteworthy, however, that numbers for any given relationship can likely have a bigger negative span than a positive one.  For me, for example, I can't imagine a manager to whom I've ever reported who's a +3 -- the best and brightest, the people I'd love to report to again, are +2s.  However, I can definitely think of managers of mine who are -3; similarly, I was talking with my HR business partner and mentioned to her she's a +2 for me -- I really really love our HR group and find both the group and the individuals in it a big factor in why I'm happy where I work -- but I can't imagine an HR person or HR group being so instrumental so as to be a +3.  At the same time, again, I've worked with HR groups who would definitely be a -3.  

The interesting thing then, of course, is to look at trends for a given group -- e.g. direct reports:

Or peers ...

Or coworkers in general ...

Obviously, while the average may give high-level information, min and max would tell an interesting story (min more than max), and with sufficiently large populations you can start seeing if standard deviations tell an interesting story as well; are there common characteristics to the people who'd most like to work with you again? How about the people who'd least like to work with you again? 

In the end, though, the math is a fun[0] but not necessary part of this.  The interesting and -- arguably -- useful part of this is actually inquiring "how much would this coworker of mine like to work with me again, and what do I want to do about this?"

[0] The value of "fun" is left to the student as an exercise