daniel rabinovich - velocity 2014 santa clara

Post on 05-Dec-2014

3.050 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Cultural Implications of Technical Decisions

Daniel RabinovichCTOMercadoLibre (NASDAQ: MELI)

@drabinovich

Agenda

Who we are

The situation

The Change Process

Some Results

Who we areMercadoLibre (NASDAQ: MELI) is the #1 e-commerce platform in Latin America, #8 in the world

Agenda

Who we are

The situation

The Change Process

Some Results

Situation in 2010We were suffering the “Snowball Effect caused by Monolithic Architectures”

More processes

Larger monolith

Graphic adapted from Peter Fuda & The Alignment Company

Larger monolith

More processes

Monoliths cause a Passive/Defensive CultureCompliance becomes more important than achievements.

Source: Human Synergistics

ApprovalMore concerned about co-workers than users

ConventionalRestrictions imposed by rules and processes

DependentLack of information, empowerment and flexibility

EvasiveTendency to blame others (usually authors of processes)

From a Passive to a Constructive StyleWhere achievement is more important than compliance

Source: Human Synergistics

AchievementSet challenging goals, take risks to meet them

Self-RealizationSatisfaction is solving the problem, not complying with a process

HumanisticAlways challenging others to push the envelope

Achievement <- Empowerment <- FlexibilityWe gave up some control in order to achieve empowerment

Monolithic(Passive Culture)

Decoupled(Constructive Culture)

Agenda

Who we are

The situation

The Change Process

Some results

Split our company into independent “cells”Small teams require few processes. Power was shifted from “architects” to “cell owners”.

Each “cell” works as if it were a separate company:

own processes, own data, own technology

A manager’s job is about eliminating processes

Tools: Cells operate their own infrastructureCells are responsible for stability and scalability of their products.

(Self Provisioning)

(Monitoring)

(Automatic Alarms)

With great power comes great responsibility

How to compensate the lack of control?

Generate Peer PressureAs soon as an API is created, internal clients demand quality and service

New API

Original Client

New Clients demand Quality and Usability

Peers demand API Usability

Pretty Print on a Regular BrowserUsing actual REST URLs, API must be learnable for Developers and Product Managers

For machines(minimum bandwith)

For humans(minimum learning effort)

URL Consistency – Only One APICreating many APIs is a way of asking external users to solve internal technical problems

Balancing Logic (Collectively Maintained)

Base ResourcesCells handle

only CRUD Ops

Complex queries are handled bydifferent cells

Push Notifications

Consistent URLsenable Learnability

An API is, first and foremost, an interface for humans

What about organizational changes?

Eliminated the QA GroupNow developers test their code. Another way of generating empowerment.

Project1

Project 2

Project 3

Developers QA Engineers

Cell1

Cell 2

Cell 3

Eliminated the Product Management GroupPD Heads also became PMs. Projects may be initiated either within BUs or PD.

ProductManagem

ent

ProductDevelopment

Detailed Spec

Sponsor

High Level Goal

Before After

How to compensate the lack of specialization?

Staff Groups provide expertise to cellsDegree of involvement depends on the nature of each cell.

User Experience

Business Assurance

PM Teams inside BUs

“Staff” groups provide services

Empowerment attracts the right kind of talent

Agenda

Who we are

The situation

The Change Process

Some results

Some Results

Image: iPROFS Technology Blog

Before After

1 release every 2 weeks 1 release every 3 secs

1 location 7 locations

270 physical servers 11,000 OpenStack Instances

3 Developers / QA 22 Developers / “B”A

Closed Platform Thousands of External Developers

Agenda

Who we are

The situation

The Change Process

Some results

Wrapping up...

Wrapping up...

Monoliths cause a Passive/Defensive Culture

Split our company into many independent “cells”

Cells operate and monitor their own infrastructure

Generate Peer Pressure to compensate the lack of control

Strict rules for API Usability, many tools to achieve it

Eliminated QA group, developers test their code

Eliminated the Product Management Group, reinforcing ownership

Culture eats strategy for breakfast. Take it seriously.

Thank you!

Cultural Implications of Technical Decisions

Daniel RabinovichCTOMercadoLibre (NASDAQ: MELI)

@drabinovich

top related