W-JAX 2017 Keynote. It's a small world after all. How thinking small is changing software...

Preview:

Citation preview

It’s a small worldafter allSander Hoogendoorn

ditisagile.nl

Mentoring ▪ Consulting ▪ TrainingAgile ▪ Software architecture ▪ Code

@aahoogendoorn

Sander HoogendoornIndependent dad, software architect, agile coach, programmer, speaker, writer

CTO ANVA

Former CTO insurance company

Former global agile thoughtleaderCapgemini

sanderhoogendoorn.com

aahoogendoorn

aahoogendoorn

sander@ditisagile.nl

Next

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 7

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 8

The times they are

a-changingFaster than you think

Read more …

Hallo

Read more …

Moore’s LawThe number of transistors in a dense integrated circuit doubles approximately every two years.

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 11

The IBM Personal Computer 5150The simplest configuration has 16K on-board RAM and uses an audio cassette to load and save data. A floppy drive is optional. A hard drive was not supported. A system for home or school with a memory of 64K bytes, a single diskette drive and its own display, was priced around $3,000.

Buy now

Amazon EC2

Then, in 2006, Amazon launched its Elastic Compute cloud (EC2) as a

commercial web service that allows small companies and individuals to rent

computers on which to run their own computer applications.

Hallo

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 15

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 16

Where software goes wrong

HalloContinue

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 22

Add another feature And never look back

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 23

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 24

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 25

Too much dependencies will kill you every time

Continue

Read more …

Welcome to the world of small moveable parts

Evenshortercycles

Beyond agileand Scrum

Minimalviable

productsStop doing

projects

Even smallerteams

Autonomous andself-organising

Even smaller

componentsMicroservices

Thecontinuous

cultureEverything willbe continuous

Less is moreDeliver minimal viable products, not projects

Submit

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 44

Complex problems require continuous exploration

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 45

The iron triangle of project management

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 46

Stop planning

Read more …

Minimal viable productsThink small, deploy early and frequently

Roadmaps over plansWhile there is value in the items on the right, we value the items on the left more

Continue

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 50

Do we need this

NOW?

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 51

Less estimates

Even shorter cyclesAgile beyond Scrum

Continue

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 54

What does agile mean to you?

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 55

Does agile scale? Is large scale agile just multiple copies of Scrum?

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 56

Or does large scale agile require a large scale process?

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 57

Let’s all copy Spotify!

You are not Spotify!(unless you actually are Spotify)

Read more …

Does agile scale?If you don’t succeed at agile with a 5-person team, what makes you think you’ll succeed at enterprise level?

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 59

The red sprint anti-pattern

Stop sprinting

Wouldn’t it be nice?

Next

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 62

To satisfy the customer through early and continuous delivery of valuable softwareAgile manifesto

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 63

How often do you release to production?

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 64

Continuous delivery An approach in which teams ensure that every change to the system is releasable, and that we can release any version at the push of a button.

Aimed to make releases boring, so we can deliver frequently and get fast feedback on what users care about.Jez Humble

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 65

Continuous flow

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 66

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 67

Delivery pipelines Fully automated deployment machinery

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 68

Automated testing delivers continuous feedback Fail fast, fail often, fail forward

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 71

Immutable infrastructure Pets versus cattle

Even smaller teamsMore …

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 75

Smaller teams Do we mean 7 plus or minus 2?

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 76

Autonomous teams

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 78

Mandatory fun Maybe we’re overdoing it a bit?

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 79

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 80

Less rules Amsterdam, Alexanderplein Continue

Traditional teams Agile teams Micro-teams

Team is a pool of people with all the right skills

Often with a ‘technical leader’

Single backlog of small work items

Kanban style board

Small teams form and disband dynamically to implement epics

Often two to three members

Let the team decide

Product owner becomes an analyst

As little estimates as possible

Stand-ups with whole team

Retrospective on request

Micro-teams

Next

Continue

Allow teams to learncontinuously

Even smaller componentsThe world of microservices

Continue

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 102

Monoliths Hard to deliver. Harder to test. Impossible to maintain. But…

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 104

Lunde’s LawGiven sufficient time any group of programmers will decide to rewrite the code.Ron Lunde

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 105

MicroservicesIn short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.

These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

Martin Fowler

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 107

Monoliths versus microservices?

MÖNÖLITMICRØ

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 108

AWS Lambda & Azure Functions Even smaller

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 109

Distributed systemsOh and by the way… Doing microservices (or serverless computing) means that you are building distributed systems

Me

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 132

@aahoogendoorn | www.ditisagile.nl

In retrospectiveSome final thoughts

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 133

Complex problems require continuous exploration

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 134

Beyond the point of no return

The continuous

culture

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 137

@aahoogendoorn | www.ditisagile.nlIt’s a small word after all 139

@aahoogendoorn | www.ditisagile.nl

References and questions

www.sanderhoogendoorn.com

www.ditisagile.nl

aahoogendoorn

aahoogendoorn

sander@ditisagile.nl