LESSONS FROM A POLYGLOT PORTFOLIO james lewis - - PowerPoint PPT Presentation

lessons from a polyglot portfolio
SMART_READER_LITE
LIVE PREVIEW

LESSONS FROM A POLYGLOT PORTFOLIO james lewis - - PowerPoint PPT Presentation

LESSONS FROM A POLYGLOT PORTFOLIO james lewis jalewis@thoughtworks.com @boicy 2 pmo ops THE BUSINESS testers developers pmo ops THE BUSINESS testers developers 6 7 data goes in here -> ETL takes over here -> <- no one


slide-1
SLIDE 1

LESSONS FROM A POLYGLOT PORTFOLIO

james lewis jalewis@thoughtworks.com @boicy

slide-2
SLIDE 2 2
slide-3
SLIDE 3

pmo

  • ps

testers developers THE BUSINESS

slide-4
SLIDE 4

pmo

  • ps

testers developers THE BUSINESS

slide-5
SLIDE 5
slide-6
SLIDE 6 6
slide-7
SLIDE 7 7
slide-8
SLIDE 8 8

data goes in here -> ETL takes over here -> <- no one knows what happens here

slide-9
SLIDE 9 9
slide-10
SLIDE 10

Concept Development Tested Approved Released

Idea

slide-11
SLIDE 11

Concept Development Tested Approved Released

Idea

slide-12
SLIDE 12

Concept Development Tested Approved Released

Idea

slide-13
SLIDE 13

Concept Development Tested Approved Released

Idea

slide-14
SLIDE 14

Concept Development Tested Approved Released

Idea

slide-15
SLIDE 15

Concept Development Tested Approved Released

Idea

slide-16
SLIDE 16

Concept Development Tested Approved Released

Idea

slide-17
SLIDE 17

Concept Development Tested Approved Released

Idea

slide-18
SLIDE 18

Concept Development Tested Approved Released

Idea

slide-19
SLIDE 19

Concept Development Tested Approved Released

Idea

slide-20
SLIDE 20

Concept Development Tested Approved Released

Idea

slide-21
SLIDE 21

Concept Development Tested Approved Released

Idea Idea

slide-22
SLIDE 22

Concept Development Tested Approved Released

Idea Idea

slide-23
SLIDE 23

Concept Development Tested Approved Released

Idea Idea

slide-24
SLIDE 24

Concept Development Tested Approved Released

Idea Idea

slide-25
SLIDE 25

Concept Development Tested Approved Released

Idea Idea

slide-26
SLIDE 26

Concept Development Tested Approved Released

Idea Idea

slide-27
SLIDE 27

Concept Development Tested Approved Released

Idea Idea

slide-28
SLIDE 28

Concept Development Tested Approved Released

Idea Idea

slide-29
SLIDE 29

Concept Development Tested Approved Released

Idea Idea

slide-30
SLIDE 30

techniques tools platforms languages

slide-31
SLIDE 31

techniques tools platforms languages

gated development PMO design up front project branches wormhole systems silo’d functions

slide-32
SLIDE 32

techniques tools platforms languages

sqlserver powershell TFS

  • dd entity thing

gated development PMO design up front project branches wormhole systems silo’d functions visual studio

slide-33
SLIDE 33

techniques tools platforms languages

sqlserver powershell TFS CLR windows

  • dd entity thing

gated development PMO design up front project branches wormhole systems silo’d functions visual studio

slide-34
SLIDE 34

techniques tools platforms languages

sqlserver powershell TFS CLR windows vb.net

  • dd entity thing

