Bcn devcon jose luis soria - patterns & antipatterns for delivery
PATTERNS & ANTIPATTERNS
FOR (CONTINUOUS) DELIVERY
Jose Luis Soria Teruel
email@example.com - @jlsoriat
Barcelona, November 9th 2013
Our highest priority is to satisfy the customer
through early and continuous delivery of
Principles behind the Agile Manifesto
How long would it take your
organization to deploy a
change that involves just one
single line of code?
Do you do this on a
repeatable, reliable basis?
Mary & Tom Poppendieck
Implementing Lean Software Development
Done means "released". This implies
ownership of a project right up until it’s in the
hands of the user, and working properly.
There’s none of this "I’ve checked in my code
so it’s done as far as I’m concerned".
Just ship, baby.
Kent Beck, http://www.threeriversinstitute.org/JustShip.html
Do you exclude from versioning
artifacts like databases,
configuration files, binaries,
documentation, tools or
That is, do you fail to effectively do the
following, for any needed version of these
Get from history.
Work with other people.
Audit and track changes.
Keep stable copies.
Do you manually perform any of these?
Or, do you make mistakes because of missing
steps, misunderstandings, boredom, etc.?
Do you waste time that could be employed in
building and delivering value?
Do you depend on specific people to get these
Do accidents frequently happen in your
Do you manually copy or change
configuration files to match each
So, do you need to remember which
configuration files must be changed and what
the changes are?
Do you make mistakes or omissions when
doing these changes?
Are you exposing sensitive information about
ARIANNE 5 FLIGHT 501 EXPLOSION
In 1996, the Ariane 5 rocket was reusing
software from the Ariane 4. Ariane 5’s faster
engines exploited a bug that was not realized
before: the software tried to cram a 64-bit
number into a 16-bit space. 36.7 seconds into
its maiden launch, the self destruct safety
mechanism was activated.
SIBERIAN PIPELINE SABOTAGE
In 1982, CIA introduced a bug into the Soviet
gas pipeline system, that passed preliminary
inspection but made the system fail when in
operation. It led to the largest non-nuclear
Do you validate your application
only in development or testing
That is, do you lack information
about how your application will
behave in the production
Do you skip the preparation of
rollback mechanisms before a
Or, if a deployment (or the deployed
version) fails, do you need to figure out
how to get the system running again?
Does that take a lot of time and effort?
Is the business losing lots of money
What about your own patterns & practices?
1. Think about some delivery
practice not covered in the
2. Tweet it.
Thanks! Any questions?
Get my e-book (for free): http://aka.ms/ReleasePipeline
Get the labs: http://aka.ms/ReleasePipeline-HOL
Get these slides: http://slidesha.re/1hVyKvt