I was reading one of the recent posts based on the interview with Kia Behina (here) I love that example of how reward systems are no magic bullet! It rang so many bells with me. Its a good example of “me” vs “we”.
By that I mean people often think of problems and how to solve them. That is a good thing. The problem is that the often think of things filtered by “me”… what problems do I have and how do I solve them. The solutions that arise in this situation often don’t necessarily solve the problem in a way that is good for all the stakeholders. It is easy to understand how that happens and DevOps is trying to help address that.
If you ask the question about the problem differently and engage the other stake holders the question becomes “what problems do we have and how do we solve them.” You could well decide different things are the problem. You will almost certainly come up with different solutions.
Here is an example:
When presenting at an event recently I asked some people in the audience (mixed Ops and Devs) about what things bugged them about their counterparts in Dev or Ops. One of the Devs spoke up about his frustration that the Ops weren’t checking the logs for some application. Presumably there was some intractable problem that could not be readily fixed. The “solution” was to require the Ops to check the logs and restart the application when necessary.
This was “me” thinking. It fixes the problem as far as the developer is concerned (at least temporarily) but the fix actually makes work for the Ops team. And even worse it is asking them to do a new manual process. I asked why did the Ops need to check the logs? If they had been using “we” thinking they might have come up with a different solution…
Lets assume for the minute that the underlying problem could not be readily fixed. The solution that they are using requires the application to be restarted. In this case the implication was that the problem was not occurring more than once per day. So lets ask the question again in “we” thinking… What can we (Dev and Ops) do to work around this problem?
Why not just automatically restart the application every day? That way no one needs to remember to manually check logs. Then there is the time required to execute that manual process and the potential to get it wrong. I realise this is a simplistic example but the specific solution isn’t important. What is important is thinking about the problem in the context of all the stakeholders and coming up with a solution that is best for all of them. More “we” less “me”.