
Adopting Microservices at Netflix - pnommensen
http://nginx.com/blog/adopting-microservices-at-netflix-lessons-for-team-and-process-design/
======
matthewmacleod
_Netflix doesn’t have an HR manual. There is a single guideline: “Act in
NetFlix’s best interest.” The idea is that if an employee can’t figure out how
to interpret the guideline in a given situation, he or she doesn’t have enough
judgment to work there. If you don’t trust the judgment of the people on your
team, you have to ask why you’re employing them. It’s true that you’ll have to
fire people occasionally for violating the guideline. Overall, the high level
of mutual trust among members of a team, and across the company as a whole,
becomes a strong binding force._

Christ on a bike, that sounds horrific.

All this approach can do is replace codified guidelines with unknown,
arbitrary ones. Who defines what "NetFlix's best interest" is? In an
organisation of that size, conflicts of interest must happen all the time.

Is this just a fancy way of saying "If we don't like you, you're out of the
door?"

~~~
brendangregg
G'Day, I work at Netflix, and we hire what's been called "fully formed
adults". Here's a quote that can explain it better than I (also see the full
article):

Source [https://hbr.org/2014/01/how-netflix-reinvented-
hr/ar/1](https://hbr.org/2014/01/how-netflix-reinvented-hr/ar/1):

"Hire, Reward, and Tolerate Only Fully Formed Adults

Over the years we learned that if we asked people to rely on logic and common
sense instead of on formal policies, most of the time we would get better
results, and at lower cost. If you’re careful to hire people who will put the
company’s interests first, who understand and support the desire for a high-
performance workplace, 97% of your employees will do the right thing. Most
companies spend endless time and money writing and enforcing HR policies to
deal with problems the other 3% might cause. Instead, we tried really hard to
not hire those people, and we let them go if it turned out we’d made a hiring
mistake."

I trust myself, and everyone on my team to act in Netflix's best interest.
Throughout my career, I've worked with many professional engineers who could
have been trusted to work in the company's best interest. But there have been
many times when we've been prevented to do so, due to process. So I've been
fascinated at how Netflix is operating, and it's been great working here.

It's important to know that a key role of management is to provide context to
employees: what problems exist, what challenges we are facing, what
opportunities might exist, what's important to Netflix right now. So that we
know what to do, and how to exercise judgement.

I've written about working at Netflix earlier this year on my blog (someone
else posted a link).

~~~
nkozyra
I think rather than "fully-formed adults," what's described here is mutual
compatibility. Which is kind of unfortunate, as weird as that sounds.

We'd all like to work with people who operate with the same understanding,
ethos, sense of humor, etc. It makes the day better, right? No office drama,
no awkward meetings. But I would contend doing this tends to put you at a
genetic disadvantage, and that some types of confrontation are essential for
growth. Introducing only like-minded people will produce linear results.

What codified HR rules do is put some workplace guidelines around humanity -
that allows a dissonant group of varied people to, you know, be themselves
without necessarily worrying about conforming to avoid ruffling feathers.

Perhaps it's more nuanced than that, but it sounds more like "hire people you
like" expressed somewhat condescendingly as it is.

~~~
ThrustVectoring
I got something very different out of it - it reminds me of Auftragstaktik, or
leading by mission. Instead of adding explicit restrictions on employees, give
them freedom of action. It takes trust that they're the kind of person that
would make the kind of decision you want. In other words, having a shared
"adult" background.

~~~
EdwardDiego
My employer treats us as 'fully formed adults' also. It's fantastic,
especially after the years I spent in government, where we were all treated
like children who required policies on every damned thing to guide us.

An obvious example is about how you use your computer. In my old job, it was
highly regulated. Want to install Firefox on your machine? Sorry, that's
against IT policy, we only support IE. Your machine is locked down to prevent
unauthorised installs, and even if it weren't, you'd be up for a warning for
violating the policy.

