the path to continuous delivery

85

Upload: pedro-pimentel

Post on 15-Apr-2017

40 views

Category:

Software


1 download

TRANSCRIPT

The Path to Continuous Delivery

Pedro Pimentel

”zukunftsalick” in most social apps

Continuous Delivery to the Pub

1 I'll send an email to everyone asking who wants to go to the pub after work.

1 I'll send an email to everyone asking who wants to go to the pub after work.

2

I’m in.

1 I'll send an email to everyone asking who wants to go to the pub after work.

5 6

4

32

I’m in.

1 I'll send an email to everyone asking who wants to go to the pub after work.

5 6

4

32

I’m in.

7 I just need to finish a few things off. Can you wait 5 minutes?

1 I'll send an email to everyone asking who wants to go to the pub after work.

5 6

4

32

I’m in.

7 I just need to finish a few things off. Can you wait 5 minutes?

8 I'll see you there, I'm gonna be here another half an hour at least.

5 minutes later

7 Sorry! I'll just be a couple more minutes late.

1

4

3

5

2

6

7 Sorry! I'll just be a couple more minutes late.

1

4

3

5

2

6

9 If you wait for me, I’ll come too.

7 Sorry! I'll just be a couple more minutes late.

1

4

3

5

2

6

9 If you wait for me, I’ll come too.

8 I’m nearly done! Wait for me!!!

By this time...

By this time...

Half an hour has passed since #1 to #6 were ready to go.

By this time...

Half an hour has passed since #1 to #6 were ready to go.

#7 has already finished his work and joined the others.

By this time...

Half an hour has passed since #1 to #6 were ready to go.

#7 has already finished his work and joined the others.

All of them are around #9 desk, waiting for him.

By this time...

Half an hour has passed since #1 to #6 were ready to go.

#7 has already finished his work and joined the others.

All of them are around #9 desk, waiting for him.

#8 joins the waiting crowd a few minutes later.

A few more minutes later

9 I’m done! Let’s go!

9 I’m done! Let’s go!

5 Oh Sh**! I forgot to send an email.

#4 goes to the toilet

#4 goes to the toilet

In the meantime #5 comes back.

#4 goes to the toilet

In the meantime #5 comes back.

#1 is already regretting sending out the invitation.

One hour and fifteen minutes later.

1 43

5

2

6

Lift

7 8 9

1 43

5

2

6 7 8 9

Only one! We need three cabs! Let’s wait!

1 43

5

2

6 7 8 9

#3 now has to go home to feed his cat.

It’s already 9:30pm, all other venues are packed so everyone else also goes home, unhappy and thirsty.

#3 now has to go home to feed his cat.

Does it Sound Familiar?

1 I'm off to the pub in 5 minutes sharp. There's some spaces in the cab. Anyone wanna join me?

1 I'm off to the pub in 5 minutes sharp. There's some spaces in the cab. Anyone wanna join me?

4

32

I’m in.

1 I'm off to the pub in 5 minutes sharp. There's some spaces in the cab. Anyone wanna join me?

4

32

I’m in. 5

6Who’s next?

1 I'm off to the pub in 5 minutes sharp. There's some spaces in the cab. Anyone wanna join me?

4

32

I’m in.

7 I just need to finish a few things off. Can you wait 5 minutes?

5

6Who’s next?

1 I'm off to the pub in 5 minutes sharp. There's some spaces in the cab. Anyone wanna join me?

4

32

I’m in.

7 I just need to finish a few things off. Can you wait 5 minutes?

8 I'll see you there, I'm gonna be here another half an hour at least.

5

6Who’s next?

1

43

2It’s ok. Let’s move to the next one.

In the mean time...

#5 and #6 decided to wait for #7 to share a taxi.

In the mean time...

#5 and #6 decided to wait for #7 to share a taxi.

#8 says the same thing “oh, wait for me, I’m nearly done”

In the mean time...

#5 and #6 decided to wait for #7 to share a taxi.

#8 says the same thing “oh, wait for me, I’m nearly done”

#9 says “I’m almost done too, you three go first and I split a taxi with #8”

In the mean time...

At the pub

1

4 3

2

At the pub

1

4 3

2 5

6

7 #8 and #9 are coming, we should make space for them

Continuous Delivery!!!

Applying to software delivery

Can you think of examples?

Are you one of the thirsty workers that could go to the pub but is still waiting for everyone?

Can you think of examples?

Do you have working pieces of code, ready for deploy, that are waiting for colleagues?

Are you one of the thirsty workers that could go to the pub but is still waiting for everyone?

Can you think of examples?

Is the group of thirsty workers so big that whenever the chosen pub is closed, finding another pub in the busiest time is a difficult

task?

Can you think of examples?

Are the changes you deploy so big, that when something unexpected happens, you have to

re-sync and deploy everything again?Is the group of thirsty workers so big that

whenever the chosen pub is closed, finding another pub in the busiest time is a difficult

task?

Can you think of examples?

Do the pubs close or are packed before thirsty workers finally organize themselves

and get out of the office?

Can you think of examples?

Do you loose your opportunity window getting all teams in sync for a release?

Do the pubs close or are packed before thirsty workers finally organize themselves

and get out of the office?

Suggestions

Find a pub that’s not far from the office.

Have an agreement that every evening, if someone is thirsty, they just head to the pub,

rather than organizing an outing.

Suggestions

Find a pub that’s not far from the office.

Have an agreement that every evening, if someone is thirsty, they just head to the pub,

rather than organizing an outing.

Working at the pub?

1/2

Software Craftsmanship

Not only working software but also well-crafted software

Not only responding to change but also steadily adding value

Not only individuals and interactions but a community of professionals

Not only customer collaboration but also productive partnerships

Well-crafted software.

Steadily adding value == Continuous Delivery

Give Back to the world ==

Community of Professionals

Productive Partnership (aka the extra mile)

Core practices

BDDBehaviour Driven Development

“I want to save 40% on operational costs”

It has to be a description of a requirement and its business benefit, and a set of criteria by which we all agree that it is “done”

Dan North

Story: Account Holder withdraws cash

Story: Account Holder withdraws cash

As an Account Holder I want to withdraw cash from an ATM So that I can get money when the bank is closed

Story: Account Holder withdraws cash

As an Account Holder I want to withdraw cash from an ATM So that I can get money when the bank is closed

Scenario 1: Account has sufficient funds Given the account balance is $100   And the card is valid   And the machine contains enough money When the Account Holder requests $20 Then the ATM should dispense $20   And the account balance should be $80   And the card should be returned

TDDTest Driven Development

TDD practices

Define the API you want to use

Write code based on facts

Write just enough code to make test pass

Read the tests to learn about someone’s else code

TDD practices

Assert First

One Assertion per test

Faking/Stubbing/Mocking

Triangulation

Red Green Refactor

Influence Diagrams

Pair Programming

eXtreme ProgrammingGiles Bowkett blog

Sometimes in trio

Or in groups

Pair Rotation

Why?

Economics

Design Quality

Satisfaction

Learning

Team building / Communication

Recapping

BDD TDDPair Programming

Software Craftsmanship

Steadily Adding Value

Thank you