gated development PMO design up front project branches wormhole systems silo’d functions TSQL (a small amount of c#) visual studio

slide-35
SLIDE 35
slide-36
SLIDE 36 36
  • ur heroes start their journey
slide-37
SLIDE 37

CONSULTANTS! HELL YEAH!

slide-38
SLIDE 38
slide-39
SLIDE 39

“the measure of a body's resistance to changes in velocity”

39
slide-40
SLIDE 40

inertia

slide-41
SLIDE 41

inertia

  • rganisational
slide-42
SLIDE 42

inertia technical

slide-43
SLIDE 43 43

Start small, low risk to build trust product teams agile software development service oriented architecture

slide-44
SLIDE 44

pmo

  • ps

testers developers THE BUSINESS

product teams

slide-45
SLIDE 45 45

product teams

slide-46
SLIDE 46 46

Start small, low risk to build trust product teams agile software development service oriented architecture

slide-47
SLIDE 47 47

Start small, low risk to build trust product teams agile software development service oriented architecture

slide-48
SLIDE 48

Concept Development Tested Approved Released

Idea

agile software development

slide-49
SLIDE 49

Concept Development Tested Approved Released

Idea

agile software development

slide-50
SLIDE 50

Concept Development Tested Approved Released

Idea

agile software development

slide-51
SLIDE 51

Concept Development Tested Approved Released

Idea

agile software development

slide-52
SLIDE 52

Concept Development Tested Approved Released

Idea

agile software development

slide-53
SLIDE 53

Concept Development Tested Approved Released

Idea Idea

agile software development

slide-54
SLIDE 54

Concept Development Tested Approved Released

Idea Idea

agile software development

slide-55
SLIDE 55

Concept Development Tested Approved Released

Idea Idea

agile software development

slide-56
SLIDE 56

Concept Development Tested Approved Released

Idea Idea

agile software development

slide-57
SLIDE 57

Concept Development Tested Approved Released

Idea Idea

agile software development

slide-58
SLIDE 58 58

Start small, low risk to build trust product teams agile software development service oriented architecture

Concept Development Tested Approved Released Idea Idea
slide-59
SLIDE 59 59

Start small, low risk to build trust product teams agile software development service oriented architecture

Concept Development Tested Approved Released Idea Idea
slide-60
SLIDE 60

Start small, low risk to build trust

slide-61
SLIDE 61

Start small, low risk to build trust

slide-62
SLIDE 62 62

Start small, low risk to build trust product teams agile software development service oriented architecture

Concept Development Tested Approved Released Idea Idea
slide-63
SLIDE 63 63

Start small, low risk to build trust product teams agile software development service oriented architecture

Concept Development Tested Approved Released Idea Idea
slide-64
SLIDE 64

service oriented architecture

slide-65
SLIDE 65

service oriented architecture

slide-66
SLIDE 66 66

service oriented architecture

smart endpoints and dumb pipes

slide-67
SLIDE 67 67

Start small, low risk to build trust product teams agile software development service oriented architecture

Concept Development Tested Approved Released Idea Idea
slide-68
SLIDE 68

techniques tools platforms languages

sqlserver powershell TFS CLR windows vb.net

  • dd 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

slide-69
SLIDE 69

techniques tools platforms languages

sqlserver powershell TFS CLR windows vb.net

  • dd 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 cd git resharper agile

slide-70
SLIDE 70

techniques tools platforms languages

sqlserver powershell TFS CLR windows vb.net

  • dd 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 cd git resharper C# agile

slide-71
SLIDE 71 71

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-72
SLIDE 72 72

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-73
SLIDE 73

separate products

slide-74
SLIDE 74

separate products

home motor life

slide-75
SLIDE 75

separate products

and cross-cutting business capabilities home motor life my account

slide-76
SLIDE 76 76

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-77
SLIDE 77 77

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-78
SLIDE 78

conway’s law

slide-79
SLIDE 79

conway’s law

slide-80
SLIDE 80

conway’s law

slide-81
SLIDE 81

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

  • rganizations”

Melvin Conway, 1968

slide-82
SLIDE 82

conway’s law

slide-83
SLIDE 83 83

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-84
SLIDE 84 84

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-85
SLIDE 85

Object

microservices

slide-86
SLIDE 86 Object Object Object Object

microservices

slide-87
SLIDE 87

microservices

slide-88
SLIDE 88

microservices

slide-89
SLIDE 89

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

slide-90
SLIDE 90

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

microservices

slide-91
SLIDE 91
slide-92
SLIDE 92 92

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-93
SLIDE 93 93

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-94
SLIDE 94
slide-95
SLIDE 95

event sourcing

slide-96
SLIDE 96 96

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-97
SLIDE 97 97

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-98
SLIDE 98

monitoring

slide-99
SLIDE 99

“the understanding of a specific cause and effect in a specific context”

99
slide-100
SLIDE 100 100

insight

slide-101
SLIDE 101 101
  • perational insight
slide-102
SLIDE 102 102

business insight

slide-103
SLIDE 103
slide-104
SLIDE 104 104

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-105
SLIDE 105 105

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-106
SLIDE 106 106

right tool for the job

slide-107
SLIDE 107

right tool for the job

slide-108
SLIDE 108

“Replaceable Component Architectures”

108

Dan North

right tool for the job

slide-109
SLIDE 109

right tool for the job

slide-110
SLIDE 110

right tool for the job

slide-111
SLIDE 111

right tool for the job

slide-112
SLIDE 112

separate products conway’s law microservices event sourcing monitoring right tool for the job

slide-113
SLIDE 113 113

in summary

slide-114
SLIDE 114 114

techniques tools platforms languages

product team TDD go cd git resharper C# agile microservices event sourcing API onion CD infra automation conways law mongodb cubism D3 rabbitmq jasmine phantomjs newrelic node.js CLR HDFS windows linux F# vb.net javascript SASS knockout erlang reactive extensions

slide-115
SLIDE 115 115

along the way we all learned some things

slide-116
SLIDE 116

▫︎ 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
slide-117
SLIDE 117 117

change takes longer than you think

slide-118
SLIDE 118 118

#neverdone

slide-119
SLIDE 119

THANKS

james lewis jalewis@thoughtworks.com @boicy