w-jax 2017 keynote. it's a small world after all. how thinking small is changing software...
TRANSCRIPT
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
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