In my current company, the sysops still limit what they support - for example,
they're not willing to support OS X Yosemite users yet, and recommend users
stay on Mavericks. But, if you want to upgrade to Yosemite, you can, just
don't ask the sysops for help fixing it. And if your broken Yosemite install
is impeding your work, well, we trust that you'll resolve it one way or
another.

Or another - alcohol. In the government, alcohol at work was banned. A beer at
lunch could get you fired. When we had Christmas parties, alcohol was
provided, but on a token-per-drink basis. Everyone got two tokens. My current
company, the beer fridge is a treasured perk. There are no rules about how
much beer you can drink, or when you can drink it. So far, no raging
alcoholism has impeded work.

What I really notice is that when you treat people like adults, they respond
like adults, and when you treat them like children, they respond like
children.

~~~
meowface
>In my current company, the sysops still limit what they support - for
example, they're not willing to support OS X Yosemite users yet, and recommend
users stay on Mavericks. But, if you want to upgrade to Yosemite, you can,
just don't ask the sysops for help fixing it. And if your broken Yosemite
install is impeding your work, well, we trust that you'll resolve it one way
or another.

Sorry, but as someone who works in IT security, this sounds like an absolute
nightmare. Even if you have a small company comprised only of intelligent
developers, those developers do not necessarily understand the latest malware
threats or what sorts of software can introduce risks. Wide-open FTP servers
and Tomcat servers with default passwords are a major issue. I would actually
say developers probably introduce more threats into our environment than any
other demographic.

Whitelisting software installs from specific domains (google.com, mozilla.org)
is okay, but a carte blanche policy is usually a very bad idea.

------
acaloiar
"If you ask any developer whether a slower development process is better, no
one ever says yes. Nor do management or customers ever complain that your
development cycle is too fast for them."

I've never known a developer not to speak up when the development cycle is too
fast or a user who is not averse to the resultant buggy software.

~~~
kitbrennan
You're confusing 'development cycle' and 'pushing code'.

Pushing code too fast is clearly a problem that causes bugs, and neither
developers or users are a fan of.

The 'development cycle' includes the total time to implement something,
including time taken to fix resultant bugs.

Where you can speed up the development cycle without introducing more bugs
(eg. by implementing comprehensive testing and QA practices), then no one is
going to complain.

~~~
acaloiar
I think you draw an important distinction, but I don't believe that either of
our comments are incorrect. I was explicitly referring to a development cycle
that is too fast. After all, developers are humans and not machines.
Perpetually fast development cycles lead to mental exhaustion, missed
vacations--bugs. Unless, of course, you exist on a team that is staffed over-
capacity such that the absence of any single developer has an immaterial
effect on development cycles. I suspect that is not the case for most of us.

------
ecesena
What I'm missing is actual examples of services split in micro services, with
particular focus on the db (originally one db, then split in multiple dbs, one
in each micro service).

From the talks I kind of inferred that sharing is a good example of micro
service, but that's also a good example of something that one could outsource
to addthis, sharethis and similar (at least, I'm speaking from the perspective
of a relatively young startup).

------
tracker1
It's interesting that this is an advertorial for nginx ... I'm currently
working on implementing a microservices system, but have instead opted to use
ZeroMQ for the connections, and utf-8/json for the request/response
interfaces... Which in my mind seems a bit more sane once you reach behind the
publicly accessible API (though also means that you have to wrap anything the
public/website needs.

------
fa
I don't understand the dichotomy between speed and efficiency. What's speed is
the author talking about, and whose efficiency?

------
nawitus
The submission title should include 'Lessons for Team and Process Design', as
it's a part of a series.

~~~
pnommensen
I agree, the title was shortened after I shared the link here.

------
xena
This looks like a thinly worded ad for Nginx Plus.

~~~
samspot
I think it is thickly worded. Entire sections have nothing to with the
technology you choose. I particularly liked the culture section.

