Corporate Culture: unusual Netflix example

by Didier 29. July 2010 16:57

Introduction

Netflix thinks that “as they grow, they have to minimize rules”. Different approach as what we all know, experience, read. And … Netflix is definitely not a startup anymore! I would like to share with you a document from Netflix I found on SlideShare about their culture and some quite innovative management ideas they have put in place. Feed for thoughts ;-)

Netflix – the company

Sources: Wikipedia, Netflix Shareholder communication

  • Netflix (NASDAQ: NFLX) is an online DVD and Blu-ray Disc rental service, offering flat rate rental-by-mail and online streaming to customers in the United States.
  • Established in 1997 and headquartered in Los Gatos, California, it has amassed a collection of 100,000 titles and approximately 13 million subscribers.
  • The company has more than 55 million discs and, on average, ships 1.9 million DVDs to customers each day.
  • More than 90% of subscribers have evangelized Netflix. More than 70% of subscribers had an existing subscriber recommend Netflix.
  • Number of employees (2009): 2’000+

Netflix reference guide on freedom & responsibility culture

Source: Netflix presentation on SlideShare

Worth an entire read, as the presentation is meant for reading, more than presenting ;-)

Some abstracts:

Their nine values

Great workplace is stunning colleagues:

Great workplace is not day-care, espresso, health benefits, sushi lunches, nice offices, or big compensation,
and we only do those that are efficient at attracting stunning colleagues

The keeper test managers use:

Which of my people,
if they told me they were leaving in two months
for a similar job at a peer company,
would I fight hard to keep at Netflix?

Hard work- not directly relevant

• It’s about effectiveness – not effort – even though effectiveness is harder to assess than effort

• We don’t measure people by how many evenings or weekends they are in their cube

• We do try to measure people by how much, how quickly and how well they get work done – especially under deadline

Our model is to increase employee freedom as we grow,


rather than limit it, to continue to attract and nourish
innovative people, so we have better chance of long-term continued success

Seems like 3 bad options

1. Stay creative by staying small

2. Try to avoid rules as you grow, suffer chaos

3. Use process as you grow to drive efficient execution of current model, but cripple creativity, innovation, flexibility, and ability to thrive when market inevitably shifts

A fourth option:

• Avoid Chaos as you grow with Ever More High Performance People – not with Rules

• Then you can continue to run informally with self-discipline and avoid chaos

• The run informally part is what enables and attracts creativity

With the Right People,

Instead of a Culture of Process Adherence,
Culture of Freedom and Responsibility,
Innovation and Self-Discipline

Mostly, Though, Rapid Recovery is
the Right Model

• Just fix problems quickly

High performers make very few errors

• We’re in a creative-inventive market, not a safety-critical market like medicine or nuclear power

• You may have heard preventing error is cheaper than fixing it

– Yes, in manufacturing or medicine, but…

Not so in creative environments

“Good” vs “Bad” Processes

• “Good” processes help talented people get more done

– Web site push every two weeks rather than random

– Spend within budget each quarter so don’t have to coordinate every spending decision across departments

– Regularly scheduled strategy and context meetings

• “Bad” processes try to prevent recoverable mistakes

– Get pre-approvals for $5k spending

– 3 people to sign off on banner ad creative

– Permission needed to hang a poster on a wall

– Multi-level approval process for projects

– Get 10 people to interview each candidate

Vacation policy and tracking

Until 2004 we had the standard model of N days per year

We’re all working online some nights and weekends, responding to emails at odd hours, and taking an afternoon now and then for personal time.

We don’t track hours worked per day or per week, so why are we tracking days of vacation per year?

We should focus on what people get done, not how many hours or days worked.   Just as we don’t have an 9-5 day policy, we don’t need a vacation policy.

Summary of Freedom & Responsibility:

As We Grow, Minimize Rules.
Inhibit Chaos with Ever More High Performance People.
Flexibility is More Important than Efficiency in the Long Term

Appropriate context

The best managers figure out how to get great outcomes by setting the appropriate context, rather than by trying to control their people

Context, not control

Provide the insight and understanding to enable sound decisions

CONTEXT

– Strategy

– Metrics

– Assumptions

– Objectives

– Clearly-defined roles

– Knowledge of the stakes

– Transparency around decision-making

CONTROL

– Top-down decision-making

– Management approval

– Committees

– Planning and process valued more than results

Setting the right context

Managers: When one of your talented people
does something dumb, don’t blame them.
Instead, ask yourself what context you failed to set.

Again, context vs. control

