Developers and Operations working together - whatever next?


Working in the DSI world, one of the challenges in improving an applications existence in the data center is making sure the application has the correct instrumentation.


What do we mean by the correct instrumentation?


The simplest answer is that the instrumentation should be useful for the target audience. So who is the target audience. In my world there are 2:

  • Developers - developers want instrumentation to help them debug the application. They are interested in which methods are being called, what the data looks like, and when there is a problem a stack trace comes in handy.
  • The IT Pro - IT Pro are not interested in knowing which method has just been run, what the data looks like and they definitely have no use for a stack trace. What the IT Pro needs to know is what generally has gone wrong and more importantly what they should do to fix it.


From these 2 target audiences, its probably fair to say the application will spend more time being operated than being developed (at least that is the hope).


So to make the best use of our instrumentation we should target IT Pros.


Now as a developer, the question I ask is, "What is useful to an IT Pro?"


So the best person to answer this is an IT Pro.


So now we have a requirement that an IT Pro provides us with some instrumentation specification. But I don't think they can do this in isolation.


These means that Dev and Pro need to work together to DESIGN the instrumentation. We call this design effort the applications Health or Management Model. (yes another model - We event have a tool available to help at 


I write DESIGN in upper case because a) I am SHOUTING, and b) that is when it needs to be done.


This is where the term Design for Operations comes in. Its a key part of DSI, and a fundamental building block. After all, if the application is not designed in a way that it can be managed by other software, DSI will stay a dream.