YOUR ORGANIZATION IS KILLING YOUR SOFTWARE. Raffi &

YOUR ORGANIZATION IS KILLING YOUR SOFTWARE Raffi Krikorian @raffi & [email protected] Speed Advanced Technologies Center Mapping Safet...
Author: John Turner
1 downloads 2 Views 4MB Size
YOUR ORGANIZATION IS KILLING YOUR SOFTWARE

Raffi Krikorian @raffi & [email protected]

Speed

Advanced Technologies Center

Mapping

Safety

Autonomy

Advanced Technologies Center

Mapping

Safety

Autonomy

Speed

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

ROUTING

PRESENTATION

LOGIC

STORAGE & RETRIEVAL

T-Bird

T-Flock + Haplo Monorail Gizmoduck

Flock(s)

ROUTING

PRESENTATION

LOGIC

STORAGE & RETRIEVAL

T-Bird

T-Flock + Haplo Monorail Gizmoduck

Flock(s)

ROUTING

PRESENTATION

LOGIC

STORAGE & RETRIEVAL

T-Bird

T-Flock + Haplo Monorail Gizmoduck

Flock(s)

ROUTING

PRESENTATION

LOGIC

STORAGE & RETRIEVAL

T-Bird

T-Flock + Haplo Monorail Gizmoduck

Flock(s)

ROUTING

PRESENTATION

LOGIC

STORAGE & RETRIEVAL

T-Bird

T-Flock + Haplo Monorail Monorail

MySQL Gizmoduck

Flock(s)

ROUTING

PRESENTATION

LOGIC

STORAGE & RETRIEVAL

T-Bird

T-Flock + Haplo Monorail Monorail

MySQL Gizmoduck

Flock(s)

ROUTING

PRESENTATION

Monorail

LOGIC

STORAGE & RETRIEVAL

MySQL

ROUTING

PRESENTATION

LOGIC

STORAGE & RETRIEVAL

MySQL

T-Bird

Monorail

Flock

Memcache

Redis

ROUTING

PRESENTATION

LOGIC

STORAGE & RETRIEVAL

MySQL

T-Bird

Monorail

Flock

Memcache

Redis

ROUTING

PRESENTATION

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

User

T-Bird

Timeline

Flock

Social Graph

Memcache

DMS

Redis

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMS

Redis

PRESENTATION

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMS

Redis

PRESENTATION

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMs

Redis

PRESENTATION

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMs

Redis

PRESENTATION

ROUTING

PRESENTATION

Monorail

LOGIC

STORAGE & RETRIEVAL

MySQL

Single codebase All computational logic are in-memory Easy to scale horizontally Handled by a central operations team

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMs

Redis

PRESENTATION

Many smaller, clearly scoped services Single responsibility principle Independently managed Clear ownership for each service

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

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

Eric Raymond

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

Me

ROUTING

Team

PRESENTATION

Monorail

LOGIC

STORAGE & RETRIEVAL

MySQL

Single codebase All computational logic are in-memory Easy to scale horizontally Handled by a central operations team

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMs

Redis

PRESENTATION

Many smaller, clearly scoped services Single responsibility principle Independently managed Clear ownership for each service

ROUTING

PRESENTATION

Monorail

LOGIC

STORAGE & RETRIEVAL

MySQL

Single codebase All computational logic are in-memory Easy to scale horizontally Handled by a central operations team

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMs

Redis

PRESENTATION

Many smaller, clearly scoped services Single responsibility principle Independently managed Clear ownership for each service

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMs

Redis

PRESENTATION

Many smaller, clearly scoped services Single responsibility principle Independently managed Clear ownership for each service

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMs

Redis

PRESENTATION

Many smaller, clearly scoped services Single responsibility principle Independently managed Clear ownership for each service

s m tea

m a e t

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

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMs

Redis

PRESENTATION

Many smaller, clearly scoped services Single responsibility principle Independently managed Clear ownership for each service

s m tea

m a e t

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

organization

system

Any organization that designs a system (defined more produce systems) design will broadly here than just information structure inevitably produce a design whose structure is a copy of the organization's communication structure.

Melvin Conway

Melvin Conway (sorta)

.

ROUTING

TFE

LOGIC

STORAGE & RETRIEVAL

Tweet

MySQL

Monorail

User

T-Bird

API

Timeline

Flock

Web

Social Graph

Memcache

DMs

Redis

PRESENTATION

Many smaller, clearly scoped services Single responsibility principle Independently managed Clear ownership for each service

s m tea

m a e t

10

Beautiful 8

Acceptable 6

Average 4

Poor 2

Destructive 0 1.5

1

2.5

2

3.5

3

4.5

4

5.5

5

6.5

5+

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

64 bytes

32 bytes

64 bytes 48 bytes 32 bytes

Product should be a dictatorship.

Michael Arrington

0. It’s not all about the code! 1. Small teams can do big things. Full stack teams keeps your architecture 2. flexible. 3. Make your teams mimic your architecture. 4. Make product a dictatorship. Me

THANKS!

Raffi Krikorian @raffi & [email protected]