Slide 1

Slide 1 text

(without introducing more risk) Centralising and Decentralising Puppet Gareth Rushgrove Waves of change in technology and teams

Slide 2

Slide 2 text

(without introducing more risk) @garethr

Slide 3

Slide 3 text

(without introducing more risk) Gareth Rushgrove

Slide 4

Slide 4 text

(without introducing more risk) What we’ll cover This talk

Slide 5

Slide 5 text

- Modern software architecture - Modern software organisations - Reasons for the current zeitgeist - Science and literature Gareth Rushgrove

Slide 6

Slide 6 text

Centralise /ˈsɛntrəlʌɪz/ concentrate (control of an activity or organisation) under a single authority. Gareth Rushgrove

Slide 7

Slide 7 text

Decentralise /di:ˈsɛntrəlʌɪz/ to distribute the administrative powers or functions of (a central authority) over a less concentrated area Gareth Rushgrove

Slide 8

Slide 8 text

Gareth Rushgrove Talking of centralisation goes back a way

Slide 9

Slide 9 text

Gareth Rushgrove Talking of decentralisation is more recent

Slide 10

Slide 10 text

(without introducing more risk) The technology story Modern Software Architecture

Slide 11

Slide 11 text

Gareth Rushgrove From Mainframe to Microservices

Slide 12

Slide 12 text

From app servers to embedded servers Gareth Rushgrove

Slide 13

Slide 13 text

Gareth Rushgrove From WORA to polyglot programming

Slide 14

Slide 14 text

Gareth Rushgrove From ESB’s to adhoc HTTP services

Slide 15

Slide 15 text

Gareth Rushgrove From SOAP to REST

Slide 16

Slide 16 text

Gareth Rushgrove From data warehouse to data lake

Slide 17

Slide 17 text

Gareth Rushgrove From SQL and schemas to NoSQL

Slide 18

Slide 18 text

Gareth Rushgrove From rules engines to machine learning

Slide 19

Slide 19 text

The current direction of travel is to more decentralised systems Gareth Rushgrove

Slide 20

Slide 20 text

Pushing responsibility from singular technologies to individual components Gareth Rushgrove

Slide 21

Slide 21 text

And from upfront decisions to determinations made closer to the data or users Gareth Rushgrove

Slide 22

Slide 22 text

Gareth Rushgrove

Slide 23

Slide 23 text

Most of these technology changes have been driven bottom up, by virtue of adoption by individual software developers Gareth Rushgrove

Slide 24

Slide 24 text

(without introducing more risk) The organisation story Modern Software Teams

Slide 25

Slide 25 text

From outsourcing to insourcing Gareth Rushgrove

Slide 26

Slide 26 text

From waterfall to agile Gareth Rushgrove

Slide 27

Slide 27 text

Gareth Rushgrove “Expecting one of the usual greetings like "pleased to meet you," I was surprised that the first thing he said was "I think that architects are obsolete Joseph Hofstader, Microsoft Software Architect, Architecture Journal 2008 From ivory towers to no architects

Slide 28

Slide 28 text

Gareth Rushgrove You build it, you run it Werner Vogels, Amazon CTO From operations to devops “

Slide 29

Slide 29 text

From specialists to generalists Gareth Rushgrove

Slide 30

Slide 30 text

Gareth Rushgrove From specialists to generalists full stack engineers

Slide 31

Slide 31 text

Spotify Squads, Tribes and Guilds Gareth Rushgrove

Slide 32

Slide 32 text

Again, the current direction of travel appears to be to more decentralised teams Gareth Rushgrove

Slide 33

Slide 33 text

(without introducing more risk) Context for the current direction Why Decentralise Anyway?

Slide 34

Slide 34 text

Gareth Rushgrove State of DevOps Report

Slide 35

Slide 35 text

(without introducing more risk) 30x Gareth Rushgrove More frequent deployments Faster lead times than their peers 200x 2015 State of DevOps Report

Slide 36

Slide 36 text

(without introducing more risk) 60x Gareth Rushgrove Change success rate Faster mean time to recover 168x 2015 State of DevOps Report

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

(without introducing more risk) It’s not all about decentralising Counter Examples

Slide 39

Slide 39 text

Gareth Rushgrove “Platforms”

Slide 40

Slide 40 text

- Orchestration - Logging - Configuration - Self-healing - Storage Gareth Rushgrove - Load balancing - Service discovery - Scaling - Batch workloads - Lots more

Slide 41

Slide 41 text

Is Agile in practice really a centralising or decentralising force? Gareth Rushgrove

Slide 42

Slide 42 text

Gareth Rushgrove

Slide 43

Slide 43 text

Gareth Rushgrove Scaled Agile Framework

Slide 44

Slide 44 text

Gareth Rushgrove “I consider the need for some level of centralised control the main reason for using SAFe Thomas Karlsson http://agile-management.com/wordpress/when-to-use-safe-scaled-agile-framework/

Slide 45

Slide 45 text

Gareth Rushgrove

Slide 46

Slide 46 text