Managers: When you are tempted to “control” your people, ask yourself what context you could set instead

Highly Aligned, Loosely Coupled

• Highly Aligned

– Strategy and goals are clear, specific, broadly understood

– Team interactions are on strategy and goals rather than tactics

– Requires large investment in management time to be transparent and articulate and perceptive and open

• Loosely Coupled

– Minimal cross-functional meetings except to get aligned on goals and strategy

– Trust between groups on tactics without previewing/approving each one – groups can move fast

– Leaders reaching out proactively for ad-hoc coordination and perspective as appropriate

– Occasional post-mortems on tactics necessary to increase alignment

Annual comp review

• Hiring is market-based at many firms, but at Netflix we also make the annual comp review market-based

– Applies same lens as hiring

• Essentially, rehiring each employee each year, for purposes of comp

– At annual comp review, manager has to answer the Three Tests for the personal market for each of their employees

Development

• We develop people by giving them the opportunity to develop themselves, by surrounding them with stunning colleagues and giving them big challenges to work on

– Mediocre colleagues or unchallenging work is what kills progress of a person’s skills

• Individuals should manage their own career paths, and not rely on a corporation for planning their careers

Innovation & execution

• Need a culture that supports rapid innovation and excellent execution

• Both required for continuous growth

• There is tension between these two goals; between creativity and discipline

Team work and high-performance people

• Need a culture that supports effective teamwork of high performance people

• High performance people and effective teamwork can be in tension also – stars have strong opinions

Cross-posted on the Didier Beck Blog

Insurance Distribution challenges

by Didier 27. July 2010 22:55

via Celent

Michel Michellod from Celent, an international strategy consultancy focused on the financial industry, has just posted a very interesting article which is very “aligned” with how we understand ourselves the current and coming insurance front-end challenges.

Some interesting strategic challenges highlighted in the post:

The direct channel requires an appropriate front end. […] This goal can be best achieved through the implementation of open and flexible front end systems facilitating interactions with potential customers, integrating modern communication tools for call center officers and allowing a high level of reactivity in terms of product, pricing and discount changes.

Communication with aggregators is key. […]  The second alternative consists in directing shoppers automatically onto the insurance online platform to perform the last step of the buying process (the effective purchase of the insurance product and its payment). This alternative requires an instantaneous transmission of customer and quote data by aggregators to insurers.

Insurers need to improve integration of affinity and bank channels. […] Insurers need to implement relevant portals allowing management and process of sophisticated insurance products.

Use brokers and agents in specific customer segments. […] I recommend insurers to implement sophisticated portals with rich functionality to provide point of differentiation.

Responding to multi-channel management. […] I believe insurers should prioritize sophisticated portals providing a single view of the customer based on service oriented architecture (SOA) with high level of automation.

As the insurance distribution landscape is changing fast and drastically, I expect this topic to be part of the European insurer’s top priorities in the coming years.

At Innoveo, we are exactly acting in this field and bringing a standard software product on the market – Innoveo Skye®– which allows insurance companies (life, non-life, health) to find an efficient, technology-proven and business-oriented answer to the different challenges raised by Celent.

Disclaimer: we were nominated by Celent as “Model Carrier” in 2007 for our effective usage of technology. See the report here.

Cross-posted on Didier Beck Weblog

ro:mu:s event at the lake Zug

by Didier 26. June 2010 09:33

Some colleagues from Innoveo and I were invited yesterday by our colleagues, friends and partners from the ro:mu:s company, which is bringing very high-valued and professional consulting in the fields of organization, project management and business advisory.

Their yearly event took place at the lake Zug, a absolutely fantastic place, specially with the cuper weather we had yesterday! We were on a boat during about 3 hours, making a slow trip all around the lake, with all these beautiful landscapes. And with some good food and wines. So an excellent evening!

Warm thanks guys for the invitation and friendly organization! (and thanks to Cédric for the pictures ;-)


As you see, I'm always well-positioned when it's a matter of food ;-)

Cross-posted on Didier Beck blog

Eclipse shared install on a Windows Server 2003/2008

by cedricwalter 6. June 2010 05:37

maven-logo-2 eclipse

I did develop this solution at work for our internal purpose at www.innoveo.com. Going away from the paradigm “As a developer I run everything locally” isn’t easy to accept but in some rare cases, it make sense. Below I list what I consider to be the main advantages and drawbacks.

Stability

  • Not everybody is changing the developer environment as you need admin right to be able to do changes, more stability.
  • The developer environment is standardized: convention over configuration always pays like in Apache Maven.

