YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock...

54
Raffi Krikorian @raffi & raffi[email protected] YOUR ORGANIZATION IS KILLING YOUR SOFTWARE

Transcript of YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock...

Page 1: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Raffi Krikorian @raffi & [email protected]

YOUR ORGANIZATION IS KILLING YOUR SOFTWARE

Page 2: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Speed

Page 3: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 4: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 5: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 6: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Advanced Technologies Center

Mapping Safety Autonomy

Page 7: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Advanced Technologies Center

Mapping Safety Autonomy

Page 8: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 9: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Speed

Page 10: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

We're programmers. Programmers are, in their hearts, architects, and the first thing they want 

to do when they get to a site is to bulldoze the place flat and build something grand. 

We're not excited by incremental renovation: tinkering, improving, planting flower beds.

Joel Spolsky

Page 11: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 12: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

LOGICPRESENTATIONROUTING

T-Bird

T-Flock + Haplo

Flock(s)

Gizmoduck

Monorail

STORAGE & RETRIEVAL

Page 13: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

PRESENTATIONROUTING

T-Bird

T-Flock + Haplo

Flock(s)

Gizmoduck

Monorail

STORAGE & RETRIEVAL

LOGIC

Page 14: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

ROUTING

T-Bird

T-Flock + Haplo

Flock(s)

Gizmoduck

Monorail

STORAGE & RETRIEVAL

LOGICPRESENTATION

Page 15: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

T-Bird

T-Flock + Haplo

Flock(s)

Gizmoduck

Monorail

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Page 16: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

T-Bird

T-Flock + Haplo

Flock(s)

Gizmoduck

Monorail

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Monorail MySQL

Page 17: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

T-Bird

T-Flock + Haplo

Flock(s)

Gizmoduck

Monorail

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Monorail MySQL

Page 18: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Monorail MySQL

Page 19: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Redis

Memcache

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Flock

T-Bird

MySQL

Monorail

Page 20: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQL

Monorail

Page 21: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMS

Page 22: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

TFE

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMS

API

Web

Monorail

Page 23: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMS

API

Web

Monorail

TFE

Page 24: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMs

API

Web

Monorail

TFE

Page 25: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMs

API

Web

Monorail

TFE

Page 26: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Single codebaseAll computational logic are in-memoryEasy to scale horizontallyHandled by a central operations team

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Monorail MySQL

Many smaller, clearly scoped servicesSingle responsibility principleIndependently managedClear ownership for each service

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMs

API

Web

Monorail

TFE

Page 27: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Any organization that designs a system (defined more broadly here than just information systems) will

inevitably produce a design whose structure is a copy of the organization's communication structure.

Melvin Conway

Page 28: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

If you have four developers writing a compiler you will get a four-pass compiler.

Eric Raymond

Page 29: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Setting up the team says more about architecture than the architecture itself.

Me

Page 30: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 31: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 32: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 33: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 34: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 35: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 36: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 37: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Single codebaseAll computational logic are in-memoryEasy to scale horizontallyHandled by a central operations team

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Monorail MySQL

Many smaller, clearly scoped servicesSingle responsibility principleIndependently managedClear ownership for each service

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMs

API

Web

Monorail

TFETeam

Page 38: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Single codebaseAll computational logic are in-memoryEasy to scale horizontallyHandled by a central operations team

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Monorail MySQL

Many smaller, clearly scoped servicesSingle responsibility principleIndependently managedClear ownership for each service

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMs

API

Web

Monorail

TFE

Page 39: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Many smaller, clearly scoped servicesSingle responsibility principleIndependently managedClear ownership for each service

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMs

API

Web

Monorail

TFE

Page 40: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Many smaller, clearly scoped servicesSingle responsibility principleIndependently managedClear ownership for each service

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMs

API

Web

Monorail

TFE

teams

team

Page 41: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Ways must be found to reward design managers for keeping their organizations lean and flexible. There is need for a philosophy of system design management

which is not based on the assumption that adding manpower simply adds to productivity.

Melvin Conway

Page 42: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Many smaller, clearly scoped servicesSingle responsibility principleIndependently managedClear ownership for each service

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMs

API

Web

Monorail

TFE

teams

team

Page 43: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Any organization that designs a system (defined more broadly here than just information systems) will

inevitably produce a design whose structure is a copy of the organization's communication structure.

Melvin Conway

Page 44: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Melvin Conway

Any organization that designs a system (defined more broadly here than just information systems) will

inevitably produce a design whose structure is a copy of the organization's communication structure.

designstructure

produce

organization

Melvin Conway (sorta)

system

.

Page 45: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 46: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Many smaller, clearly scoped servicesSingle responsibility principleIndependently managedClear ownership for each service

STORAGE & RETRIEVAL

LOGICPRESENTATIONROUTING

Redis

Memcache

Flock

T-Bird

MySQLTweet

User

Timeline

Social Graph

DMs

API

Web

Monorail

TFE

teams

team

Page 47: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache
Page 48: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

0

2

4

6

8

10

1.5 2.5 3.5 4.5 5.5 6.5

Beautiful

Acceptable

Average

Poor

Destructive

1 2 3 4 5 5+

Page 49: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

You know you have reached perfection of design not when you have nothing more to add, but when you

have nothing more to take away.

Antoine de Saint-Exupéry

Page 50: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

64 bytes

32 bytes

Page 51: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

64 bytes

48 bytes

32 bytes

Page 52: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Product should be a dictatorship.

Michael Arrington

Page 53: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

1. Small teams can do big things.

2. Full stack teams keeps your architecture flexible.

3. Make your teams mimic your architecture.

4. Make product a dictatorship.

Me

0. It’s not all about the code!

Page 54: YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock T-Bird MySQL Monorail. STORAGE & RETRIEVAL ROUTING PRESENTATION LOGIC Redis Memcache

Raffi Krikorian @raffi & [email protected]

THANKS!