YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock...
Transcript of YOUR ORGANIZATION IS KILLING YOUR SOFTWARE · 2017-08-23 · ROUTING PRESENTATION LOGIC Flock...
Raffi Krikorian @raffi & [email protected]
YOUR ORGANIZATION IS KILLING YOUR SOFTWARE
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
LOGICPRESENTATIONROUTING
T-Bird
T-Flock + Haplo
Flock(s)
Gizmoduck
Monorail
STORAGE & RETRIEVAL
PRESENTATIONROUTING
T-Bird
T-Flock + Haplo
Flock(s)
Gizmoduck
Monorail
STORAGE & RETRIEVAL
LOGIC
ROUTING
T-Bird
T-Flock + Haplo
Flock(s)
Gizmoduck
Monorail
STORAGE & RETRIEVAL
LOGICPRESENTATION
T-Bird
T-Flock + Haplo
Flock(s)
Gizmoduck
Monorail
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
T-Bird
T-Flock + Haplo
Flock(s)
Gizmoduck
Monorail
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
Monorail MySQL
T-Bird
T-Flock + Haplo
Flock(s)
Gizmoduck
Monorail
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
Monorail MySQL
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
Monorail MySQL
Redis
Memcache
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
Flock
T-Bird
MySQL
Monorail
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
Redis
Memcache
Flock
T-Bird
MySQL
Monorail
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
Redis
Memcache
Flock
T-Bird
MySQLTweet
User
Timeline
Social Graph
DMS
TFE
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
Redis
Memcache
Flock
T-Bird
MySQLTweet
User
Timeline
Social Graph
DMS
API
Web
Monorail
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
Redis
Memcache
Flock
T-Bird
MySQLTweet
User
Timeline
Social Graph
DMS
API
Web
Monorail
TFE
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
Redis
Memcache
Flock
T-Bird
MySQLTweet
User
Timeline
Social Graph
DMs
API
Web
Monorail
TFE
STORAGE & RETRIEVAL
LOGICPRESENTATIONROUTING
Redis
Memcache
Flock
T-Bird
MySQLTweet
User
Timeline
Social Graph
DMs
API
Web
Monorail
TFE
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
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
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
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
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
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
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
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
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
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
.
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
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+
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
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!
Raffi Krikorian @raffi & [email protected]
THANKS!