Sharing

  • you can work from anywhere as long as you have an internet/VPN connection
  • You can move your working place around, show your workspace to a colleague, reduce your coupling to Windows, use Linux, use a Mac!

Security

  • The source code stay on the server, if someone steal notebooks you don’t loose your software assets.

Efficiency

  • Somebody maintains the developer environment and settings for you, some developers can still beta test a new eclipse version before till it is considered stable.
  • Rollout is limited to a minimum loss of time, as you will see below 
  • Setting up a new developer account is basically settings up a new account on the shared server, running 3 lines of shell.
  • The server  is not full of unwanted applications running in background, only java.exe. eclipse.exe, databases can still run on another server (MYSQL, Oracle), runtime environment (Tomcat).

Speed, speed and speed

  • A server is cheap compare to one big notebook for every developer.
  • Server is most of the time fully 64bits, may have up to 8 cores, RAID 5 typically  output 350Mb/s read (a good notebook: 32 bits, 2 cores and 80Mb/s without SSD)

Drawbacks

  • A shared developer environment is a Single point of failure –> you need a very good backup, and eventually hardware fallback machine in hot standby!
  • You can not work if developer have no or limited internet access, in train for example.
  • It required a bit of initial engineering, hence this article.

Access

Windows

Use Windows Remote desktop connection, define a DNS entry to access the server.

remote.desktop

Linux

Linux has a free remote desktop implementation of Microsoft protocol, if it not installed, run either on Debian

# apt-get install rdesktop

or in OpenSuSE

# zypper install rdesktop

or in RED HAT

# yum install rdesktop

Create a script .sh file to save the connection parameters:

rdesktop -A -C -k de-ch -r PRIMARYCLIPBOARD -u username -p password -xl  ipadress

 

Eclipse

One install for all users

  1. Unpack the latest eclipse in any location, I recommend on c:\eclipse-3.5, but any location where you have some space will work.
  2. Start eclipse as administrator and install all required 3r party plugin: we use M2Eclipse, Subversive for example.
  3. Stop Eclipse,
  4. Remove ALL write rights to ALL users including admin if needed.
  5. When Eclipse will start under a developer account, it will copy its configuration files into C:\Users\%USERNAME%\.eclipse
  6. Every users will be able to adjust the eclipse.ini but these settings are a good start (adapt memory to your requirements)
  7. Create a shortcut for every developer on their desktop pointing to c:\eclipse\eclipse.exe

C:\Users\cedric.walter\.eclipse\org.eclipse.platform_3.5.0_1770938306\configuration\eclipse.ini

-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.0.200.v20090519
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-configuration
../Users/cedric.walter/.eclipse/org.eclipse.platform_3.5.0/configuration
-Dfile.encoding="UTF-8"
-vmargs
-Xms2048m
-Xmx2048m
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:+UseParallelGC

Updating Eclipse

A rollout of new Eclipse version is easy thanks to symbolic link. Download junction.exe, a small tool to create symbolic links

Windows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer.

and run as admin

junction.exe c:\eclipse c:\eclipse-3.5

Now thanks to symbolic links any update to a major new version of eclipse will be plain easy: just delete the symbolic link c:\eclipse and create a new one to the new version!

Users with Multiple Eclipse workspaces

  1. Create an empty directory for hosting your new workspace, for example at
        e:\%USERNAME%\workspace\maven
  2. Create a new shortcut with this content
    C:\eclipse\eclipse.exe --launcher.ini
    "C:\Users\\%USERNAME%\.eclipse\org.eclipse.platform_3.5.0_1770938306\configuration\eclipse.ini"
    -data e:\\%USERNAME%\workspace\maven

Apache Maven

Maven Local repository, every user has it’s own

It is not recommend to share the local Maven repository cache among users as Maven has no locking concept in place. The local maven repository is expected to be located at

c:\users\%USERNAME%\.m2\repository

If you have enough space there for all your users, you can skip that chapter, Otherwise I will show you how to locate it anywhere on the file system.

Let’s store it at e:\%USERNAME%\repository, here I have choose another drive with more space as Maven local repository can be quite big (700Mb per user today)

The design chosen impose me to one more time play with symbolic links, using junction.exe in c:\users\%USERNAME%\.m2\repository pointing to e:%USERNAME%\repository

When you are logged in as a normal developer account, in a dos windows, run the following

junction.exe c:\users\%USERNAME%\.m2\repository e:\%USERNAME%\repository

Maven settings.xml, one for all users

