First of all, hello everyone! Michael Larsen is back in the Live Blog saddle and very thankful for the legendary efforts of Martin Hynie yesterday on my behalf. I had a scheduling mess up and agreed to be on tap for a release yesterday and then too late realizing I was supposed to be at TestBash. Reality happens when you are actively trying to do other things.
So for our first talk, we get to hear Rob Meaney discussing Observability and how it is not just important but critical for software to thrive.
Observability joins nicely into a symbiotic relationship with Testability. By being able to examine the testability of systems and to put the time upfront in the way that we interact, we can make better strides in both the way that tests can be automated as well as to enhance “Explorability” of an application.
From my own experiences, there are definite benefits of having conversations about what can or cannot be tested in a product. The changes need not be massive but they are often game-changers if implemented early enough.
Testing in production may sound both terrifying or off-putting but truth is, there are many scenarios that can’t really be tested in any other way. Also, Rob makes a point that if we are not testing in production, then our customers most certainly are. Thus the greatest risks are in production and therefore we should look at a way to emphasize our testing practices when dealing with production.
Rob shared that one of their most critical times is to deal with Black Friday. No amount of pre-production testing is really going to allow you to simulate that in anything resembling reality.
So what are some examples of Observability? Logging, monitoring, tracing and handling alerts all fit into this. In short, you need to be alert and aware of what is going on with your application. Observability helps you understand what your application is actually doing, not just what you hope it is doing. The realities of what the users are actually doing and where we need to focus our efforts come into play by, say it with me, “being observant”. Think of these questions:
- how would you know if your system is unhealthy?
- how would you be able to pinpoint issues if the system was unhealthy?
- what feedback does your application give you so that you can determine its overall health?
Observability is directly tied with a sense of reality related to our applications. Without that view of reality, we don’t know what to actually look at.
“Accelerate” by Nicole Fosghren and Jez Humble. Read it. All right, will do :).
Key to this is the fact that everyone in the organization needs to embrace this approach. It’s not going to be easy but it’s very likely to prove worth it.