continuous delivery - dealing with zombies @rippleconf14 @porto

70
Dealing with Zombies João Cravo - Build Master @ Blip <[email protected]>

Upload: joao-cravo

Post on 10-May-2015

362 views

Category:

Technology


4 download

DESCRIPTION

All modern software companies are trying to take a step towards a full and trustfull Continuous Delivery pipeline to production. However, this is not easy. Some kind of "zombies" appear every day. On this talk I will share my experience and vision of my last year and a half dealing with zombies at Blip.

TRANSCRIPT

Page 1: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Dealing with Zombies

João Cravo - Build Master @ Blip <[email protected]>

Page 2: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

• Zombie Killer

Page 3: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

whoami• Zombie Killer

• João Cravo, 25 years old

Page 4: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

• Zombie Killer

• João Cravo, 25 years old

• Philosopher

whoami

We are doing

what we do

Page 5: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

• Zombie Killer

• João Cravo, 25 years old

• Philosopher• Pipeline Nazi

whoami

Page 6: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

• Zombie Killer

• João Cravo, 25 years old

• Philosopher• Pipeline Nazi

• Build Master

whoami

Page 7: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”

Principles behind the Agile Manifesto

About Continuous Delivery…

“If it hurts, do it more often.”wisdom of the internet

“Just ship, baby.”Kent Beck

Page 8: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

About Continuous Delivery…

Version Control

Build&

Unit Tests

Automated acceptance

tests

Release to Production…

Page 9: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

A bit of history…

Page 10: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Before – August 1st, 2012• 3 Products• 1 Pipeline• Around 500 tests• One release every fortnight• Release branches• 40 People focused on the same project

Page 11: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Before – August 1st, 2012• 3 Products• 1 Pipeline• Around 500 tests• One release every fortnight• Release branches• 40 People focused on the same project

Doing Agile… and Continuous Delivery…

Page 12: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

"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?Implementing Lean Software Development

Measuring Continuous Delivery

Page 13: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Before – August, 2012• 3 Products• 1 Pipeline• Around 500 tests

• One release every fortnight• Release branches• 40 People focused on the same project

Doing Agile… and Continuous Delivery…

Page 14: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Hashbang Team Meeting March 2013

Page 15: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Hashbang Team Meeting March 2013One year goals:

Everyone can do releases Automate everything

Page 16: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Hashbang Team Meeting March 2013One year goals:

Everyone can do releases Automate everything

Drinking a beer all the time because we automated all the things!

Page 17: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Hashbang Team Meeting March 2013One year goals:

Everyone can do releases

Automate everything ?!?!

Drinking a beer all the time because we automated all the things!

Page 18: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Today• 25 Products • 25 Pipeline• “Over 9000” tests in parallel • Multi releases every week• Master branch • 170 people working in different projects

Page 19: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Today• 25 Products • 25 Pipeline• “Over 9000” tests in parallel• Multi releases every week• Master branch• 170 people working in different projects

• Reaching CD - 50 min to release to production

Page 20: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto
Page 21: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

… ZOMBIES …

Page 22: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Human eater

Decomposing skin

Frail Legs

Very bad smell

No reasonNo reflexionNo humanity

Weapon: they catch you

Page 23: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

What do zombies have to do with Continuous Delivery?

Page 24: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Human eater

Decomposing skin

Frail Legs

Very bad smell

No reasonNo reflexionNo humanity

Weapon: they catch you

CD

Page 25: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Human eater

Decomposing skin

Frail Legs

Very bad smell

No reasonNo reflexionNo humanity

Weapon: they catch you

CDHuman time eater

Page 26: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Human eater

Decomposing skin

Frail Legs

Very bad smell

No reasonNo reflexionNo humanity

Weapon: they catch you

CDHuman time eater

Frail code Frail process

Page 27: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Human eater

Decomposing skin

Frail Legs

Very bad smell

No reasonNo reflexionNo humanity

Weapon: they catch you

CDHuman time eater

Frail code Frail process

Page 28: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Human eater

Decomposing skin

Frail Legs

Very bad smell

No reasonNo reflexionNo humanity

Weapon: copy & paste

CDHuman time eater

Frail code Frail process

Page 29: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Human eater

Tends to get worst

Frail Legs

Very bad smell

No reasonNo reflexionNo humanity

Weapon: copy & paste

CDHuman time eater

Frail code Frail process

Page 30: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Human time eater

Tends to get worst

Frail code Frail process

Very bad smell

No reasonNo reflexionNo humanity

Weapon: copy & paste

CD

Page 31: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

1st Zombie

The Sprint (Real) Goal

Page 32: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto
Page 33: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

1st Zombie

The Sprint (Real) Goal

We make money by delivering quality software to customers! So I think that is exactly what we should all be focused on.

James Betteley's Devops Ramblings

Page 34: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

2nd Zombie

The Super Hiper Mega Repetitive Manual Step

Page 35: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto
Page 36: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

You

You

Page 37: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

2nd Zombie The Super Hyper Mega Repetitive Manual Step

Automate it!

Page 38: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

2nd Zombie The Super Hyper Mega Repetitive Manual Step

Automate it!

Share it!

Page 39: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

3rd Zombie

It (doesn’t) works on my computer

Page 40: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto
Page 41: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto
Page 42: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

3rd Zombie It (doesn’t) works on my computer

Do it again.

Page 43: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

3rd Zombie It (doesn’t) works on my computer

Do it again. Ask help to people next to you.

Page 44: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

3rd Zombie It (doesn’t) works on my computer

Do it again. Ask help to people next to you.

Do it again.

Page 45: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

3rd Zombie It (doesn’t) works on my computer

Do it again. Ask help to people next to you.

Do it again.Get up from your chair.

Page 46: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

4th Zombie

That feature that is missing in that tool

Page 47: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto
Page 48: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

4th Zombie

That feature that is missing in that tool

Page 49: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Start using the latest version now!

4th Zombie

That feature that is missing in that tool

Page 50: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

5th Zombie

Jobs Definitions

Page 51: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

5th Zombie Jobs Definitions

• Frontend developerMy role is to do some HTML and JS

• ManagerI do programming in excel and email

• BackendI work on Java. I’m not a designer

• OperationsThe problem is on the code. I just deploy it!

Page 52: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto
Page 53: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

5th Zombie Jobs Definitions

Don’t be a definition Don’t label others by his/her roleLearnShare

GET THE THINGS DONE

Page 54: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

6th Zombie

My favorite pattern: Copy and paste

Page 55: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

6th Zombie

My favorite pattern: Copy and paste

Page 56: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

copy and paste bad example

Page 57: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

http://programmers.stackexchange.com/questions/87696/is-copy-paste-programming-bad

Page 58: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

http://programmers.stackexchange.com/questions/87696/is-copy-paste-programming-bad

Page 59: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

6th Zombie

My favorite pattern: Copy and paste

Like the alcohol, use it with moderation

Page 60: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

Recap…

Page 61: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto
Page 62: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

What should you do when you see a Zombie?

Page 63: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

What should you do when you see a Zombie?

KILL IT!

Page 64: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

What should you do when you see a Zombie?

KILL IT!When?

Page 65: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

What should you do when you see a Zombie?

KILL IT!When?

AS EARLY AS POSSIBLE!

Page 66: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

What should you do when you see a Zombie?

KILL IT!When?

AS EARLY AS POSSIBLE!Who?

Page 67: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto

What should you do when you see a Zombie?

KILL IT!When?

AS EARLY AS POSSIBLE!Who?

YOURSELF!

Page 68: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto
Page 69: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto
Page 70: Continuous Delivery - Dealing with Zombies @rippleconf14 @Porto