I like the idea to maintain only one settings.xml. Apache Maven recommend to have one settings.xml per user (located in c:\users\%USERNAME%\.m2\settings.xml). This is true if you have different responsibilities among all your developers. For example some may not be able to deploy in Artifactory/Nexus while other can. Luckily, this is not the case as for today in our company. That is why I will only have one Settings.xml on server, located at c:\server.xml

I will use a hard link to c:\settings.xml. When you are logged in as a normal developer account, in a dos windows, run the following

fsutil hardlink create c:\users\%USERNAME%\.m2\settings.xml c:\settings.xml

This make Apache Maven think that the settings.xml is in the default location c:\users\%USERNAME%\.m2\

Updating Maven

I do use the same trick for having a unique version of maven binary on the server while keeping some flexibility thanks to symbolic links.

  1. Unpack Apache Maven anywhere
  2. As an admin, in a dos windows, run the following:
    junction.exe c:\maven-3.0-beta1 c:\maven

Now you can let all your developer reference in M2Eclipse this virtual directory c:\maven. Switching all developers to a new version is done by deleting and pointing to an older/newer version of Maven.

It is not finished

Our shared developer environment setup also virtualizes MYSQL (multiple schema per developer ) and Tomcat (per developer port range) using –D system variables in eclipse.ini

References

Scenario #2 - shared install

Cross-posted on Cedric Walter Weblog

 

In this scenario, a single install area is shared by many users. The "configuration" directory under the install area is home only to the config.ini as shipped with the product (it is not initialized). Every user has their own local standalone configuration location.

The set up for this scenario requires making the install area read-only for regular users. When users start Eclipse, this causes the configuration area to automatically default to a directory under the user home dir. If this measure is not taken, all users will end up using the same location for their configuration area, which is not supported.

JAZOON 2010, Day 1

by cedricwalter 6. June 2010 05:33

v3_jazoon_subt_black_web

After the latest keynote at 19:00PM

Innoveo meet Adcubum @ JAZOON

With some colleagues of Adcubum AG

4662410921_681f95f639

From left to the right: Michael Duenner, Cédric Walter, Leif Jakob, Stefan Buehler, Adrian Schawalder.
Note: I am drinking orange juice!

4663026950_eafe849639

From left to the right: Adrian Schawalder, Roger Holger, Cédric Walter and Leif Jakob.

Cross-posted on Cedric Walter Weblog

JAZOON 2010 - Total Cost of Ownership

by cedricwalter 6. June 2010 05:31

I will attend the keynote of Ken Schwaber @JAZOON 2010, before heading to the Office

Keynote
Wednesday, 2 June 2010, 9:00-10:00, Arena 5


Ken Schwaber
Scrum.org

Abstract
Scrum is the dominant Agile process, used by 84% of all organizations claiming to be agile. However, Martin Fowler calls Scrum “flaccid.” Worse, Jeff Sutherland, the codeveloper of Scrum with Ken Schwaber, measures that less than 50% of all organizations using Scrum are actually using iterative, incremental development. As Scrum spread, its founders expected the developers who had been disabled by waterfall would come back to life as excellent, well-tooled developers. The expectation was naive, given the rot that waterfall caused over the last twenty years.
To address this problem, Scrum.org partnered with Zuehlke and others to create as “immersion” course to revitalize the developers. The Professional Scrum Developer (PSD) course is a novel five-day course that teaches a cross-functional development team to be able to develop an increment of potentially shippable product within an iteration, or Sprint, on a Scrum Project using Java, .NET and other technology stacks.
Ken Schwaber from Scrum.org.will discuss this program and how it is constructed during this session. They will also discuss the progress to date in delivering these courses, and the next steps in the rollout.

Cross-posted on Cedric Walter Weblog

Jazoon 2010 in Zurich Sihlcity

by cedricwalter 6. June 2010 05:29

v3_jazoon_subt_black_web

Tomorrow I will be tweeting from the international industry conference on Java technology

Jazoon is an international industry conference on Java technology in Zurich. It addresses software developers and architects, IT decision-makers and consultants throughout Europe and around the world. Jazoon gives Java experts a platform in the heart of Europe where they share their ideas and experiences.
From 1 to 3 June 2010, Zurich will be the meeting place for the international Java community. By presenting a comprehensive conference program and creating a communicative atmosphere, Jazoon helps personal contacts grow and transcend technical, geographical and cultural boundaries. A supplementary program including an exhibition of solutions, tools and continuing education as well as career opportunities and various networking events ensure added benefits for every target group.

I am planning to attend the following conferences:

Tuesday, 1 June 201

