Video: Continous Delivery Sounds Great - Jez Humble

Continous Delivery Sounds Great - Jez Humble

Model: software = design + delivery


design= unpredictable
delivery = predictable

lean 6 sigma doesn't fit on software ; because software is 2 things

6 sigma tries to get all variability out of a system
great for delivery, not great for design



xp
lean software development
unix


inventor of unix pipe

(2) = microservices
(3) = deliver early & often
(4) = automate, tool based

not new ideas




---

1) "We're regulated"


1a amazon
2011

amazon is heavily regulated
- credit cards
- public trading company

1b) US government: 8-14 months from code complete to live



got cloud.gov certified, only 55 security controls left


fully reproduce system from version control

all info needed for auditing is there:
- which tests were run
- who authorised a run



2 throughput metrics
2 stability metrics
high performers do better on both
no tradeoff between stability and throughput

all different domains
all company sized (startup to mega corps)

---

2) "We're not building websites"


anecdote: hp team was going really slowly
they were critical path for all new releases
this is really bad, but typical in the industry

anecdote: airline needed more time to change a booking system for new seats than to change the seats in the planes




allows single

"how do you do automated tests?"
"we build a simulator"
"you did WHAT?"


into trunc only after automated tests
overnight regression test

not deploying anyway
why would we do continuous delivery?

it changes the dynamics



lean is not about cutting costs
lean is about investing to remove waste
in medium and long term, drives down transaction cost of making changes, so that you can move faster

continuous delivery
NOT about releasing multiple times/day
IS about changing the economics of the software delivery process to work in small batches
  • faster feedback
    • build quality in
      • reduce cost
      • increase quality
      • reduce time to market

---

3) "Too much legacy"


anecdote / demo "gui tests"
test harness

too much legacy == too much complexity

reduce complexity => allows us to go faster

complexity is everywhere

it took amazon 4 years to go to architecture that allowed ...
in that time they did not deliver much new stuff

pattern: strangler application

drive incremental evolutionary architecture change through building new stuff
- don't rebuild the old stuff

evolutionary architecture is never done
goal = reducing complexity

complexity of your operational environment makes it hard to add new features


[ ] Steve Yegge's Platform Rant
he worked at amazon during the 4 year transition to SOA
memo from CEO 'Bezos'

enables:


---
4) our people are too stupid

anecdote: Adrian Cocraft cloud architect for netflix
netflix were biggest users of internet, took 6-7 years to go to cloud
CIO of a random stodgy company comes up to him and asks "Adrian where do you get all these amazing people from?"
Adrian replied: "I get them from you"

It's not the people that are the problem
someone is being stupid, but not the people you think

anecdote: famous story about lean NUMMI (new united motor manufacturing incorporated)
Tesla factory was recent, used to be GM factory, the worst factory, shut down the plant
NUMMI joint venture GM + Toyota
- Toyota wants plant in US (trade barriers)
- GM wanted to learn to build small cars profitably

union leaders convinced Toyota to rehire the employees
training course in Japan
within a year, higher quality cars than any GM plants

the problem are not the people
the system of work, system of leadership and management



lines on ground = timing
anecdote: toyota
non-toyota:
try to put a seat in, bolt it down, don't make it in time, whatever, next
ends up at quality control: "nobody can drive that, rejected"

toyota:
you get 3/4 of the way and notice you won't make it
pull Andon cord, manager comes, helps you
still don't make it? pull Andon cord again, assembly line stops
fix the problem, assembly line continues
later on, reflect how to improve
workers make suggestions, and you get to implement it
you have the power to change your own system of work to make it better
Support engineer group to make / change tools for you

build quality in
as a worker your responsibility is to make sure that when the work product leaves you, everything is great
and you have the tools, the power and the responsibility to build quality in


[ ] this americal life episode about that anecdote
[ ]


machine are in charge of finding problems
humans are in charge of solving problems

exact analogy in software delivery: continuous integration
something goes wrong -> notify

continuous integration certification
- all developers check in to trunc at least daily
- when your tests fail, you get them fixed within 10 minutes

devops research

less rework (proxy metric for quality)

---



continuous delivery = continuous improvement

high performing companies
always working to get better, they never stop
it's part of everyone's daily work



How can I make things more awesome for the people around me.





comments powered by Disqus