18
DevOps for Speed and Agility software delivery for fun and profit

DevOps for Speed and Agility - DevOpsTO May 2014

Embed Size (px)

DESCRIPTION

How to increase agility and speed in your organization by applying DevOps principles. How to go faster and be more flexible to the needs of your business. Easy steps to reduce bottlenecks, release faster and with more confidence. Improve visibility Measure state Minimize constraints Improve collaboration Enable action Practice change Focus Automate

Citation preview

Page 1: DevOps for Speed and Agility - DevOpsTO May 2014

DevOps for Speed and Agility

software delivery for fun and profit

Page 2: DevOps for Speed and Agility - DevOpsTO May 2014

Steve Pereira

• DevOps / Delivery consultant in Toronto

• <3 startups, feel the pain of enterprise

• stevepereira.ca

Page 3: DevOps for Speed and Agility - DevOpsTO May 2014

To suffer the penalty of too much haste, which is too little

speed.- Plato

not

Page 4: DevOps for Speed and Agility - DevOpsTO May 2014

Quality > Speed

The catch:

The name of the game is to maximize quality and allow

confidence and trust to improve speed.

Here’s how you get both:

Page 5: DevOps for Speed and Agility - DevOpsTO May 2014

• Communication

• Visibility

• Measurement

• Analysis

• Empowerment

• Change

• Focus

• Automation

The Ingredients:

Page 6: DevOps for Speed and Agility - DevOpsTO May 2014

• Hypothesize

• Measure

• Validate

• Empower

• Iterate

• Share

• Automate

• Celebrate

The recipe:

Page 7: DevOps for Speed and Agility - DevOpsTO May 2014

Communicate• Talk about delivery, issues and improvement

• Sell ideas, everyone who buys in is a stakeholder and a customer

• Talk to product teams about the cost of technical debt

• backlog, bugs, lack of documentation

• Chat - nothing beats realtime

• Standup rooms, team rooms, team standup rooms

• History/async helps - it’s self-documenting and remote-friendly

• Regular pairing, code review

Page 8: DevOps for Speed and Agility - DevOpsTO May 2014

Show and Tell• Visibility for simpler and more passive

communication

• Reduce communication time

• Reduce decision time

• Reduce investigation time

• Start with Post-its/Whiteboard, iterate

• Notifications where necessary - alerts vs checking

• Correlate data to create meaning

Page 9: DevOps for Speed and Agility - DevOpsTO May 2014

Measure• Discover limiting constraints (bottlenecks), friction, lag,

waste

• Start with the basics: How long from dev to prod?

• Bugs per release / LOC per release / cyclomatic complexity

• Onboarding a dev takes a week

• Adding a server takes 3 weeks

• 5 days to start a new project

• Measure by hand if you have to at first

• Find a baseline to progress from

Page 10: DevOps for Speed and Agility - DevOpsTO May 2014

Minimize Constraints• Remove or minimize bottlenecks once discovered

• Hypothesize and validate

• Documentation / Tools / Automation

• Data and power in the hands of whoever needs it

• Ask data questions of data, not people

• People are often a constraint

• Empower people - Build Trust

• Everyone's job is enabling the business

Page 11: DevOps for Speed and Agility - DevOpsTO May 2014

Practice Change• Make change minimal and frequent

• Variables vs hard code

• Separate code and config

• Break the monolith down

• Avoid batch changes, study your use case

• Practice deployments / code review / retrospectives

• Fire drills!: Staff member leaves / datacentre down

Page 12: DevOps for Speed and Agility - DevOpsTO May 2014

Focus• Remove disruption to allow for engagement

• Clean alerts / Define severity / Scrutinize every escalation / Parse logs

• Don't just backlog, icebox - if it’s important you won’t forget about it

• Define roles - proper governance allows for action - rotate occasionally

• Let your talent work - provide empowerment and time

• Standups are important, but try doing them through async chat

• Measure a need and hire help or dedicate resources

Page 13: DevOps for Speed and Agility - DevOpsTO May 2014

Automate• Do you really need manual QA?

• Analyze holistically, improve incrementally

• Focus on the pipeline

• Promoted builds

• Config management

• Never touch prod

• Notifications

Page 14: DevOps for Speed and Agility - DevOpsTO May 2014

Celebrate!• Build on your momentum and progress by reflection

and sharing

• Improvement is awesome! Faster iteration means more to celebrate

• Failure hurts less the more you do it and the less it costs

• Share with the entire organization, wins help everyone

• Give kudos to your champions, testers and early adopters - they’re your best customers

Page 15: DevOps for Speed and Agility - DevOpsTO May 2014

The Advanced Class• Tools can help once you’re off to the races

• Jenkins + plugins is a powerhouse:

• Build metrics - stats on all builds

• Plot - graph progress

• Join - breakup jobs and aggregate results

• SLOCCount - LOC counts

• Violations - static analysis

• HTML publisher - show it all off

Page 16: DevOps for Speed and Agility - DevOpsTO May 2014

Speed provides the one genuinely modern

pleasure.- Aldous Huxley

Page 17: DevOps for Speed and Agility - DevOpsTO May 2014

Start now

• Pick a small, greenfield project

• Fail like a pro

• Write about it

• Share

• Revise your baseline and repeat

Page 18: DevOps for Speed and Agility - DevOpsTO May 2014

Questions?

Sites:

codeascraft.com

martinfowler.com

kitchensoap.com

planetdevops.net

monitorama.com

devopsdays.org

Netflix/Twitter/Linkedin Eng

Books:

Continuous Delivery

Release It!

Building a DevOps Culture

Driving Technical Change

The Mythical Man Month

The Phoenix Project

Team Geek

@steveElsewhere