9:30-10:30
Java SE and JavaFX: The Road Ahead
- Danny Coward

11:00-11:50
Pattern Driven Security Design, for Web Tier
- Manish Kumar Maheshwar

12:00-12:50
Web Frameworks and how they kill traditional security scanning
- Christian Hang
- Lars Andren

14:00-14:50
Practical Dynamic Modules (OSGi) Security -- Protecting More Than Just Data
- David Smith
- James Gould

15:00-15:50
Construction Techniques for Domain Specific Languages
- Neal Ford

16:30-17:20
If You Know JSF, You Know Portals and Portlets
- Wesley Hales

17:40-18:30
97 Things Every Programmer Should Know
- Kevlin Henney

Thursday, 3 June 2010

9:00-10:00
The Gaia satellite and Data Processing
- William O'Mullane

10:30-11:20
Essentials of Testing: The Tools You Need to Know
- Bettina Polasek
- Marco Cicolini

11:30-12:20
Spring 3.0 - Themes and Trends
- Jürgen Höller

13:30-14:20
Conversational Web Applications with Spring
- Micha Kiener
- Jürgen Höller

14:30-15:20
Spring ROO - A New Level of Enterprise Java Productivity
- Eberhard Wolff

16:00-16:20
Real Java EE testing with Arquillian
- Aslak Knutsen
- Dan Allen

16:00-16:50
Powerful Portals with JSF
- Andy Bosch

17:10-18:10
Software in the service of handicapped people: Research & Development at Otto Bock
- Hans-Willem van Vliet

Cross-posted on Cedric Walter Weblog

Lessons Learned from Dropbox

by Didier 3. May 2010 07:17

I am a “happy user” of Dropbox as early adopter since 2008. We are also using Dropbox intensively at Innoveo since 2009. A really cool service and tool when you have to deal with different computers (notebook, netbook, iPhone for me). If you don’t know Dropbox, you should have a try!

Dropbox is a very young company and tool. Drew Houston, co-founder and CEO of Dropbox, has published a “worth-a-read” presentation about some Lessons Learnt they have done. No rocket science, a lot of common sense, but as usual, "everything is in the implementation" ;-)

Some data about Dropbox /

  • founded in 2007, launched in 2008
  • 1 million users 7 months after launch
  • Sept 2008: 100'000 registered users, Jan 2010 (15 months): 4 million users
  • Monthly growth: 15-20%

Some slides

Cross-posted on Didier Beck Weblog

Presentation Zeitgeist 2009 @ SlideShare

by Didier 17. January 2010 06:37

SlideShare has published its “ruling trends in the world of presentations for the year gone by”. Funny, interesting, well done!

Some highlights:

  • The average number of slides in a presentation: 19.3
  • The maximum number of slides: 1’375 (!)
  • Presentation typography: Arial 42%, Times New Roman 22% (!), Wingdings 17%
  • Average number of pages per language: max = French with 38 :-)
  • Presentation formats: PPT 61%, PPTX 17%, PPS 14%
  • Average number of pictures: 19, average size of picture: 205 kb
  • 7% of all presentations without a single image!
  • Average size of presentation: 5.4 MB

Cross-posted on Didier Beck Weblog

Laurent is a Certified ScrumMaster!

by Didier 6. January 2010 01:08

As you may know, we are more and more using Scrum as a team-based framework for developing our Skye® standard software product (front-end solution for insurances) at Innoveo.

What is Scrum? (ScrumAlliance definition)

Scrum: A team-based framework to develop complex systems and products.

Scrum is an iterative, incremental framework for developing any product or managing any work. It allows teams to deliver a potentially shippable set of functionality every iteration, providing the agility needed to respond to rapidly changing requirements.

The Scrum framework constantly challenges its users to focus on improvement, and its Sprints provide the stability to address the ever-changing needs that occur in any project.

These characteristics have led to Scrum becoming the most popular method in the world of agile software development.

We are consequently very proud to inform you that Laurent Kempé, who is acting as our Innoveo ScrumMaster besides being our internal “Scrum champion”, has successfully passed his ScrumMaster certification!

 

Congratulation to Laurent for this nice step and recognition.

Next step is now to apply for the next level: Certified Scrum Practitioner, as shown below (ScrumAlliance certification process):

cross-posted on Didier Beck’s blog

About Innoveo

Innoveo is a software company whose products, services and technologies enable its clients to create business value. Its expertise in architecture (SOA), software engineering, infrastructure, and the insurance industry ensures that the company remains a valued business partner over the long term.