DevOps - Ten tips for developers


Published on

Presented at ThoughtWorks Australia 2010 'Team Hug' (Away day). Ten tips for developers who want to make closer friendships with the IT operations team.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

  • i’m going to be talking about a battle that’s been raging for a long time. Which one is ops and which one is dev?
    That’s the enterprise architect in the background - he’s arguing for fully redundant light sabers.
  • In a lot of organisations, it feels like ops and dev are separated by walls - discouraged from collaboration.
  • Frustrating - Developers have very little visibility into production systems, cannot read logs, database tables, or production monitoring tools. How to troubleshoot?
  • It feels like dev and ops are in siloes.
    This is accentuated by physical separation, reliance on ticketing systems and approval bureacracy
  • It’s very confusing and frustrating - how do we proceed?

    Sometimes no matter what we do, it seems to be wrong. We get told what we *should* have done, and always when it’s too late.
  • It doesn’t work. There must be a better way. What can developers do?
  • Spend time thinking about incentives from the ops perspective.
    traditional thinking: ops task is to keep systems stable and fast. dev’s task is to deliver features quickly. This pushes down from CIOs to operations managers and app development managers, down into KRAs.
    According to the itSMF (IT Service Management Forum), 80% of incidents are caused by changes made to the IT environment.
    Ops are almost always understaffed, and under constant interuption - everybody’s problem is the biggest problem in the world. Defensive measures are put in place to help the ops team deal with this problem.
    Important to understand - until you can understand from their perspective, you can’t influence.

    may not be able to change (yet) but don’t presume people are ignorant or evil.
  • Project inceptions. Regular updates. Design sessions. Invite the product owner to explain business direction, if ops don’t turn up to inceptions.
    retros, problem analysis (5 whys)
  • be relentless in this message
    Use ‘we’. Invite ops to standups and retros - every time. Invite ops to lunch, functions etc.
    take the time to follow up with ops to explain the outcomes of things
    forgive eccentricity
    pairing? work on things together. That means you helping, too!
    promote your ops team members within their own organisation
    don’t accept manual work - help automate if you can
  • Don’t be suckered into email wars.
    However - follow up with tickets if required.
  • Imagine that the operator who gets up at 2am is a homocidal maniac who knows where you live.

    Make sure Ops is represented with ‘stories’ “As a sysadmin”. Logging is a user interface. Make sure the right things are monitored - and monitorable! Stop building systems that are black box and require magic incantations and sacrifices.
  • feel the pain. fix the pain. google three month developer support.

    shared metrics and monitoring. can you mine the service desk’s ticketing reports?
  • go to ops with problems, not solutions.
  • - you are not the first devs here - folk have been failing to meet commitments for years before you.
    - no hollow promises
    - covey's emotional bank account - invest!
    - fix things! follow through with root cause analysis
  • e.g. production logins
  • learn some unix
    don’t be afraid to ask for help, or to ‘pair’ on a problem.
  • finally
  • Say please. and thankyou. and sorry
  • wrap up

  • DevOps - Ten tips for developers

    1. 1. Dev Ops
    2. 2. “Stock photos are the bullet points of the twenty-first century.” -- Martin Fowler
    3. 3.
    4. 4.
    5. 5.
    6. 6. 1. Understand incentives
    7. 7. 2. Engage ops early and often
    8. 8. 3. One team
    9. 9. 4. Favour face to face communication
    10. 10. 5. Ops is an end user
    11. 11. 6. Share responsibility
    12. 12. 7. Don’t place orders
    13. 13. 8. Meet commitments
    14. 14. 9. Don’t abuse your friendship
    15. 15. 10. Educate yourself
    16. 16. 1. Understand incentives 2. Engage ops early and often 3. One team 4. Favour face to face communication 5. Ops is an end user 6. Share responsibility 7. Don’t place orders 8. Meet commitments 9. Don’t abuse your friendship 10. Educate yourself
    17. 17.
    18. 18. fin