(without introducing more risk) Gareth Rushgrove Dev SRE Ops From http://web.devopstopologies.com/ by Matthew Skelton

Slide 47

Slide 47 text

Gareth Rushgrove Monorepos

Slide 48

Slide 48 text

Gareth Rushgrove

Slide 49

Slide 49 text

(without introducing more risk) A current example of the zeitgeist Containers as a Microcosm

Slide 50

Slide 50 text

Gareth Rushgrove Is Docker centralising or decentralising?

Slide 51

Slide 51 text

Decentralising the act of packaging software Gareth Rushgrove

Slide 52

Slide 52 text

Centralising the unit of running software Gareth Rushgrove

Slide 53

Slide 53 text

Facilitating the decentralisation of software development teams Gareth Rushgrove

Slide 54

Slide 54 text

By centralising the platform on which all software runs Gareth Rushgrove

Slide 55

Slide 55 text

(without introducing more risk) Some of the underpinning theory From Taylorism to Sociotechnical Systems

Slide 56

Slide 56 text

Gareth Rushgrove

Slide 57

Slide 57 text

A production efficiency methodology that breaks every action, job, or task into small and simple segments which can be easily analysed Gareth Rushgrove

Slide 58

Slide 58 text

Gareth Rushgrove - Separates execution of work from work planning - Separates direct labor from indirect labor - Replaces rule of thumb productivity estimates with precise measurements - Introduces time and motion study for optimum job performance and cost accounting

Slide 59

Slide 59 text

Sidebar Who thinks I just described Agile? Gareth Rushgrove

Slide 60

Slide 60 text

Gareth Rushgrove - Aims to achieve maximum job fragmentation to minimise skill requirements and job learning time - Makes possible payment-by-result method of wage determination

Slide 61

Slide 61 text

Sidebar Who thinks I just described the gig economy? Gareth Rushgrove

Slide 62

Slide 62 text

Taylorism has been widely discredited, but influences a great deal of management theory and practice Gareth Rushgrove

Slide 63

Slide 63 text

Gareth Rushgrove

Slide 64

Slide 64 text

Scientific Management is a system that is excellent for achieving highly efficient execution of known, repeatable processes at scale Gareth Rushgrove Team of Teams: New Rules of Engagement for a Complex World “

Slide 65

Slide 65 text

Gareth Rushgrove Team of Teams: New Rules of Engagement for a Complex World “Efficiency is no longer enough

Slide 66

Slide 66 text

Complexity produces a fundamentally different situation from the complicated challenges of the past Gareth Rushgrove Team of Teams: New Rules of Engagement for a Complex World “

Slide 67

Slide 67 text

Complexity means that, in spite of our increased abilities to track and measure, the world has become, in many ways, vastly less predictable Gareth Rushgrove Team of Teams: New Rules of Engagement for a Complex World “

Slide 68

Slide 68 text

Gareth Rushgrove Team of Teams: New Rules of Engagement for a Complex World “ Developing resilience, learning how to reconfigure to confront the unknown, is a much more effective way to respond to a complex environment

Slide 69

Slide 69 text

Gareth Rushgrove

Slide 70

Slide 70 text

(without introducing more risk) The field of Sociotechnical Systems suggests that all human systems include both a technical system and a social system Gareth Rushgrove https://en.wikipedia.org/wiki/Coevolution#Technological_coevolution

Slide 71

Slide 71 text

(without introducing more risk) Better outcomes are usually obtained by a reciprocal process of joint optimization, through which both the technical system and the social system change Gareth Rushgrove https://en.wikipedia.org/wiki/Coevolution#Technological_coevolution

Slide 72

Slide 72 text

(without introducing more risk) Gareth Rushgrove Conway’s Law as a classic example Organisations which design systems ... are constrained to produce designs which are copies of the communication structures of these organisations

Slide 73

Slide 73 text

Gareth Rushgrove

Slide 74

Slide 74 text

(without introducing more risk) If all you remember is Conclusions

Slide 75

Slide 75 text

Do we build distributed systems because we seek decentralised teams? Gareth Rushgrove

Slide 76

Slide 76 text

Or do we desire decentralised teams so we build distributed systems? Gareth Rushgrove

Slide 77

Slide 77 text

You’re probably centralising and decentralising different things at the same time Gareth Rushgrove

Slide 78

Slide 78 text

Beware local optima Gareth Rushgrove

Slide 79

Slide 79 text

To be an agile enterprise you need to be conscious and transparent about where you are centralising and decentralising Gareth Rushgrove

Slide 80

Slide 80 text

- Team of Teams General Stanley McChrystal - The New Kingmakers Stephen O’Grady - Designing Delivery Jeff Sussna - Antifragile Nassim Nicholas Taleb Gareth Rushgrove

Slide 81

Slide 81 text

Gareth Rushgrove Team of Teams: New Rules of Engagement for a Complex World “Surprisingly, that change was less about new technology than it was about culture – in other words, our approach to management

Slide 82

Slide 82 text

(without introducing more risk) Questions? And thanks for listening