Top Banner
85

The Path to Continuous Delivery

Apr 15, 2017

Download

Software

Pedro Pimentel
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The Path to Continuous Delivery
Page 2: The Path to Continuous Delivery

The Path to Continuous Delivery

Page 3: The Path to Continuous Delivery

Pedro Pimentel

”zukunftsalick” in most social apps

Page 4: The Path to Continuous Delivery

Continuous Delivery to the Pub

Page 5: The Path to Continuous Delivery

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

Page 6: The Path to Continuous Delivery

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

2

I’m in.

Page 7: The Path to Continuous Delivery

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.

Page 8: The Path to Continuous Delivery

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?

Page 9: The Path to Continuous Delivery

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.

Page 10: The Path to Continuous Delivery

5 minutes later

Page 11: The Path to Continuous Delivery
Page 12: The Path to Continuous Delivery

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

1

4

3

5

2

6

Page 13: The Path to Continuous Delivery

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.

Page 14: The Path to Continuous Delivery

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!!!

Page 15: The Path to Continuous Delivery

By this time...

Page 16: The Path to Continuous Delivery

By this time...

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

Page 17: The Path to Continuous Delivery

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.

Page 18: The Path to Continuous Delivery

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.

Page 19: The Path to Continuous Delivery

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.

Page 20: The Path to Continuous Delivery

A few more minutes later

Page 21: The Path to Continuous Delivery

9 I’m done! Let’s go!

Page 22: The Path to Continuous Delivery

9 I’m done! Let’s go!

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

Page 23: The Path to Continuous Delivery
Page 24: The Path to Continuous Delivery

#4 goes to the toilet

Page 25: The Path to Continuous Delivery

#4 goes to the toilet

In the meantime #5 comes back.

Page 26: The Path to Continuous Delivery

#4 goes to the toilet

In the meantime #5 comes back.

#1 is already regretting sending out the invitation.

Page 27: The Path to Continuous Delivery

One hour and fifteen minutes later.

Page 28: The Path to Continuous Delivery

1 43

5

2

6

Lift

7 8 9

Page 29: The Path to Continuous Delivery

1 43

5

2

6 7 8 9

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

Page 30: The Path to Continuous Delivery

1 43

5

2

6 7 8 9

Page 31: The Path to Continuous Delivery

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

Page 32: The Path to Continuous Delivery

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.

Page 33: The Path to Continuous Delivery

Does it Sound Familiar?

Page 34: The Path to Continuous Delivery

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

Page 35: The Path to Continuous Delivery

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.

Page 36: The Path to Continuous Delivery

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?

Page 37: The Path to Continuous Delivery

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?

Page 38: The Path to Continuous Delivery

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?

Page 39: The Path to Continuous Delivery

1

43

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

Page 40: The Path to Continuous Delivery

In the mean time...

Page 41: The Path to Continuous Delivery

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

In the mean time...

Page 42: The Path to Continuous Delivery

#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...

Page 43: The Path to Continuous Delivery

#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...

Page 44: The Path to Continuous Delivery

At the pub

1

4 3

2

Page 45: The Path to Continuous Delivery

At the pub

1

4 3

2 5

6

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

Page 46: The Path to Continuous Delivery

Continuous Delivery!!!

Page 47: The Path to Continuous Delivery

Applying to software delivery

Page 48: The Path to Continuous 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?

Page 49: The Path to Continuous Delivery

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?

Page 50: The Path to Continuous Delivery

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?

Page 51: The Path to Continuous Delivery

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?

Page 52: The Path to Continuous Delivery

Can you think of examples?

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

and get out of the office?

Page 53: The Path to Continuous Delivery

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?

Page 54: The Path to Continuous Delivery

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.

Page 55: The Path to Continuous Delivery

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?

Page 56: The Path to Continuous Delivery

1/2

Page 57: The Path to Continuous Delivery

Software Craftsmanship

Page 58: The Path to Continuous Delivery

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

Page 59: The Path to Continuous Delivery

Well-crafted software.

Page 60: The Path to Continuous Delivery

Steadily adding value == Continuous Delivery

Page 61: The Path to Continuous Delivery

Give Back to the world ==

Community of Professionals

Page 62: The Path to Continuous Delivery

Productive Partnership (aka the extra mile)

Page 63: The Path to Continuous Delivery

Core practices

Page 64: The Path to Continuous Delivery

BDDBehaviour Driven Development

Page 65: The Path to Continuous Delivery
Page 66: The Path to Continuous Delivery

“I want to save 40% on operational costs”

Page 67: The Path to Continuous Delivery

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

Page 68: The Path to Continuous Delivery
Page 69: The Path to Continuous Delivery

Story: Account Holder withdraws cash

Page 70: The Path to Continuous Delivery

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

Page 71: The Path to Continuous Delivery

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

Page 72: The Path to Continuous Delivery

TDDTest Driven Development

Page 73: The Path to Continuous Delivery

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

Page 74: The Path to Continuous Delivery

TDD practices

Assert First

One Assertion per test

Faking/Stubbing/Mocking

Triangulation

Page 75: The Path to Continuous Delivery

Red Green Refactor

Page 76: The Path to Continuous Delivery

Influence Diagrams

Page 77: The Path to Continuous Delivery

Pair Programming

Page 78: The Path to Continuous Delivery

eXtreme ProgrammingGiles Bowkett blog

Page 79: The Path to Continuous Delivery

Sometimes in trio

Page 80: The Path to Continuous Delivery

Or in groups

Page 81: The Path to Continuous Delivery

Pair Rotation

Page 82: The Path to Continuous Delivery

Why?

Economics

Design Quality

Satisfaction

Learning

Team building / Communication

Page 83: The Path to Continuous Delivery

Recapping

BDD TDDPair Programming

Software Craftsmanship

Steadily Adding Value

Page 84: The Path to Continuous Delivery
Page 85: The Path to Continuous Delivery

Thank you