LESSONS FROM A POLYGLOT PORTFOLIO - microxchg.io · microservices event sourcing monitoring right...

Preview:

Citation preview

LESSONS FROM A POLYGLOT PORTFOLIO

james lewis

jalewis@thoughtworks.com @boicy

2

pmoops

testersdevelopers

THE BUSINESS

pmoops

testersdevelopers

THE BUSINESS

6

7

8

data goes in here ->

ETL takes over here ->

<- no one knows what happens here

9

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Concept Development Tested Approved Released

Idea

Idea

Concept Development Tested Approved Released

Idea

Idea

Concept Development Tested Approved Released

Idea

Idea

Concept Development Tested Approved Released

Idea

Idea

Concept Development Tested Approved Released

Idea

Idea

Concept Development Tested Approved Released

Idea

Idea

Concept Development Tested Approved Released

Idea

Idea

Concept Development Tested Approved Released

Idea

Idea

Concept Development Tested Approved Released

Idea

Idea

techniques tools

platforms languages

techniques tools

platforms languages

gated development

PMO

design up front

project branches

wormhole systems

silo’d functions

techniques tools

platforms languages

sqlserver

powershell

TFS

odd entity thing

gated development

PMO

design up front

project branches

wormhole systems

silo’d functions

visual studio

techniques tools

platforms languages

sqlserver

powershell

TFS

CLR

windows

odd entity thing

gated development

PMO

design up front

project branches

wormhole systems

silo’d functions

visual studio

techniques tools

platforms languages

sqlserver

powershell

TFS

CLR

windows

vb.net

odd entity thing

gated development

PMO

design up front

project branches

wormhole systems

silo’d functions

TSQL

(a small amount of c#)

visual studio

36

our heroes start their journey

CONSULTANTS!

HELL YEAH!

“the measure of a body's resistance to

changes in velocity”

39

inertia

inertiaorganisational

inertiatechnical

43

Start small, low risk to build trust

product teams

agile software development

service oriented architecture

pmoops

testersdevelopers

THE BUSINESS

product teams

45

product teams

46

Start small, low risk to build trust

product teams

agile software development

service oriented architecture

47

Start small, low risk to build trust

product teams

agile software development

service oriented architecture

Concept Development Tested Approved Released

Idea

agile software development

Concept Development Tested Approved Released

Idea

agile software development

Concept Development Tested Approved Released

Idea

agile software development

Concept Development Tested Approved Released

Idea

agile software development

Concept Development Tested Approved Released

Idea

agile software development

Concept Development Tested Approved Released

Idea

Idea

agile software development

Concept Development Tested Approved Released

Idea

Idea

agile software development

Concept Development Tested Approved Released

Idea

Idea

agile software development

Concept Development Tested Approved Released

Idea

Idea

agile software development

Concept Development Tested Approved Released

Idea

Idea

agile software development

58

Start small, low risk to build trust

product teams

agile software development

service oriented architecture

Concept Development Tested Approved Released

Idea

Idea

59

Start small, low risk to build trust

product teams

agile software development

service oriented architecture

Concept Development Tested Approved Released

Idea

Idea

Start small, low risk to build trust

Start small, low risk to build trust

62

Start small, low risk to build trust

product teams

agile software development

service oriented architecture

Concept Development Tested Approved Released

Idea

Idea

63

Start small, low risk to build trust

product teams

agile software development

service oriented architecture

Concept Development Tested Approved Released

Idea

Idea

service oriented architecture

service oriented architecture

66

service oriented architecture

smart endpoints and dumb pipes

67

Start small, low risk to build trust

product teams

agile software development

service oriented architecture

Concept Development Tested Approved Released

Idea

Idea

techniques tools

platforms languages

sqlserver

powershell

TFS

CLR

windows

vb.net

odd entity thing

gated development

PMO

design up front

project branches

wormhole systems

silo’d functions

TSQL

(a small amount of c#)

visual studio

product team

TDD agile

techniques tools

platforms languages

sqlserver

powershell

TFS

CLR

windows

vb.net

odd entity thing

gated development

PMO

design up front

project branches

wormhole systems

silo’d functions

TSQL

(a small amount of C#)

visual studio

product team

TDD

go cdgit

resharper

agile

techniques tools

platforms languages

sqlserver

powershell

TFS

CLR

windows

vb.net

odd entity thing

gated development

PMO

design up front

project branches

wormhole systems

silo’d functions

TSQL

(a small amount of C#)

visual studio

product team

TDD

go cdgit

resharper

C#

agile

71

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

72

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

separate products

separate products

home motor life

separate products

and cross-cutting business capabilities

home motor life

my account

76

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

77

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

conway’s law

conway’s law

conway’s law

“…organizations which design systems … are constrained to produce designs which are copies of the communication structure of those organizations”

Melvin Conway, 1968

conway’s law

83

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

84

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

Object

microservices

Object

Object

Object

Object

microservices

microservices

microservices

AS WE CHUNK UP DOMAINS, EACH DOMAIN SHOULD BE SMALL ENOUGH TO FIT IN MY HEAD

microservices

AND WHILE I HAVE A GIANT HEAD, ITS NOT FULL OF MUCH STUFF SO THATS OK...

microservices

92

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

93

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

event sourcing

96

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

97

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

monitoring

“the understanding of a specific cause

and effect in a specific context”

99

100

insight

101

operational insight

102

business insight

104

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

105

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

106

right tool for the job

right tool for the job

“Replaceable Component Architectures”

108

Dan North

right tool for the job

right tool for the job

right tool for the job

right tool for the job

separate products

conway’s law

microservices

event sourcing

monitoring

right tool for the job

113

in summary

114

techniques tools

platforms languages

product team

TDD

go cd

git

resharper

C#

agile

microservices

event sourcing

API onion CD

infra automation

conways law

mongodbcubism

D3rabbitmq

jasmine

phantomjs

newrelic

node.js CLR

HDFS windows

linux

F#vb.net

javascript

SASS

knockouterlang

reactive extensions

115

along the way we all learned some things

▫︎ events are awesome

▫︎ events suck

▫︎ taking on new languages is scary, but exciting

▫︎ because javascript (WAT?)

▫︎API design is really really important

▫︎ asynchronicity, wait(10.seconds()), is tedious

▫︎ silo’d metrics suck

▫︎ just saying “devops” doesn’t make it devops (and it’s really scary to devs and ops)

116

117

change takes longer than you think

118

#neverdone

THANKSjames lewis

jalewis@thoughtworks.com @boicy

Recommended