Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOps for Speed and Agility

DevOps for Speed and Agility

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

Steve Pereira

May 20, 2014
Tweet

More Decks by Steve Pereira

Other Decks in Technology

Transcript

  1. DevOps for Speed and Agility
    software delivery for fun and profit

    View Slide

  2. Steve Pereira
    • DevOps / Delivery consultant in Toronto
    • <3 startups, feel the pain of enterprise
    • stevepereira.ca

    View Slide

  3. To suffer the penalty of too much
    haste, which is too little speed.
    - Plato
    not

    View Slide

  4. 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:

    View Slide

  5. •Communication
    •Visibility
    •Measurement
    •Analysis
    •Empowerment
    •Change
    •Focus
    •Automation
    The Ingredients:

    View Slide

  6. •Hypothesize
    •Measure
    •Validate
    •Empower
    •Iterate
    •Share
    •Automate
    •Celebrate
    The recipe:

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. Automate
    • Do you really need manual QA?
    • Analyze holistically, improve incrementally
    • Focus on the pipeline
    • Promoted builds
    • Config management
    • Never touch prod
    • Notifications

    View Slide

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

    View Slide

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

    View Slide

  16. Speed provides the one
    genuinely modern pleasure.
    - Aldous Huxley

    View Slide

  17. Start now
    • Pick a small, greenfield project
    • Fail like a pro
    • Write about it
    • Share
    • Revise your baseline and repeat

    View Slide

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

    View Slide