See how your team compares with these benchmarks

Easy Agile Podcast Ep.12 Observations on Observability

Listen on
Subscribe to our newsletter
  • website.easyagile.com/blog/rss.xml

On this episode of The Easy Agile Podcast, tune in to hear developers Angad, Jared, Jess and Jordan, as they share their thoughts on observability.  

Wollongong has a thriving and supportive tech community and in this episode we have brought together some of our locally based Developers from Siligong Valley for a round table chat on all things observability.

💥 What is observability?
💥 How can you improve observability?
💥 What's the end goal?

Angad Sethi

"This was a great episode to be a part of! Jess and Jordan shared some really interesting points on the newest tech buzzword - observability""

Be sure to subscribe, enjoy the episode 🎧

Transcript

Jared Kells:

Welcome everybody to the Easy Agile podcast. My name's Jared Kells, and I'm a developer here at Easy Agile. Before we begin, Easy Agile would like to acknowledge the traditional custodians of the land from which we broadcast today, the Wodiwodi people of the Dharawal nation, and pay our respects to elders past, present and emerging, and extend that same respect to any aboriginal people listening with us today.

Jared Kells:

So today's podcast is a bit of a technical one. It says on my run sheet here that we're here to talk about some hot topics for engineers in the IT sector. How exciting that we've got a couple of primarily front end engineers and Angad and I are going to share some front end technical stuff and Jess and Jordan are going to be talking a bit about observability. So we'll start by introductions. So I'll pass it over to Jess.

Jess Belliveau:

Cool. Thanks Jared. Thanks for having me one as well. So yeah, my name's Jess Belliveau. I work for Apptio as an infrastructure engineer. Yeah, Jordan?

Jordan Simonovski:

I'm Jordan Simonovski. I work as a systems engineer in the observability team at Atlassian. I'm a bit of a jack of all trades, tech wise. But yeah, working on building out some pretty beefy systems to handle all of our data at Atlassian at the moment. So, that's fun.

Angad Sethi:

Hello everyone. I'm Angad. I'm working for Easy Agile as a software dev. Nothing fancy like you guys.

Jared Kells:

Nothing fancy!

Jess Belliveau:

Don't sell yourself short.

Jared Kells:

Yeah, I'll say. Yeah, so my name's Jared, and yeah, senior developer at Easy Agile, working on our apps. So mainly, I work on programs and road maps. And yeah, they're front end JavaScript heavy apps. So that's where our experience is. I've heard about this thing called observability, which I think is just logs and stuff, right?

Jess Belliveau:

Yeah, yeah. That's it, we'll wrap up!

Jared Kells:

Podcast over! Tell us about observability.

Jess Belliveau:

Yeah okay, I'll, yeah. Well, I thought first I'd do a little thing of why observability, why we talk about this and sort of for people listening, how we got here. We had a little chat before we started recording to try and feel out something that might interest a broader audience that maybe people don't know a lot about. And there's a lot of movements in the broad IT scope, I guess, that you could talk about. There's so many different things now that are just blowing up. Observability is something that's been a hot topic for a couple of years now. And it's something that's a core part of my job and Jordan's job as well. So it's something easy for us to talk about and it's something that you can give an introduction to without getting too technical. So we don't want to get down. This is something that you can go really deep into the weeds, so we picked it as something that hopefully we can explain to you both at a level that might interest the people at home listening as well.

Jess Belliveau:

Jordan and I figured out these four bullet points that we wanted to cover, and maybe I can do the little overview of that, and then I can make Jordan cover the first bullet point, just throw him straight under the bus.

Jordan Simonovski:

Okay!

Jess Belliveau:

So we thought we'd try and describe to you, first of all, what is observability. Because that's a pretty, the term doesn't give you much of what it is. It gives you a little hint, but it'll be good to base line set what are we talking about when we say what is observability. And then why would a development team want observability? Why would a company want observability? Sort of high level, what sort of benefits you get out of it and who may need it, which is a big thing. You can get caught up in these industry hot buzz words and commit to stuff that you might not need, or that sort of stuff.

Jared Kells:

Yep.

Jordan Simonovski:

Yep.

Jess Belliveau:

We thought we'd talk about some easy wins that you get with observability. So some of the real basic stuff you can try and get, and what advantages you get from it. And then we just thought because we're no going to try and get too deep, we could just give a few pointers to some websites and some YouTube talks for further reading that people want to do, and go from there. So yeah, Jordan you want to-

Jared Kells:

Sounds good.

Jess Belliveau:

Yeah. I hopefully, hopefully. We'll see how this goes! And I guess if you guys have questions as well, that's something we should, if there's stuff that you think we don't cover or that you want to know more, ask away.

Jordan Simonovski:

I guess to start with observability, it's a topic I get really excited about, because as someone that's been involved in the dev ops and SRE space for so long, observability's come along and promises to close the loop or close a feedback loop on software delivery. And it feels like it's something we don't really have at the moment. And I get that observability maybe sounds new and shiny, but I think the term itself exists to maybe differentiate itself from what's currently out there. A lot of us working in tech know about monitoring and the loading and things like that. And I think they serve their own purpose and they're not in any way obsolete either. Things like traditional monitoring tools. But observability's come along as a way to understand, I think, the overwhelmingly complex systems that we're building at the moment. A lot of companies are probably moving towards some kind of complicated distributed systems architecture, microservices, other buzz words.

Jordan Simonovski:

But even for things like a traditional kind of monolith. Observability really serves to help us ask new questions from our systems. So the way it tends to get explained is monitoring exits for our known unknowns. With seniority comes the ability to predict, almost, in what way your systems will fail. So you'll know. The longer you're in the industry, you know this, like a Java server fails in x, y, z amount of ways, so we should probably monitor our JVM heap, or whatever it is.

Jared Kells:

I was going to say that!

Jordan Simonovski:

I'll try not to get too much into-

Jared Kells:

Runs out of memory!

Jordan Simonovski:

Yeah. So that's something that you're expecting to fail at some point. And that's something that you can consider a known unknown. But then, the promise of observability is that we should be shipping enough data to be able to ask new questions. So the way it tends to get talked about, you see, it's an unknown unknown of our system, that we want to find out about and ask new questions from. And that's where I think observability gets introduced, to answer these questions. Is that a good enough answer? You want me to go any further into detail about this stuff? I can talk all day about this.

Jared Kells:

Is it like a [crosstalk 00:08:05]. So just to repeat it back to you, see if I've understood. Is it kind of like if I've got a, traditionally with a Java app, I might log memories. It's because I know JVM's run out of memory and that's a thing that I monitor, but observability is more broad, like going almost over the top with what you monitor and log so that you can-

Jordan Simonovski:

Yeah. And I wouldn't necessarily say it's going over the top. I think it's maybe adding a bit more context to your data. So if any of you have worked with traces before, observability is very similar to the way traces work and just builds on top of the premise of traces, I guess. So you're creating these events, and these events are different transactions that could be happening in your applications, usually submitting some kind of request. And with that request, you can add a whole bunch of context to it. You can add which server this might be running on, which time zone. All of these additional and all the exciters. You can throw in user agency into there if you want to. The idea of observability is that you're not necessarily constrained by high cardinality data. High cardinality data being data sets that can change quite largely, in terms of the kinds of data they represent, or the combinations of data sets that you could have.

Jordan Simonovski:

So if you want shipping metrics on something, on a per user basis and you want to look at how different users are affected by things, that would be considered a high cardinality metric. And a lot of the time it's not something that traditional monitoring companies or metric providers can really give you as a service. That's where you'll start paying insanely huge bills on things like Datadog or whatever it is, because they're now being considered new metrics. Whereas observability, we try and store our data and query it in a way that we can store pretty vast data sets and say, "Cool. We have errors coming from these kinds of users." And you can start to build up correlations on certain things there. You can find out that users from a particular time zone or a particular device would only be experiencing that error. And from there, you can start building up, I think, better ways of understanding how a particular change might have broken things. Or some particular edge cases that you otherwise couldn't pick up on with something like CPU or memory monitoring.

Angad Sethi:

Would it be fair to say-

Jared Kells:

Yeah. It's [crosstalk 00:11:02].

Angad Sethi:

Oh, sorry Jared.

Jared Kells:

No you can-

Angad Sethi:

Would it be fair to say that, so, observability is basically a set of principles or a way to find the unknown unknowns?

Jordan Simonovski:

Yeah.

Angad Sethi:

Oh.

Jess Belliveau:

And better equip you to find, one of the things I find is a lot of people think, you get caught up in thinking observability is a thing that you can deploy and have and tick a box, but I like your choice of word of it being a set of principles or best practices. It's sort of giving you some guidance around these, having good logging coming out of your application. So structured logs. So you're always getting the same log format that you can look at. Tracing, which Jordan talked a little bit about. So giving you that ability to follow how a user is interacting with all the different microservices and possibly seeing where things are going wrong, and metrics as well. So the good thing with metrics is we're turning things a bit around and trying to make an application, instead of doing, and I don't want to get too technical, black box monitoring, where we're on the outside, trying to peer in with probes and checks like that. But the idea with metrics is the application is actually emitting these metrics to inform us what state it is in, thereby making it more observable.

Jess Belliveau:

Yeah, I like your choice of words there, Angad, that it's like these practices, this sort of guide of where to go, which probably leads into this next point of why would a team want to implement it. If you want to start again, Jordan?

Jordan Simonovski:

Yeah, I can start. And I'll give you a bit more time to speak as well, Jess in this one. I won't rant as much.

Jess Belliveau:

Oh, I didn't sign up for that!

Jordan Simonovski:

I think why teams would want it is because, it really depends on your organization and, I guess, the size of the teams you're working in. Most of the time, I would probably say you don't want to build observability yourself in house. It is something that you can, observability capabilities themselves, you won't achieve it just by buying a thing, like you can't buy dev ops, you can't buy Agile, you can't buy observability either.

Jared Kells:

Hang on, hang on. It says on my run sheet to promote Easy Agile, so that sounds like a good segue-

Jess Belliveau:

Unless you want to buy it. If you do want to buy Agile, the [crosstalk 00:13:55] in the marketplace.

Jared Kells:

Yeah, sorry, sorry, yeah! Go on.

Jordan Simonovski:

You can buy tools that make your life a lot easier, and there are a lot of things out there already which do stuff for people and do surface really interesting data that people might want to look at. I think there are a couple of start ups like LightStep and Honeycomb, which give you a really intuitive way of understanding your data in production. But why you would need this kind of stuff is that you want to know the state of your systems at any given point in time, and to build, I guess, good operational hygiene and good production excellence, I guess as Liz Fong-Jones would put it, is you need to be able to close that feedback loop. We have a whole bunch of tools already. So we have CICD systems in place. We have feature flags now, which help us, I guess, decouple deployments from releases. You can deploy code without actually releasing code, and you can actually give that power to your PM's now if you want to, with feature flags, which is great.

Jordan Simonovski:

But what you can also do now is completely close this loop, and as you're deploying an application, you can say, "I want to canary this deployment. I want to deploy this to 10% of my users, maybe users who are opted in for Beta releases or something of our application, and you can actually look at how that's performing before you release it to a wider audience. So it does make deployments a lot safer. It does give you a better understanding of how you're affecting users as well. And there are a whole bunch of tools that you can use to determine this stuff as well. So if you're looking at how a lot of companies are doing SRE at the moment, or understanding what reliable looks like for their applications, you have things like SLO's in place as well. And SLO's-

Jared Kells:

What's an SLO?

Jordan Simonovski:

They're all tied to user experiences. So you're saying, "Can my user perform this particular interaction?" And if you can effectively measure that and know how users are being affected by the changes you're making, you can easily make decisions around whether or not you continue shipping features or if you drop everything and work on reliability to make sure your users aren't affected. So it's this very user centric approach to doing things. I think in terms of closing the loop, observability gives us that data to say, "Yes, this is how users are being affected. This is how, I guess the 99th percentile of our users are fine, but we have 1% who are having adverse issues with our application." And you can really pinpoint stuff from there and say, "Cool. Users with this particular browser or this particular, or where we've deployed this app to," let's say if you have a global deployment of some kind, you've deployed to an island first, because you don't really care what happens to them. You can say, "Oh, we've actually broken stuff for them." And you can roll it back before you impact 100% of your users.

Jared Kells:

Yeah. I liked what you said about the test. I forgot the acronym, but actually testing the end user behavior. That's kind of exciting to me, because we have all these metrics that are a bit useless. They're cool, "Oh, it's using 1% CPU like it always is, now I don't really care," but can a user open up the app and drag an issue around? It's like-

Jess Belliveau:

Yeah, that's a really great example, right?

Jared Kells:

That's what I really care about.

Jess Belliveau:

The 1% CPU thing, you could look at a CPU usage graph and see a deployment, and the CPU usage doesn't change. Is everything healthy or not? You don't know, whereas if you're getting that deeper level info of the user interactions, you could be using 1% CPU to serve HTTP500 errors to the 80% of the customer base, sort of thing.

Angad Sethi:

How do you do that? The SLO's bit, how do you know a user can log in and drag an issue?

Jordan Simonovski:

Yeah. I think that would come with good instrumenting-

Angad Sethi:

Good question?

Jordan Simonovski:

Yeah, it comes down to actually keeping observability in mind when you are developing new features, the same way you would think about logging a particular thing in your code as you're writing, or writing test for your code, as you're writing code as well. You want to think about how you can instrument something and how you can understand how this particular feature is working in production. Because I think as a lot of Agile and dev ops principles are telling us now is that we do want our applications in production. And as developers, our responsibilities don't end when we deploy something. Our responsibility as a developer ends when we've provided value to the business. And you need a way of understanding that you're actually doing that. And that's where, I guess, you do nee do think about observability with a lot of this stuff, and actually measuring your success metrics. So if you do know that your application is successful if your user can log in and drag stuff around, then that's exactly what you want to measure.

Jared Kells:

I think that we have to build-

Jordan Simonovski:

Yeah?

Jared Kells:

Oh, sorry Jordan.

Jordan Simonovski:

No, you go.

Jared Kells:

I was just going to say we have to build our apps with integration testing in mind already. So doing browser based tests around new features. So it would be about building features with that and the same thing in mind but for testing and production.

Jess Belliveau:

Yeah and the actual how, the actual writing code part, there's this really great project, the open telemetry project, which provides all these sort of API's and SDK's that developers can consume, and it's vendor agnostic. So when you talk about the how, like, "How do I do this? How do I instrument things?" Or, "How do I emit metrics?" They provide all these helpful libraries and includes that you can have, because the last thing you want to do is have to roll this custom solution, because you're then just adding to your technical debt. You're trying to make things easier, but you're then relying on, "Well I need to keep Jared Kells employed, because he wrote our log in engine and no one else knows how it works.

Jess Belliveau:

And then the other thing that comes to mind with something like open telemetry as well, and we talked a bit about Datadog. So Datadog is a SaaS vendor that specializes in observability. And you would push your metrics and your logs and your traces to them and they give you a UI to display. If you choose something that's vendor agnostic, let's just use the example of Easy Agile. Let's say they start Datadog and then in six months time, we don't want to use Datadog anymore, we want to use SignalFx or whatever the Splunk one is now.

Jordan Simonovski:

I think NorthX.

Jess Belliveau:

Yeah. You can change your end point, push your same metrics and all that sort of stuff, maybe with a few little tweaks, but the idea is you don't want to tie in to a single thing.

Jordan Simonovski:

Your data structures remain the same.

Jess Belliveau:

Yeah. So that you could almost do it seamlessly without the developers knowing. There's even companies in the past that I think have pushed to multiple vendors. So you could be consuming vendor A and then you want to do a proof of concept with vendor B to see what the experience is like and you just push your data there as well.

Jared Kells:

Yeah. I think our coupling to Datadog will be I all the dashboards and stuff that we've made. It's not so much the data.

Jess Belliveau:

Yeah. That's sort of the big up sell, right. It's how you interact. That's where they want to get their hooks in, is making it easier for you to interpret that data and manipulate it to meet your needs and that sort of stuff.

Jordan Simonovski:

Observability suggests dashboards, right?

Jess Belliveau:

Yeah, perhaps. You used this term as well, Jordan, "production excellence." And when we talk about who needs observability, I was thinking a bit about that while you were talking. And for me, production excellence, or in Apptio we call it production readiness, operational readiness and that sort of stuff is like we want to deploy something to production like what sort of best practices do we want to have in place before we do that? And I think observability is a real great idea, because it's helping you in the future. You don't know what problems you're going to have down the line, but you're equipping your teams to be able to respond to those problems easily. Whereas, we've all probably been there, we've deployed code of production and we have no observability, we have a huge outage. What went wrong? Well, no one knows, but we know this is the fix, and it's hard to learn from that, or you have to learn from that I guess, and protect the user against future stuff, yeah.

Jess Belliveau:

When I think easy wins for observability, the first thing that really comes to mind is this whole idea of structured logging, which is really this idea that your application is you're logging, first of all. Quite important as a baseline starting point, but then you have a structured log format which lets you programmatically pass the logs as well. If you go back in time, maybe logging just looked like plain text with a line, with a timestamp, an error message. Whatever the developer decided to write to the standard out, or to the error file or something like that. Now I think there's a general move to having JSON, an actual formatted blob with that known structure so you can look into it. Tracing's probably not an easy win. That's a little bit harder. You can implement it with open telemetry and libraries and stuff. Requires a bit more understanding of your code base, I guess, and where you want tracing to fire, and that sort of stuff, parsing context through, things like that.

Jordan Simonovski:

I think Atlassian, when you probably just want to know that everything is okay. At a fairly superficial level. Maybe you just want to do some kind of up time on a trend. And then as, I guess, your code might get more complex or your product gets a bit more complex, you can start adding things in there. But I think actually knowing or surfacing the things you know might break. Those would probably be your quickest wins.

Jess Belliveau:

Well, let's mention some things for further reading. If you want to go get the whole picture of the whole, real observability started to get a lot of movement out of the Google SRE book from a few years ago. The Google SRE stuff covers the whole gamut of their soak reliability engineering practice, and observability is a portion of that, there's some great chapters on that. O'Reilly has an observability book, I think, just dedicated to observability now.

Jordan Simonovski:

I think that's still in early release, if people want to google chapters.

Jess Belliveau:

The open telemetry stuff, we'll drop a link to that I think that's really handy to know.

Angad Sethi:

From [inaudible 00:26:12], which is my perspective, as a developer, say I wanted to introduce cornflake use Datadog at Easy Agile. Not very familiar, I'm not very comfortable with it. I know how to navigate, but what's a quick way for me to get started on introducing observability? Sorry to lock my direct job or at my workplace.

Jordan Simonovski:

I would lean, I could be biased here. Jess correct me or give your opinion on this, I would lean heavily towards SLO's for this. And you can have a quick read in the SRE-

Jess Belliveau:

What does SLO stand for, Jordan?

Jordan Simonovski:

Okay, sorry. Buzz words! SLO is a service level objective, not to be confused with service level agreement. An agreement itself is contractual and you can pay people money if you do breach those. An SLO is something you set in your team and you have a target of reliability, because we are getting to the point where we understand that all systems at any point in time are in some kind of degraded state. And yeah, reliability isn't necessarily binary, it's not unreliable or reliable. Most of the time, it's mostly reliable and this gives us a better shared language, I guess. And you can have a read in the SRE handbook by Google, which is free online, which gives you a pretty good understanding of Datadog.

Jordan Simonovski:

I think the last time I used it had a SLO offering. But I think like I was mentioning earlier, you set an SLO on particular functionalities or features of your application. You're saying, "My user can do this 99% of the time," or whatever other reliability target you might want to set. I wouldn't recommend five nines of reliability. You'll probably burn yourself out trying to get there. And you have this target set for yourself. And you know exactly what you're measuring, you're measuring particular types of functionality. And you know when you do breach these, users are being affected. And that's where you can actually start thinking about observability. You can think about, "What other features are we implementing that we can start to measure?" Or, "What user facing things are we implementing that we can start to measure?"

Jordan Simonovski:

Other things you could probably look at are, I think they're all covered in the book anyway, data freshness in a way. You want to make sure the data users are being displayed is relatively fresh. You don't want them looking at stale data, so you can look at measuring things like that as well. But you can pretty much break it down into most functionalities of a website. It's no longer like a ping check, that you're just saying, "Yes, HTTP, okay. My application is fine." You're saying, "My users are actually being affected by things not working." And you can start measuring things from there. And that should give you a better understanding, or a better idea, at least, of where to start with what you want to measure and ow you want to measure it. That would be my opinion on where to get started with this if you do want to introduce it.

Jared Kells:

We're going to talk a little bit about state and how with some of these, like our very front end heavy applications that we're building, so the applications we build just basically run inside the browser and the traditional state as you would think about it, is just pulling a very simple API that writes some things into the database with some authentication, and that sort of stuff. So in terms of reliability of the services, it's really reliable. Those tiny API's just never have problems, because it's just so simple. And well, they've got plenty of monitoring around it. But all our state is actually, when you say, "Observe the state of the system," for the most part, that's state in a browser. And how do we get observability into that?

Jess Belliveau:

A big thing is really, there's not one thing fits all as well. When we talk about the SLO stuff as well, it's understanding what is important to not so much maybe your company but your team as well. If you're delivering this product, what's important to you specifically? So one SLO that might work for me at Apptio probably isn't going to work for Easy Agile. This is really pushing my knowledge, as well, of front end stuff, but when we say we want to observe the state as well, we don't necessarily mean specifically just the state. You could want to understand with each one of those API's when it's firing, what the request response time is for that API firing. So that might be an important metric. So you can start to see if one of those APIs is introducing latency, and so your user experience is degraded. Like, "Hey when we were on release three, when users were interacting with our service here, it would respond in this percentile latency. We've done a release and since then, now we're seeing it's now in this percentile. Have we degraded performance performance?" Users might not be complaining, but that could be something that the team then can look into, add to a sprint. Hey, I'm using Agile terms now. Watch out!

Jared Kells:

That's a really good example, Jess. Performance issues for us are typically not an API that's performing poorly. It's something in this very complicated front end application is not running in the same order as it used to, or there's some complex interaction we didn't think of, so it's requesting more data than expected. The APIs are returning. They're never slow, for the most part, but we have performance regressions that we may not know about without seeing them or investigating them. The observability is really at the individual user's browser level. That makes sense? I want to know how long did it take for this particular interaction to happen.

Jess Belliveau:

Yeah. I've never done that sort of side of things. As well, the other thing I guess, you could potentially be impacted in as well as then, you're dealing with end user manifestations as well. You could perceive-

Jared Kells:

Yeah sure.

Jess Belliveau:

... Greater performance on their laptop or something, or their ISP or that sort of stuff. It'd be really hard to make sure you're not getting noise from that sort of thing as well.

Jordan Simonovski:

Yeah. There are tools like Sentry, I guess, which do exist to give you a bit more of an understanding what's happening on your front end. The way Sentry tends to work with JavaScript, is you'll upload a minified map of your JS to Sentry, deploy your code and then if something does break or work in a fairly unexpected way, that tends to get surfaced with Sentry will tell you exactly which line this kind of stuff is happening on, and it's a really cool tool for that company stuff. I don't know if it'd give you the right type of insights, I think, in terms of performance or-

Jared Kells:

Yeah, we use a similar tool and it does work for crashes and that sort of thing. And on the observability front, we log actions like state mutations in side the front end, not the actual state change, but just labels that represent that you updated an issue summary or you clicked this button, that sort of thing, and we send those with our crash reports. And it's super helpful having that sort of observability. So I think I know what you guys are talking about. But I'm just [crosstalk 00:35:25], yeah.

Jess Belliveau:

Yeah, that's almost like, I guess, a form of tracing. For me and Jordan, when we talk about tracing, we might be thinking about 12 different microservices sitting in AWS that are all interacting, whereas you're more shifting that. That's sort of all stuff in the browser interacting and just having that history of this is what the user did and how they've ended up-

Jared Kells:

In that state.

Jess Belliveau:

In that state, yeah.

Jordan Simonovski:

I guess even if you don't have a lot of microservices, if you're talking about particular, like you're saying for the most part your API requests are fine but sometimes you have particularly large payloads-

Jared Kells:

We actually have to monitor, I don't know, maybe you can help with this, we actually should be monitoring maybe who we're integrating with. It's actually much more likely that we'll have a performance issue on a Xero API rather than... We don't see it, the browser sees it as well, which is-

Jordan Simonovski:

Yeah, and tracing does solve all of those regressions for you. Most tracing libraries, like if you're running Node apps or whatever on your backend. I can just tell you about Node, because I probably have the most experience writing Node stuff. You pretty much just drop in Didi trace, which is a Datadog library for tracing into your backend and your hook itself into all of, I think, the common libraries that you'll tend to work with, I think. Like if you're working for express or for a lot of just HADP libraries, as well as a few AWS services, it will kind of hook itself into that. And you can actually pinpoint. It will kind of show you on this pretty cool service map exactly which services you're interacting with and where you might be experiencing a regression. And I think traces do serve to surface that information, which is cool. So that could be something worth investigating.

Jess Belliveau:

It's funny. This is a little bit unrelated to observability, but you've just made me think a bit more about how you're saying you're reliant on third party providers as well. And something I think that's really important that sometimes gets missed is so many of us today are relying on third party providers, like AWS is a huge thing. A lot of people writing apps that require AWS services. And I think a lot of the time, people just assume AWS or Jira or whatever, is 100% up time, always available. And they don't write their code in such a way that deals with failures. And I think it's super important. So many times now I've seen people using the AWS API and they don't implement exponential back off. And so they're basically trying to hit the AWS API, it fails or they might get throttled, for example, and then they just go into a fail state and throw an error to the user. But you could potentially improve that user experience, have a retry mechanism automatically built in and that sort of stuff. It doesn't really tie into the observability thing, but it's something.

Jared Kells:

And the users don't care, right? No one cares if it's an AWS problem. It's your problem, right, your app is too slow.

Jess Belliveau:

Well, they're using your app. Exactly right. It reflects on you sort of thing, so it's in your interest to guard against an upstream failure, or at least inform the user when it's that case. Yeah.

Jared Kells:

Well, I think we're going to have to call it, this podcast, because it was an hour ago. We had instructed max 45 minutes.

Jess Belliveau:

We could just keep going. We might need a part two! Maybe we can request [cross talk 00:39:21].

Jared Kells:

Maybe! Yeah.

Jess Belliveau:

Or we'll just start our own podcast! Yeah.

Angad Sethi:

So what were your biggest learnings today, given it's been Angad and I are just learning about observability, Angad what was your biggest learning today about observability? My biggest learning was that observability does not equal Datadog. No, sorry! It was just very fascinating to learn about quantifying the known unknowns. I don't know if that's a good takeaway, but...

Jess Belliveau:

Any takeaway is a good takeaway! What about you, Jared?

Jared Kells:

I think, because I we were going to talk about state management, and part of it was how we have this ability, at the moment to, the way our front ends are architected, we can capture the state of the app and get a customer to send us their state, basically. And we can load it into our app and just see exactly how it was, just the way our state's designed. But what might be even cooler is to build maybe some observability into that front end for support. I'm thinking instead of just having, we have this button to send us out your support information that sends us a bunch of the state, but instead of console logging to the browser log, we could be console logging, logging in our front end somewhere that when they click, "send support information," our customers should be sending us the actions that they performed.

Jared Kells:

Like, "Hey there's a bug, send us your support information." It doesn't have to be a third party service collecting this observability stuff. We could just build into our... So that's what I'm thinking about.

Jess Belliveau:

Yeah, for sure. It'll probably be a lot less intrusive, as well, as some of the third party stuff that I've seen around.

Jared Kells:

Yeah. It's pretty hard with some of these integrations, especially if you're developing apps that get run behind a firewall.

Jess Belliveau:

Yeah

Jared Kells:

You can't just talk to some of these third parties. So yeah, it's cool though. It's really interesting.

Jess Belliveau:

Well, I hope someone out there listening has learned something, and Jordan and I will send some links through, and we can add them, hopefully, to the show notes or something so people can do some more reading and...

Jared Kells:

All thanks!

Jess Belliveau:

Thanks for having us, yeah.

Jared Kells:

Thanks all for your time, and thanks everybody for listening.

Jordan Simonovski:

Thanks everyone.

Angad Sethi:

That was [inaudible 00:41:55].

Jess Belliveau:

Tune in next week!

Related Episodes

  • Podcast

    Easy Agile Podcast Ep.14 Rocking the Docs

    "I loved having the space to talk about common interests - all things technical documentation & information architecture" - Henri Seymour

    On this episode of The Easy Agile Podcast, tune in to hear Henri Seymour - Developer at Easy Agile speak with Matt Reiner - Customer Advocate at K15t.

    Henri & Matt are talking all things technical documentation (we promise this episode is way more interesting than it sounds! 😉)


    ✏️ Considering technical documentation as a product
    ✏️ The value of well written documentation
    ✏️ Why you should be digitally decluttering often
    ✏️ Information architecture

    So many golden nuggets in this episode!

    Be sure to subscribe, enjoy the episode 🎧

    Transcript

    Henri Seymour:

    Hi, everyone. This is the Easy Agile Podcast. We've got an episode today with Matt Reiner. I'm your host for today, Henri Seymour, developer at Easy Agile. And just before we start the podcast, I'd like to acknowledge the traditional Australians of the land on which I'm recording today, the Watiwati people of the Dharawal nation. Pay respect to elders past, present, and emerging, and extend that respect to any Aboriginal or Torres Strait Islander people listening to this episode.

    Matt is an experienced content strategist with a history of working in the computer software industry, skilled in agile scrum framework, related tools, communication, technical writing, video production, customer interaction, strategic planning. And he's here today to talk with us about writing and specifically technical writing and documentation. Hi, Matt.

    Matt Reiner:

    Hi. It's great to be here. Yeah, I'm Matt. I'm into all sorts of content things. And one of those is technical writing, which is, I think more interesting than it sounds. I guess you'll have to decide by the end of the podcast, if you think so.

    Henri Seymour:

    Technical documentation experts. So when you talk about technical documentation specifically, what do you mean by that?

    Matt Reiner:

    Well, I feel like that term is actually in the middle of a big change right now. In the past, technical documentation was very strictly like, "Okay, we're a team, we're making a thing, a product." Maybe it's an app, maybe it's, I don't know, a go-kart and we need to have a user manual for that. Technical documentation was someone sitting down and writing down, "Okay, here are all the knobs and switches and here's what they do. Here are all the features. Here's maybe why you would use them."

    So putting together that user guide, which traditionally was printed material that you would get with the product. But it's become a lot more over time, partially with the internet, because we can just constantly iterate on content like many of us do with the products that our teams make. And then also we are seeing it in new forms. Maybe it's not a printed piece, in fact, most people do not want printed technical documentation anymore, they want it online. Or even better, they want it right in context in your app when they're using it, they can just get the info they need, and then get on with it.

    That's what technical documentation is. It's supposed to be there to help you do the thing that you really care about and then get out of the way so that you can do it.

    Henri Seymour:

    Do you have a description of why good technical documentation? Not just having it, but having it at a good quality in a way that really helps your users, is so important to product users.

    Matt Reiner:

    Well, I suppose we all find those points in our day or in our journey that we find ourselves in where we want to accomplish something, but we don't know how to do it. So a lot of us have really gotten very used to jumping on Google and saying, "Okay, here's this thing I want to do, how do I do it?" And good technical documentation is there with the answer you need, the explanation you need. Because really ultimately all of us are smart people who should be empowered to do the thing we're passionate about.

    And technical writers and communicators who are really all members of our team. People who sit down to create good technical documentation uses few words as possible to get a person on the way they're going. And that's like, when it happens its just like, "Glorious," not to the user. They don't even know that it happened, they didn't even know that they read your writing. But to the writer, it's like, "Yeah, I did it, I did it. They don't even care what I did, but I did it." And now they're doing the thing that really matters.

    Henri Seymour:

    That's great understanding one of the major differences of like, I've written something and I don't want my user to be spending time on it. I want as little time spent reading this as possible.

    Matt Reiner:

    Yeah, yeah, yeah. You can have great pride in your work, but one of those metrics that a lot of people look at for websites is time spent on page. So sometimes you can fool yourself into thinking, "Oh wow, they spent 10 minutes on my page. That means my documentation's really good." But also that might mean that it's not very good and they're having to reread it over and over again. So the true metric is, did they get to the thing they really cared about? And unfortunately, it's hard to measure.

    Henri Seymour:

    You mentioned now that with the advent of the internet and giving you the opportunity to iterate on those docs in a way that you wouldn't be able to with printed documentation. That iterative thing brings the agile process of iterate on something that you already put out and improve it in the same way that as a developer I do for products. Can you tell us more about that iterative agile sort of process?

    Matt Reiner:

    Oh yeah. Yeah, it's so true. Documentation used to be back in the waterfall standard, more typical product project management days, documentation was a major part of it. You'd start this project by writing these massive documents of, "Here's what we're going to set out to do. And here's all the considerations, and here's how everything's going to connect up." And that did work really well for a lot of hardware. Which was the thing that we made for a long time. Just everything that humankind made was hardware often, as groups anyway.

    And then all of a sudden this whole software thing comes along and we're trying to build that like it's a physical thing. And we get to the end of this two-year software project and people are like, "Yeah, that's not the thing that I wanted." But we're like, "Oh, but we go back to the beginning and look at that documentation, and that's what you said you wanted." But now with the internet and with just agile development, we really need to move away from this place where we start with a pile of documents. And then we develop another pile of documents as our, I don't know, development guidelines.

    And then our test plans, and then finally we end up with user documentation. Instead, these days, documentation should really just grow from a very small piece of content throughout that whole agile development cycle into that final user documentation. Because it doesn't matter what we set out to make, it matters what we make. Nobody he wants to read about what we thought we would make, that's straight up fiction. And it's probably not an interesting read. It's really that final user guide that comes out of the agile process, but that's a big change, but it's a good one.

    Henri Seymour:

    I love that idea of just like, this is gradually growing. There is no specific start block and end block. It's a process. And you mentioned the opportunity to iterate on those documents. Do you have any advice for after you've published digitally your technical documentation from iterating on what you've already got there, improving that over time?

    Matt Reiner:

    Oh yeah. I know every agile framework is different, but they all have that feedback phase, where... And really that's throughout the whole process, but we do need to dedicate some time. So, there's a lot of different things we can look at. For example, I don't want to say basic, a standard one that we should be looking at is, you should have a help center, where you can implement something like Google Analytics so you can see just, what are people looking at? How long are they looking at it?

    Another really good one is, you have to set it up separately in Google Analytics. What are people searching for on your site? You can also use Google... used to be Webmaster Tools. I think it's called Site Tools now, but you can see what were people searching for on Google before they came to your pages. That's all really, really valuable stuff. Then you can get more advanced. You can look at pointer tracking, apps that you can embed on there, which you get some pretty wild stuff.

    But then you also, you want to consider having a forum at the bottom of each page like, "Was this helpful? Was it not helpful? Oh, it wasn't helpful? Tell me why. Oh, it was helpful? Tell me why." Just like a YouTube creator, they look for that feedback. That feedback is essential, the thumbs up. In fact, it's very controversial, YouTube just announced that they're going to hide the thumbs down numbers, but a lot of creators are like, "No, no, no don't do that because that communicates the value of this video that is out there."

    So there's a lot of those signals. And then there's just really soft signals that, it's hard to know if people are using the content or not. Because you may never hear. Especially, if it is one of those things that they just get in and get out, you're not going to hear anything about that. But the feedback phase, it's really great to... Anytime you're getting feedback on your product that you're making, try to get your documentation out there as well. Because that's the time where people are open to exploring your product and giving feedback.

    So why not explore that same documentation, the related documentation to see, "Okay, is this actually helping these people do the thing that they want to do? Or should we improve it just like we do with the product?"

    Henri Seymour:

    No, that's a really good, comparing the, we've just released a product. Give us feedback with doing the same thing with the documentation. Because that's when it's going to reach its peak use before everyone's got the hang of it. We've just done this feature release, let us know how you go using it, and the documentation is in a sense part of it, especially for more complex products.

    Matt Reiner:


    Exactly.

    Henri Seymour:

    Do you have any background in the customer support side of things? We do customer support in-house as well as their documentation. So we're trying to improve the documentation to lower the support load on our team. Do you have any background in that... Can you solve it?

    Matt Reiner:

    Yeah. Well, yes and no. It's interesting. I work at K15t now, I used to be a customer of K15t's, so that's actually how I met the team. And that was also how I met documentation in the first place. At my last job, they brought me in to administrate this system called Jira. And I was like, "I don't know what that is." I told them, "I thought I could do it." And I figured it out, it was this little thing called Jira On-Demand, which is now Jira Cloud. And I introduced Confluence On-Demand to the company as well. And wow, I broke Jira a lot of times.

    Luckily it wasn't like mission critical at the time, we were still really figuring it out. But it was through Atlassian's documentation on Jira that I really learned like, "Wow, there is tremendous value to this content here." And then I discovered, "Okay, how is Atlassian creating their documentation? Oh, they're doing it in Confluence. They're writing it in Confluence. They're using these apps from K15t." And so I started using those apps, and then I talked a lot to K15t customer support, just questions and how do I get this started?

    And we also do our support in-house, so it's really great. So maybe as a customer, I overused it, I don't know. I should ask some of my colleagues if they got sick of me. But the benefit was very clear because they would send me, "Oh, here's documentation on this. And here's the answer to this question or here are the considerations you should keep in mind." And actually several of our teams now, we're really looking at, especially, for those features that are very robust, people have questions.

    So it's like, how can we enable them to help them help themselves? And putting those resources out there is one thing, making sure that Google can find them, well, is another. But that is a really important thing, especially, since as a product team, when your user base grows, so does your need for support. It's just... I don't want to say it's exponential, but it's in line with each other. And so, one of the ways you can mitigate that is, making sure you have good design so that your product is easy to use. And then another is you need to have good content all around that entire experience so that you don't have to keep hiring more and more support people.

    Or your support people can specialize and really focus on those deep entrenched issues, and then the documentation should help with the rest. But the secret sauce there is tricky. It's hard to write the perfect content to deflect the cases. That's everybody's dream.

    Henri Seymour:

    Even if it is just not all of them, but some of the common use cases start to get deflected away from support because people can self service. It does make a difference. And I really understand the idea of Jira documentation as well. Easy Agile works on Jira and it's... Jira is an incredibly complicated product at this point, and I imagine it probably was also complicated when it was Jira On-Demand. Because it's so complicated and so detailed, there's no way to make that easy to understand for a user without that documentation. There's no getting around that one.


    Matt Reiner:

    Yeah. I think there should be a club for the people who have broken workflows too many times in Jira. But yeah, I mean the documentation saved me many times and I would have to put out a... Well, it was a HipChat message at the time. May it rest in peace and I'd have to say, "I broke Jira, give me a minute. I got to go read something." Not the way you want to learn Jira, but it's an option.

    Henri Seymour:

    It is. Sometimes you learn things by breaking things. That's-

    Matt Reiner:

    That's right.

    Henri Seymour:

    Really seems like my experience in software so far. You try to break the things that people aren't currently using and that's about all you can do.

    Matt Reiner:

    Exactly.

    Henri Seymour:

    So K15t has recently published Rock the Docs. Can you tell us a bit more about this project?

    Matt Reiner:

    Yeah. Rock the Docs, actually, it came out of a lot of that information that I got from K15t. Customer support, I got from K15t documentation, I got from Atlassian documentation. And then some of the stuff I figured out on my own, or some of my colleagues at K15t did. Essentially like, what are the best practices for creating really good content in Confluence? And it really started with a collection of guides on how to create technical documentation content. It's geared toward like making a public help center, but really it's for any kind of content that you want to be like evergreen, longstanding content to be able to help people.

    So we initially talked about all sorts of things like structuring your content, content reuse, managing multiple languages, which can be tricky in Confluence. Collaboration, publishing your content outside of Confluence in one way or another, managing versions of that content. So, that's the start of it. And then we saw a lot of positive response with that and we had more general questions like, "Okay, but what are the best ways to get feedback in Confluence?" Or, "How do I make a template or a good template or how do I make a good diagram in Confluence?"

    And so we've grown that content to focus on just all sorts of general Confluence things. Because we found that there's a lot of information out there on how to do something. Atlassian documentation really helpful, but there wasn't as much, I'm like, "Why would you do it? And why would you do it this specific way?" And we've been working with Confluence for over 10 years now. Like I said, I've been with Confluence since the crashy early cloud days. It's grown up so fast, it's beautiful.


    But we just know we've done a lot of stuff with Confluence, so it's been a real privilege to share that both in like these written guides. And then actually recently we've started publishing a series to our YouTube channel as well, all about Confluence best practices.

    Henri Seymour:

    That's great. It's real interesting to hear how that started as a smaller project than it turned out to be, because you could see the value in it and the use in it. We've discussed Confluence a few times now and K15t builds apps that use Confluence as a documentation source. Can you tell us more about what makes Confluence useful for building technical documentation? What sort of tools and approaches that make it useful in this context?

    Matt Reiner:

    Yeah. Confluence is by nature open, which is not the way technical writing tools are built. In fact, I remember the first time I went to a technical writing conference and someone asked me, "Oh, what tool do you use?" Which is like, what technical communications people talk about, because we're all nerds in that way. And I was like, "Oh, I'm doing it in Confluence." And they didn't really want to talk to me after that because they didn't think I was a serious tech writer. And I was like, "Oh no, no, no, no, this is all happening."

    At that point, Rock the Docs didn't exist. So I couldn't be like, "Go over there and see how it works." But the biggest difference is most tech writing tools are just totally locked down. You have two licenses for your two people who are trained professional tech graders, and then everybody else, there's no access. You don't touch it. Maybe your tech writers will send you a PDF and you have to go through the God awful process of marking up a PDF to tell them like what to correct. Or, I've heard of teams printing out the content and people penciling in what needs to be changed.

    The review processes are just out of this world insane. And those tools don't fit terribly well with agile processes because it's like, you build the thing over here, and then here's the two tech writers over here in their separate tool. And at some point we'll be like, "Okay, this thing's done. Would you write about it?" So with Confluence, the benefit of using Confluence is, it's accessible to everyone on the team and even people outside the team. And that's incredibly by an official because we've seen with agile, but we're also seeing in this technical communication and in information design field, that teams are less and less looking for those specialized individuals who are trained tech writers.

    Which that's an oxymoron because half of us, we don't have degrees in tech writing, we fell into it for one reason or another. But now teams are starting to see, "Hey, I can be a code developer and an information developer. I might not write the final piece of written content that is seen by our customers, but I might write the first draft." Confluence really opens that up for everyone. And especially with like at mentioning and inline comments, review processes are just so fast.

    Actually, the reason that I switched to Confluence at my last job, was my product manager threatened me and said, "I will not mark up another PDF. Go and find a good tool that we all want to work in." And that's where we landed on Confluence. It's about bringing the whole team into the writing process instead of having it be this separate thing. Because when it's a separate thing, we lose track of it. And content, we forget how important it is to our product, to the customer life cycle, to... God bless customer support, who really, really need that content to be good and accurate.

    And it needs to be seen by the real experts who validate, "Yeah, okay, this is correct. This will actually show people how our product works." And Confluence is like the heart of that.


    Henri Seymour:

    No, it's great to hear how that all comes together to build the documentation as a team. Can you speak more to the different roles in, specifically in software development and the different roles you're looking to get involved in your documentation process? We are working on building our specific app teams here at Easy Agile as we're growing at the moment.

    Matt Reiner:

    Yeah. That's such a good question. Well, what-

    Henri Seymour:

    And how do you incorporate... Sorry, this is more specific to my question. How do you incorporate that technical writing process as part of the work of an agile software development team?

    Matt Reiner:

    Well, first, it starts by rethinking priorities because most teams are like, "Documentation down here, testing and then everything else above." So generally, those two things should be moved up. And actually, the content around our product is... I don't want to sound over traumatic, but if we don't have information, we don't have a product. I don't care how much code you write. If we're not explaining it to people, if we don't have good UI text, if we don't have good in-app help, it doesn't exist. It's not a useful tool, it's just a set of mathematics that humans can't interact with.

    So content is essential, so it's really important that we elevate it to the position where everyone on the team recognizes that the content experience that our users have is the product experience they have. So it needs to be part of the product development process. So then the next step, which I know you're talking about team structure, but the next step is really everyone on the team needs to know they're a writer, and they're a good writer. And that's important because a lot of people have never heard that. They've never heard that they're a good writer, and they probably have never heard that they're a writer.

    I remember going through university, my writing classes were the things that I didn't pay attention to. I was doing mathematics, and Java programming, and statistics. Even that seemed more important to me, not the writing classes. And then sure enough, it turns out everyone has to write. We all write. So knowing that that is a role that everyone fills is really important. And then when it comes to actually team structure, you need to have individuals who are willing to cross the streams, so to speak. If you're bringing in someone who's focusing on test engineering, they need to realize that the test plans they're writing are very similar to a lot of user documentation that needs to be written.

    They're writing task topics, or task instructions, do this, do this, do this over and over again. That's documentation. They could be contributing in that way. Engineers, as I mentioned, they could be drafting the first copy of a lot of what are called concept topics. So areas of documentation where you explain concepts, because they already know what those concepts are. In fact, if you look at the root of a lot of agile development teams, they're using epics and user stories and acceptance criteria. And all those map perfectly into the documentation you needed to create for that new feature you're working on or feature you're improving.

    So really, it's essential to have everybody recognize, we are all already creating documentation, so we can contribute. And then of course, you really do want to have at least one probably native English speaker. Maybe not native, but someone who feels confident in their English or whatever language you're authoring in. English is typically the cheapest one to translate to other languages, so that's what people go for often. But that person's the person who takes everything everybody's written, gets it to the right style and tone. And then gets it out there. That's what we are seeing be successful.

    Like our teams right now, we don't have any legit tech writers. We have product managers writing. We have product marketers writing. We have engineers writing. Some of the best documentation I've ever read was from one of our German-speaking engineers. I was like, "Peter, this is an amazing guide. You got to get out of this Java and get into English, man. It's great. It's great." So he's done a few, which I really love. But yeah, it's about jumping out of your typical roles and realizing, we're all documenting this stuff, anyway.

    Henri Seymour:

    I love the focus, especially with your German-speaking colleague. The focus on, it's not just that you must write the documentation because you know how the product works and we need that written down. It's, you are capable of writing the documentation, you can do this. You have that added barrier of safety with somebody who's got the language proficiency that they're going to massage it and edit it at the end.

    So, before it gets anywhere, anything that you do is going to get filtered out if it's not working. But you don't need a specific tech-writing background to write the docs.

    Matt Reiner:

    No, absolutely not. In fact, there's an entire community of what... They call themselves documentarians called Write the Docs. And that whole community, that whole group is focused on, it doesn't matter what you do, it matters that you care about writing the docs, contributing to the content. And that's been a big shift, I think in the industry, where people thought we're separate. But now it's like, "No, no, no, we are all able to do this." And once we can respect the contributions that each of us can make.

    And then also, I have that protection of somebody else is going to have their eyes on this, which even my writing, I'm like, "I don't like to send it out until someone else has seen it." Because I make spelling mistakes and typos all the time. I really want to have another colleague look at it. Even if they're not native English speakers, because they catch my typos pretty often. That feeling of togetherness, it's the same way that we feel when we ship out a project or a product.

    Whether you did the testing for it, or you wrote the code for it, or you did the product marketing for it. It's like, "It's our baby. Let's send it out and see what happens." Content's the same way.

    Henri Seymour:

    Yeah, part of my daily role and [inaudible 00:28:03]... We don't have QA team separate from developers. Our developers also review our code and it's that sense of, "I wrote this thing, but I have one or two other people who've refined it, who've made sure that it's good enough quality. They've got that fresh eye, so they'll see the spelling mistakes, they'll see the minor little errors that I've just been looking at it too long to notice anymore."

    I found the documentation writing process has some parallels in there like, "Here's my thing. I'd like some feedback on it before it goes out into the real world."

    Matt Reiner:

    Yeah.

    Henri Seymour:

    That's great.

    Matt Reiner:

    Yeah, absolutely. Yeah.

    Henri Seymour:

    All right. Can you talk a bit about the difference between the customer-facing documentation that we've mostly discussed so far and internal documentation?

    Matt Reiner:

    Yeah. There are some differences and there are some major similarities. So this very... It sounds very technical and ugly. The term information architecture, it's really important with any kind of content, internally and externally. And really that's like, if you're a developer you're familiar with XML, you're familiar with structuring things in that way. Our content needs to work the same way. And that goes for internal and external documentation. So, many of the things that they use, writers, when they write a page or an article in the newspaper, they'll use that Pyramid approach, where they put the broad bits of information at the top. And then they slowly focus in on the topic and give more and more information about it.

    But you want to make sure that if somebody only reads the first paragraph, they're getting a rough idea of what the information is. And that's really important for successful Confluence pages and spaces. People should be able to start at the top level of the space, understand what the space is about, and then be able to navigate down into the thing that they really want to learn about into the page itself. Which should then be using headings and subheadings and bullet points to get, again, just disseminate that information and break it down. Because everybody skims.

    We need our content to be skimmable, our spaces need to be skimmable. And that kind of content also makes Confluence search happy, especially the new Confluence Cloud search, which has been greatly improved. There's a whole new elastic search base to that that's being optimized. But it's happy, it's just like with Google when we structure our content like that. So when you have a page that is just a wall of text, no headings, you're not breaking it up into pages or even spaces, nobody's going to be happy with that.

    The bots aren't going to be happy with it, the people reading aren't going to be happy with it. So it takes a bit of work to structure, break up the structure of our content. It's probably all good as long as it's up-to-date, but it's really essential that we think about, how do we structure that in Confluence so that people can find it and people can skim it? And that is what seems to plague a lot of internal Confluence instances, because a lot of... Maybe the team isn't so focused on that.

    It's like, "Oh, our external help center that's come coming from this space over here, that's fine. Our team space, hot mess, total tire fire." And nobody cares because they think they know where everything is. But then you start to think about, "Okay, but what about the new team member? How do they find something?" Or, "What about the team member who's been away for Paternity leave for six weeks? Are they going to remember where everything is or know where all the new stuff is?


    What about folks with disabilities? Is it going to be much harder for them to navigate to the information they need? Because they're working with a screen reader and they're trying to go through a wall of text. They need headings, a screen reader relies on those headings and titles." So there's just so many considerations that really leadership of companies needs to understand, just because you have a process to do something or the information is somewhere, doesn't mean you don't have a major information problem. And maintaining all of your content in Confluence and then maintaining it well.

    That is what enables people to avoid the frustrations of searching for information, losing information, having to relearn or rewrite information. I have worked at too many companies that just information sieves everywhere. I don't even want to call them silos because nobody knows where stuff is anymore either. That's what Confluence brings to things, and that's what matters with internal content pretty much as well as external.

    Henri Seymour:

    That's a great perspective on it. And I can see the silos, it's a really more... Just a one big pile, you can't find anything. I've been-

    Matt Reiner:

    Exactly.

    Henri Seymour:

    ... at Easy Agile for more than half of its life now and I've got that sense of like, "Oh, I know I wrote this down somewhere. I know I've seen this written down somewhere." And we are making a habit, especially as we're hiring more and more people. Every time somebody's going through onboarding, they're going to be looking at all of this documentation with no previous background on it. And we want to hear their feedback on it specifically. Because if it works for them, then that's the documentation that we need for them and for everyone after them, and for everyone who's already here.

    Especially, I've been at Easy Agile for almost three years now, and I've seen it grow from eight people to now we're up to high 20s, I think. We're going to cross over into the 30s by the end of the year.

    Matt Reiner:

    Wow.

    Henri Seymour:

    The growth of information that we have in our internal documentation, and I'm sure it would parallel the growth of the product documentation for a product that's been expanding for three to five years. How do you manage the documentation and the Confluence spaces as the team and the company grow and you just develop more and more pages out of it?

    Matt Reiner:

    That is the question since the dawn of the universe or at least the dawn of Confluence, which, what's the difference? The biggest thing is team responsibility, so knowing this is our space, this is our content. And not like in a territorial way, but this is our responsibility. Much the way we should think about our planet, we should also think about our content, keeping it groomed and taken care of, and up-to-date and accurate. And then as things change.

    For example, we have a product called Scroll Viewport, which is actually what enables you to publish content from Confluence to a public health center, which is really, really cool. So with that, we had a server and data center version. We've had that for quite some time. That's what I was a user of. And then we set off to develop a cloud version, and cloud requires a whole bunch of new infrastructure, which is a lot of fun and very challenging, but it's a totally different beast.

    It's not like you can just lift the server code and just drop it into cloud, which is what as a user I asked them to do for years, "why isn't this on cloud?" Now I know why. So we created a new team that started off this Scroll Viewport on cloud effort. And it was just a very scrappy project at first. And I remember the first page we got up there, it's like, "Whoa, look at this page we published." And then it progressed from there. But then at some point, we needed to bring the two teams back together. And what we could have just said, "Oh, this old Viewport space, whatever. We're just going to leave it there and then just go on with the new one."

    But instead the team took time and brought the two spaces together and really went through the old content in the Viewport Server and data center space to say, "Is this all still relevant? Do we still need this?" So it's been reordered in such an amazing way. Several of our teams have gotten really good at making these spaces so that I can come in. Because I work with all of our teams, just get in and find what I need, even though I'm not working their day-to-day. I'm just so glad, I'm so proud of the team for not just letting that space languish somewhere or being afraid to delete or archive content, which a lot of people are.

    It's like, "No, what if we lose something?" It's like, "No, no, no, we've moved past this. We really do need to delete it." So that's the kind of attitude it takes is, our teams to split and expand and grow, and we need conscious of that content. Because again, think of the new person, think of the person who's learning something new. Think of the person who maybe does have disabilities and is trying to get the content they need. They just don't have the background that you do. Having been with the company for half its life, you know how to dig through the thought pile to pull out just the thing you want, but they don't.

    Henri Seymour:

    Yeah, and I don't want to be the person that they have to ask every time they need information, "Hey, can you find this for me?" No, no. I want to build a system that means that I don't have to answer the same questions all the time. That's one of the reasons I've been doing internal documentation so much since [inaudible 00:37:36]. I've answered this question once, that will do.

    Matt Reiner:

    Yes. That's a really good way to motivate any contributors to documentation. "Hey, you know how you wrote that piece of our app that one time and then everybody's asked you about how it works ever since? Just document it once and I promise you can never answer it again." That's good motivation right there.

    Henri Seymour:

    It is. As well, we've got a team on support models, so I'm working on the store maps and personas, product development team. And that's the same team that gets all of the support requests about story maps and personas. So yeah, the better we make the product, the better we make the documentation, the less of our time every morning we spend doing that. And the more we can get back to our regular jobs.

    Matt Reiner:

    Exactly.

    Henri Seymour:

    It's been great for helping us keep in contact with the customers and what they're doing and what information they need when they're using our product. You mentioned that like it's necessary, it's valuable to be deleting an archive-based stuff, pages in Confluence from time to time. When you're looking at a page and wondering whether or not it's time to go, what sort of questions are you asking yourself?

    Matt Reiner:

    Well, a great one is like, look at the last modified date on that page. That's general a pretty good sign of like, "Are people even looking at it?" In fact, if you're on cloud premium and above, you can look at some great metrics on every page to see like who's looking at this thing? Is this valuable? What are the views like? Just the same way that you would look at your external website to see if your content is valuable or effective. But typically, we have a lot of debris left over from product development or team activities.

    Like if you're in marketing and you have a campaign from three years ago, do you really need all of those detailed pages? Maybe keep the overall campaign page, maybe that's useful, but do you really need everything? If you're into testing, do you really need every test plan you ever created? If you're in the legal team, do you really want your legal terms from 10 years ago? Maybe, maybe, I'm not in legal. But often we have this fear of, it's like fear of missing content.

    It's like, "Oh no, if I get rid of that, then I won't have it." But information, just like language, just like the way we think, just like the way our teams grow, it changes. And so we need to be aware of that. As we are changing as a team, you should expect our content to change. And part of that is shedding that old stuff. So it's always worth it, like if you're questioning it, ask another subject matter expert and be like, "Hey, I'm pretty sure we don't need this anymore, or we should revise this. What do you think?" But if nobody has any qualms, you should probably delete it.

    Henri Seymour:

    No, that's great. I am a big fan of decluttering, even digital decluttering. It's, I want people to find stuff and the less pile there is, the easier it's going to be.

    Matt Reiner:

    Yes. Because somehow bad information is less helpful than no information.

    Henri Seymour:

    Yes. It's like coming across a question and they're like, "Oh, I tried doing it this way." I'm like, "Oh, that way doesn't work anymore. You're going to have to do... Where did you find that written down? I'll go update out." It's-

    Matt Reiner:

    Yeah.

    Henri Seymour:

    ... new people doing stuff. The best way to understand where your documentation is falling over. It's the same as you're never going to understand how your product documentation and that your product itself is failing your users until they come to you and tell you, "Why can't I do this thing?"

    Matt Reiner:

    Yeah. Yeah. In fact that that power of bringing in someone new on your team is so amazing. And it's almost hard to impart like first day of onboarding like, "You have fresh eyes, please use them. This is called an inline comment, please put it everywhere." I remember going through our human resources employee handbook, which we had just created not too long before I joined. And I remember them telling me, "If there's any questions, at mentioned us." And I was really afraid to do that. But we corrected a lot of things.

    For example, we mentioned do these things on... What was it called after HipChat? The product that lived and died so quickly.

    Henri Seymour:

    I think I missed that one.

    Matt Reiner:

    Oh, the one that Atlassian made and then they sold it to Slack.

    Henri Seymour:

    Now, where do I even start on that?

    Matt Reiner:

    How am I... It was a great app, I really liked it. But we mentioned in the employee handbook to use that. And I'm like, "Oh, I think we're using Slack now, we should update this content." That's stuff that HR is never going to go through and catch, but your new employees can do that. New people are the best way to tell you if your processes are bad, if your content is better. Maybe not bad, but they're bringing in something new. That's why we added them to the team. And they should not be afraid from day one to ask questions, or poke holes in our already messed up or failing process.

    Henri Seymour:

    Yeah. And I can really see the benefit of the tools in Confluence, like that inline comment. Even if you don't know how you need that page updated or what the new version's supposed to be. It's just coming in fresh, you can go, "Oh, this is weird, or incomplete, or it might be wrong." It's just a little comment. You don't have to change it yourself, just say something. Here's a way to speak up without changing it yourself. And somebody who does know is going to be able to change it for you.

    I was excited to hear you talk about information architecture. That's something I only got introduced to last year also. Do you have a general explanation of what information architecture is and why it's relevant to documentation?

    Matt Reiner:

    Oh, information architecture is, there are whole, people, professionals whose entire career is coming in and helping you. So I'm not one of those professionals, I just play one on TV. Really in essence, information architecture is breaking down what would be a wall of text into a pattern of information that anyone's mind can connect to. That's the real and ultimate goal, and that starts by just breaking up logical chunks. In fact, in a lot of pure technical writing, you break the content into tiny, tiny pieces, chunks or some technical communicators talk about atoms of information, really tiny pieces.

    And then once you've broken that down and said, "These are separate pieces," then you assemble them together in an order that makes sense. In fact, you can also do really cool stuff with content reuse in Confluence, using include macros and the new Excerpt Include Macro is very cool in cloud, because you can do new stuff with that. But it's really about breaking apart all your content, figuring out what's the order of all of this? What's most important? What's more specific? What is important for everyone? What's important for just a few people?

    And then just going down like you would with an XML structure or any other sort of hierarchy and tier that information using your spaces, your pages, your headings. And then finally bullets and paragraphs and that kind of thing.

    Henri Seymour:

    Thanks for getting that generally explained. Is there anything you want to mention in your work at the moment that you would be interested in getting readers onto?

    Matt Reiner:

    Yeah, totally. A major new effort for me, because I'm just this content explorer, I guess. I've done like technical content, I've written some marketing content. I started speaking, which I enjoy speaking. I got to speak in front of one live audience before... No, I guess a few, and then, the world's shut down for good reason. Because when you're breathing out on a bunch of people, you want to make sure that you're not potentially putting them at risk. So been doing a lot of virtual speaking.

    But recently, I mentioned, we've worked on all these best practices on Rock the Docs. And so we've started this video series about Confluence best practices and it's been very exciting to figure out, "Okay, so I know how to create fairly good in Confluence, how to structure that content. Now, can we make a good video?" And it turns out, no, not at first. Made some pretty poor ones or ones that just took way too much time to make. And finally, as you do with any kind of content, we finally got a good structure, a good rhythm. And we also found what are those things people really want to hear about?

    And so we've developed 16 of these now on our YouTube channel that are just out there for administrators to share with your users who are asking these questions. Or maybe these are for users directly who just want to subscribe and get these things. But it's like eight minutes of just as much information as we can pack and still speak fairly legible English. And then show just like how do you do this in Confluence? Why would you do this in Confluence? What are the things you should consider in Confluence? What are the best ways to do things in Confluence?


    We've actually just started a series of live streams as well, where we're trying to look at those more in depth and then have people live listening in, asking questions and directing the whole thing. So far those have been really great and we're looking to do more of that. So the more people who pile into those, the more direction y'all get to give that content. But it's been new types of content that it's exciting to see, okay, our good written content in Confluence is coming to the real world in a new format. Which has been cool and challenging and fun and scary all at the same time.

    Henri Seymour:

    Yeah. That's sounds like a really exciting project. Rock the Docs is going audio-visual. And I can-

    Matt Reiner:

    That's right.

    Henri Seymour:

    ... figure what... Get users on there to give you that iterative feedback that we talked about at the beginning. And so is this worth the thumbs up? Do you have comments? What else can we do? And especially in that sort of live stream webinar format, you get that direct contact with your users so you can find out what they're needing. That's that's fantastic. Probably see if I can come along with those. Easy Agile started using Scroll Viewport for cloud specifically earlier this year.

    Matt Reiner:

    Oh, cool. Oh, cool.

    Henri Seymour:

    So that's been a major improvement for us actually.

    Matt Reiner:

    Oh, good. Yeah. I'm just loving what the cloud team is putting out. It's so exciting and so polished and it's just like every team has that documentation space, and Viewport, it lets you put it out there and you're like, "Ah, looks so great. We're so proud of it." You can read it on any device. It's just like it's the magic that everybody wants, but no team has time. Our very few teams have time to make it look that good, so it's nice to have Viewport just do the heavy lifting.

    Henri Seymour:

    We've got the Confluence space, we've got the documentation. We don't have to make a website about it. It's just, "Go ahead, please make this website happen. Here's what we need on it. Here's the structure." And golly, it looks a lot better now, even just aesthetically, it looks a lot nice in the house.

    Matt Reiner:

    Yes. And it's nice to know that like some designer peered over the spacing between navigation items to decide how spaced out they should be. And as a writer, I can just like, I don't have to care. I don't have to care. I can throw in Confluence macros and stuff, and they just look really great when they're published. And I don't know how or why, but I'm happy. I can just keep writing. Yeah.

    Henri Seymour:

    Yeah.

    Matt Reiner:

    It would be great to have someone from Easy Agile join us for one of those live streams. Because what we're really focusing on is just like great way to do things in Confluence. We haven't jumped into Jira yet. I'm not as much of an expert in Jira, but I have thought about it because that content doesn't really exist yet. But it's not necessarily app-focused or K15t app-focused. It's just like one of the best ways you've found to do certain things in Confluence, and we're just sharing those with people alive, and it's a lot of fun.

    Henri Seymour:

    Yeah, that sounds great. I've got the parallel of get really into Jira and making Jira apps and Confluence is, "Yeah, we've got a Wiki. This is where we write stuff down." And it is great to have stuff like "There's the visuals on our docs page." But I don't do those. I'm busy making visuals in a Jira app. I don't want to think about that spacing. I've got my own spacing to do.

    Matt Reiner:

    Yeah. Yeah.

    Henri Seymour:

    And it really is that, I can just do the writing, I can just do product. I can do my job more because this other stuff taken care of because the experts at K15t have made that happen. And I hope that our apps can do a similar thing for their users of, this is the thing we need, we don't have to think about this. Bring in this app and it will solve a problem for us. It'll help us see what we need to and organize our information in Jira. Which is a different type of information again, but.

    Matt Reiner:

    Yeah, yeah. It's funny. I've talked with some people who have actually described that whole app part of Confluence in Jira as App Hell. That's a term that I've seen and I can't help but love the community because we all come up with this stuff. But app hell is, it really comes out of not understanding what a platform is partially. For example, if you're using the Salesforce platform, yeah, that's going to be app hell if you really want Salesforce to be a marketing platform. Because Salesforce is a sales platform. But then there's apps, and Salesforce happens to a sell big one. And then all of a sudden it's a marketing platform.

    So that is a really interesting perspective shift for people who are used to a tool that just does one thing. Everybody thinks Excel does everything. It doesn't, we really should just use it for spreadsheets, everybody. It's not a platform for other things. Confluence is really good at these core things, Jira is really good at these core things. And then these apps, they come in to answer the questions that don't have answers and do the things that can't be done. And that's why. So is it App Hell or is it App Heaven? That's the real question. Or maybe it's maybe it's App Purgatory, I don't know. I guess the listeners gets to decide.

    Henri Seymour:

    The constant stream of, and yet another app needs to update. Which to be fair, I think is not a problem on cloud at this point. That's an exclusively an on-premise problem, the constant app update cycle. But we are hopefully moving towards the end of the purgatory perhaps.

    Matt Reiner:

    Yes. Yes. I think we're all ascending together. We're just reaching new heights all at the same time.

    Henri Seymour:

    Is there anything else you'd like to bring up while we talking tech docs?

    Matt Reiner:

    I guess, I typically go back to when I was in university, I had a manager there who told us in this on campus job that I had, "Our job is to connect people with the resources that are already around them. You're not a teacher, you're just here to connect people." And that has really stuck with me. And that is essentially what we all do. Whether we're building a product that connects people with resources or that is the resource or we're contributing to documentation or some kind of content.

    We're really trying to enable people to do that greater thing, that higher level thing that is above our content, it's above our product. It's that thing that they truly care about and any part we get to play and that greater thing, that better thing. That's what it's all about.

    Henri Seymour:

    Yeah, that's really great perspective. That's probably also a really great thing to round off the end of the podcast with.

    Matt Reiner:

    I guess so.

    Henri Seymour:

    Yeah. Thank you very much for joining us, Matt, and for talking all things technical documentation with us on the Easy Agile Podcast.

  • Podcast

    Easy Agile Podcast Ep.12 Observations on Observability

    On this episode of The Easy Agile Podcast, tune in to hear developers Angad, Jared, Jess and Jordan, as they share their thoughts on observability.  

    Wollongong has a thriving and supportive tech community and in this episode we have brought together some of our locally based Developers from Siligong Valley for a round table chat on all things observability.

    💥 What is observability?
    💥 How can you improve observability?
    💥 What's the end goal?

    Angad Sethi

    "This was a great episode to be a part of! Jess and Jordan shared some really interesting points on the newest tech buzzword - observability""

    Be sure to subscribe, enjoy the episode 🎧

    Transcript

    Jared Kells:

    Welcome everybody to the Easy Agile podcast. My name's Jared Kells, and I'm a developer here at Easy Agile. Before we begin, Easy Agile would like to acknowledge the traditional custodians of the land from which we broadcast today, the Wodiwodi people of the Dharawal nation, and pay our respects to elders past, present and emerging, and extend that same respect to any aboriginal people listening with us today.

    Jared Kells:

    So today's podcast is a bit of a technical one. It says on my run sheet here that we're here to talk about some hot topics for engineers in the IT sector. How exciting that we've got a couple of primarily front end engineers and Angad and I are going to share some front end technical stuff and Jess and Jordan are going to be talking a bit about observability. So we'll start by introductions. So I'll pass it over to Jess.

    Jess Belliveau:

    Cool. Thanks Jared. Thanks for having me one as well. So yeah, my name's Jess Belliveau. I work for Apptio as an infrastructure engineer. Yeah, Jordan?

    Jordan Simonovski:

    I'm Jordan Simonovski. I work as a systems engineer in the observability team at Atlassian. I'm a bit of a jack of all trades, tech wise. But yeah, working on building out some pretty beefy systems to handle all of our data at Atlassian at the moment. So, that's fun.

    Angad Sethi:

    Hello everyone. I'm Angad. I'm working for Easy Agile as a software dev. Nothing fancy like you guys.

    Jared Kells:

    Nothing fancy!

    Jess Belliveau:

    Don't sell yourself short.

    Jared Kells:

    Yeah, I'll say. Yeah, so my name's Jared, and yeah, senior developer at Easy Agile, working on our apps. So mainly, I work on programs and road maps. And yeah, they're front end JavaScript heavy apps. So that's where our experience is. I've heard about this thing called observability, which I think is just logs and stuff, right?

    Jess Belliveau:

    Yeah, yeah. That's it, we'll wrap up!

    Jared Kells:

    Podcast over! Tell us about observability.

    Jess Belliveau:

    Yeah okay, I'll, yeah. Well, I thought first I'd do a little thing of why observability, why we talk about this and sort of for people listening, how we got here. We had a little chat before we started recording to try and feel out something that might interest a broader audience that maybe people don't know a lot about. And there's a lot of movements in the broad IT scope, I guess, that you could talk about. There's so many different things now that are just blowing up. Observability is something that's been a hot topic for a couple of years now. And it's something that's a core part of my job and Jordan's job as well. So it's something easy for us to talk about and it's something that you can give an introduction to without getting too technical. So we don't want to get down. This is something that you can go really deep into the weeds, so we picked it as something that hopefully we can explain to you both at a level that might interest the people at home listening as well.

    Jess Belliveau:

    Jordan and I figured out these four bullet points that we wanted to cover, and maybe I can do the little overview of that, and then I can make Jordan cover the first bullet point, just throw him straight under the bus.

    Jordan Simonovski:

    Okay!

    Jess Belliveau:

    So we thought we'd try and describe to you, first of all, what is observability. Because that's a pretty, the term doesn't give you much of what it is. It gives you a little hint, but it'll be good to base line set what are we talking about when we say what is observability. And then why would a development team want observability? Why would a company want observability? Sort of high level, what sort of benefits you get out of it and who may need it, which is a big thing. You can get caught up in these industry hot buzz words and commit to stuff that you might not need, or that sort of stuff.

    Jared Kells:

    Yep.

    Jordan Simonovski:

    Yep.

    Jess Belliveau:

    We thought we'd talk about some easy wins that you get with observability. So some of the real basic stuff you can try and get, and what advantages you get from it. And then we just thought because we're no going to try and get too deep, we could just give a few pointers to some websites and some YouTube talks for further reading that people want to do, and go from there. So yeah, Jordan you want to-

    Jared Kells:

    Sounds good.

    Jess Belliveau:

    Yeah. I hopefully, hopefully. We'll see how this goes! And I guess if you guys have questions as well, that's something we should, if there's stuff that you think we don't cover or that you want to know more, ask away.

    Jordan Simonovski:

    I guess to start with observability, it's a topic I get really excited about, because as someone that's been involved in the dev ops and SRE space for so long, observability's come along and promises to close the loop or close a feedback loop on software delivery. And it feels like it's something we don't really have at the moment. And I get that observability maybe sounds new and shiny, but I think the term itself exists to maybe differentiate itself from what's currently out there. A lot of us working in tech know about monitoring and the loading and things like that. And I think they serve their own purpose and they're not in any way obsolete either. Things like traditional monitoring tools. But observability's come along as a way to understand, I think, the overwhelmingly complex systems that we're building at the moment. A lot of companies are probably moving towards some kind of complicated distributed systems architecture, microservices, other buzz words.

    Jordan Simonovski:

    But even for things like a traditional kind of monolith. Observability really serves to help us ask new questions from our systems. So the way it tends to get explained is monitoring exits for our known unknowns. With seniority comes the ability to predict, almost, in what way your systems will fail. So you'll know. The longer you're in the industry, you know this, like a Java server fails in x, y, z amount of ways, so we should probably monitor our JVM heap, or whatever it is.

    Jared Kells:

    I was going to say that!

    Jordan Simonovski:

    I'll try not to get too much into-

    Jared Kells:

    Runs out of memory!

    Jordan Simonovski:

    Yeah. So that's something that you're expecting to fail at some point. And that's something that you can consider a known unknown. But then, the promise of observability is that we should be shipping enough data to be able to ask new questions. So the way it tends to get talked about, you see, it's an unknown unknown of our system, that we want to find out about and ask new questions from. And that's where I think observability gets introduced, to answer these questions. Is that a good enough answer? You want me to go any further into detail about this stuff? I can talk all day about this.

    Jared Kells:

    Is it like a [crosstalk 00:08:05]. So just to repeat it back to you, see if I've understood. Is it kind of like if I've got a, traditionally with a Java app, I might log memories. It's because I know JVM's run out of memory and that's a thing that I monitor, but observability is more broad, like going almost over the top with what you monitor and log so that you can-

    Jordan Simonovski:

    Yeah. And I wouldn't necessarily say it's going over the top. I think it's maybe adding a bit more context to your data. So if any of you have worked with traces before, observability is very similar to the way traces work and just builds on top of the premise of traces, I guess. So you're creating these events, and these events are different transactions that could be happening in your applications, usually submitting some kind of request. And with that request, you can add a whole bunch of context to it. You can add which server this might be running on, which time zone. All of these additional and all the exciters. You can throw in user agency into there if you want to. The idea of observability is that you're not necessarily constrained by high cardinality data. High cardinality data being data sets that can change quite largely, in terms of the kinds of data they represent, or the combinations of data sets that you could have.

    Jordan Simonovski:

    So if you want shipping metrics on something, on a per user basis and you want to look at how different users are affected by things, that would be considered a high cardinality metric. And a lot of the time it's not something that traditional monitoring companies or metric providers can really give you as a service. That's where you'll start paying insanely huge bills on things like Datadog or whatever it is, because they're now being considered new metrics. Whereas observability, we try and store our data and query it in a way that we can store pretty vast data sets and say, "Cool. We have errors coming from these kinds of users." And you can start to build up correlations on certain things there. You can find out that users from a particular time zone or a particular device would only be experiencing that error. And from there, you can start building up, I think, better ways of understanding how a particular change might have broken things. Or some particular edge cases that you otherwise couldn't pick up on with something like CPU or memory monitoring.

    Angad Sethi:

    Would it be fair to say-

    Jared Kells:

    Yeah. It's [crosstalk 00:11:02].

    Angad Sethi:

    Oh, sorry Jared.

    Jared Kells:

    No you can-

    Angad Sethi:

    Would it be fair to say that, so, observability is basically a set of principles or a way to find the unknown unknowns?

    Jordan Simonovski:

    Yeah.

    Angad Sethi:

    Oh.

    Jess Belliveau:

    And better equip you to find, one of the things I find is a lot of people think, you get caught up in thinking observability is a thing that you can deploy and have and tick a box, but I like your choice of word of it being a set of principles or best practices. It's sort of giving you some guidance around these, having good logging coming out of your application. So structured logs. So you're always getting the same log format that you can look at. Tracing, which Jordan talked a little bit about. So giving you that ability to follow how a user is interacting with all the different microservices and possibly seeing where things are going wrong, and metrics as well. So the good thing with metrics is we're turning things a bit around and trying to make an application, instead of doing, and I don't want to get too technical, black box monitoring, where we're on the outside, trying to peer in with probes and checks like that. But the idea with metrics is the application is actually emitting these metrics to inform us what state it is in, thereby making it more observable.

    Jess Belliveau:

    Yeah, I like your choice of words there, Angad, that it's like these practices, this sort of guide of where to go, which probably leads into this next point of why would a team want to implement it. If you want to start again, Jordan?

    Jordan Simonovski:

    Yeah, I can start. And I'll give you a bit more time to speak as well, Jess in this one. I won't rant as much.

    Jess Belliveau:

    Oh, I didn't sign up for that!

    Jordan Simonovski:

    I think why teams would want it is because, it really depends on your organization and, I guess, the size of the teams you're working in. Most of the time, I would probably say you don't want to build observability yourself in house. It is something that you can, observability capabilities themselves, you won't achieve it just by buying a thing, like you can't buy dev ops, you can't buy Agile, you can't buy observability either.

    Jared Kells:

    Hang on, hang on. It says on my run sheet to promote Easy Agile, so that sounds like a good segue-

    Jess Belliveau:

    Unless you want to buy it. If you do want to buy Agile, the [crosstalk 00:13:55] in the marketplace.

    Jared Kells:

    Yeah, sorry, sorry, yeah! Go on.

    Jordan Simonovski:

    You can buy tools that make your life a lot easier, and there are a lot of things out there already which do stuff for people and do surface really interesting data that people might want to look at. I think there are a couple of start ups like LightStep and Honeycomb, which give you a really intuitive way of understanding your data in production. But why you would need this kind of stuff is that you want to know the state of your systems at any given point in time, and to build, I guess, good operational hygiene and good production excellence, I guess as Liz Fong-Jones would put it, is you need to be able to close that feedback loop. We have a whole bunch of tools already. So we have CICD systems in place. We have feature flags now, which help us, I guess, decouple deployments from releases. You can deploy code without actually releasing code, and you can actually give that power to your PM's now if you want to, with feature flags, which is great.

    Jordan Simonovski:

    But what you can also do now is completely close this loop, and as you're deploying an application, you can say, "I want to canary this deployment. I want to deploy this to 10% of my users, maybe users who are opted in for Beta releases or something of our application, and you can actually look at how that's performing before you release it to a wider audience. So it does make deployments a lot safer. It does give you a better understanding of how you're affecting users as well. And there are a whole bunch of tools that you can use to determine this stuff as well. So if you're looking at how a lot of companies are doing SRE at the moment, or understanding what reliable looks like for their applications, you have things like SLO's in place as well. And SLO's-

    Jared Kells:

    What's an SLO?

    Jordan Simonovski:

    They're all tied to user experiences. So you're saying, "Can my user perform this particular interaction?" And if you can effectively measure that and know how users are being affected by the changes you're making, you can easily make decisions around whether or not you continue shipping features or if you drop everything and work on reliability to make sure your users aren't affected. So it's this very user centric approach to doing things. I think in terms of closing the loop, observability gives us that data to say, "Yes, this is how users are being affected. This is how, I guess the 99th percentile of our users are fine, but we have 1% who are having adverse issues with our application." And you can really pinpoint stuff from there and say, "Cool. Users with this particular browser or this particular, or where we've deployed this app to," let's say if you have a global deployment of some kind, you've deployed to an island first, because you don't really care what happens to them. You can say, "Oh, we've actually broken stuff for them." And you can roll it back before you impact 100% of your users.

    Jared Kells:

    Yeah. I liked what you said about the test. I forgot the acronym, but actually testing the end user behavior. That's kind of exciting to me, because we have all these metrics that are a bit useless. They're cool, "Oh, it's using 1% CPU like it always is, now I don't really care," but can a user open up the app and drag an issue around? It's like-

    Jess Belliveau:

    Yeah, that's a really great example, right?

    Jared Kells:

    That's what I really care about.

    Jess Belliveau:

    The 1% CPU thing, you could look at a CPU usage graph and see a deployment, and the CPU usage doesn't change. Is everything healthy or not? You don't know, whereas if you're getting that deeper level info of the user interactions, you could be using 1% CPU to serve HTTP500 errors to the 80% of the customer base, sort of thing.

    Angad Sethi:

    How do you do that? The SLO's bit, how do you know a user can log in and drag an issue?

    Jordan Simonovski:

    Yeah. I think that would come with good instrumenting-

    Angad Sethi:

    Good question?

    Jordan Simonovski:

    Yeah, it comes down to actually keeping observability in mind when you are developing new features, the same way you would think about logging a particular thing in your code as you're writing, or writing test for your code, as you're writing code as well. You want to think about how you can instrument something and how you can understand how this particular feature is working in production. Because I think as a lot of Agile and dev ops principles are telling us now is that we do want our applications in production. And as developers, our responsibilities don't end when we deploy something. Our responsibility as a developer ends when we've provided value to the business. And you need a way of understanding that you're actually doing that. And that's where, I guess, you do nee do think about observability with a lot of this stuff, and actually measuring your success metrics. So if you do know that your application is successful if your user can log in and drag stuff around, then that's exactly what you want to measure.

    Jared Kells:

    I think that we have to build-

    Jordan Simonovski:

    Yeah?

    Jared Kells:

    Oh, sorry Jordan.

    Jordan Simonovski:

    No, you go.

    Jared Kells:

    I was just going to say we have to build our apps with integration testing in mind already. So doing browser based tests around new features. So it would be about building features with that and the same thing in mind but for testing and production.

    Jess Belliveau:

    Yeah and the actual how, the actual writing code part, there's this really great project, the open telemetry project, which provides all these sort of API's and SDK's that developers can consume, and it's vendor agnostic. So when you talk about the how, like, "How do I do this? How do I instrument things?" Or, "How do I emit metrics?" They provide all these helpful libraries and includes that you can have, because the last thing you want to do is have to roll this custom solution, because you're then just adding to your technical debt. You're trying to make things easier, but you're then relying on, "Well I need to keep Jared Kells employed, because he wrote our log in engine and no one else knows how it works.

    Jess Belliveau:

    And then the other thing that comes to mind with something like open telemetry as well, and we talked a bit about Datadog. So Datadog is a SaaS vendor that specializes in observability. And you would push your metrics and your logs and your traces to them and they give you a UI to display. If you choose something that's vendor agnostic, let's just use the example of Easy Agile. Let's say they start Datadog and then in six months time, we don't want to use Datadog anymore, we want to use SignalFx or whatever the Splunk one is now.

    Jordan Simonovski:

    I think NorthX.

    Jess Belliveau:

    Yeah. You can change your end point, push your same metrics and all that sort of stuff, maybe with a few little tweaks, but the idea is you don't want to tie in to a single thing.

    Jordan Simonovski:

    Your data structures remain the same.

    Jess Belliveau:

    Yeah. So that you could almost do it seamlessly without the developers knowing. There's even companies in the past that I think have pushed to multiple vendors. So you could be consuming vendor A and then you want to do a proof of concept with vendor B to see what the experience is like and you just push your data there as well.

    Jared Kells:

    Yeah. I think our coupling to Datadog will be I all the dashboards and stuff that we've made. It's not so much the data.

    Jess Belliveau:

    Yeah. That's sort of the big up sell, right. It's how you interact. That's where they want to get their hooks in, is making it easier for you to interpret that data and manipulate it to meet your needs and that sort of stuff.

    Jordan Simonovski:

    Observability suggests dashboards, right?

    Jess Belliveau:

    Yeah, perhaps. You used this term as well, Jordan, "production excellence." And when we talk about who needs observability, I was thinking a bit about that while you were talking. And for me, production excellence, or in Apptio we call it production readiness, operational readiness and that sort of stuff is like we want to deploy something to production like what sort of best practices do we want to have in place before we do that? And I think observability is a real great idea, because it's helping you in the future. You don't know what problems you're going to have down the line, but you're equipping your teams to be able to respond to those problems easily. Whereas, we've all probably been there, we've deployed code of production and we have no observability, we have a huge outage. What went wrong? Well, no one knows, but we know this is the fix, and it's hard to learn from that, or you have to learn from that I guess, and protect the user against future stuff, yeah.

    Jess Belliveau:

    When I think easy wins for observability, the first thing that really comes to mind is this whole idea of structured logging, which is really this idea that your application is you're logging, first of all. Quite important as a baseline starting point, but then you have a structured log format which lets you programmatically pass the logs as well. If you go back in time, maybe logging just looked like plain text with a line, with a timestamp, an error message. Whatever the developer decided to write to the standard out, or to the error file or something like that. Now I think there's a general move to having JSON, an actual formatted blob with that known structure so you can look into it. Tracing's probably not an easy win. That's a little bit harder. You can implement it with open telemetry and libraries and stuff. Requires a bit more understanding of your code base, I guess, and where you want tracing to fire, and that sort of stuff, parsing context through, things like that.

    Jordan Simonovski:

    I think Atlassian, when you probably just want to know that everything is okay. At a fairly superficial level. Maybe you just want to do some kind of up time on a trend. And then as, I guess, your code might get more complex or your product gets a bit more complex, you can start adding things in there. But I think actually knowing or surfacing the things you know might break. Those would probably be your quickest wins.

    Jess Belliveau:

    Well, let's mention some things for further reading. If you want to go get the whole picture of the whole, real observability started to get a lot of movement out of the Google SRE book from a few years ago. The Google SRE stuff covers the whole gamut of their soak reliability engineering practice, and observability is a portion of that, there's some great chapters on that. O'Reilly has an observability book, I think, just dedicated to observability now.

    Jordan Simonovski:

    I think that's still in early release, if people want to google chapters.

    Jess Belliveau:

    The open telemetry stuff, we'll drop a link to that I think that's really handy to know.

    Angad Sethi:

    From [inaudible 00:26:12], which is my perspective, as a developer, say I wanted to introduce cornflake use Datadog at Easy Agile. Not very familiar, I'm not very comfortable with it. I know how to navigate, but what's a quick way for me to get started on introducing observability? Sorry to lock my direct job or at my workplace.

    Jordan Simonovski:

    I would lean, I could be biased here. Jess correct me or give your opinion on this, I would lean heavily towards SLO's for this. And you can have a quick read in the SRE-

    Jess Belliveau:

    What does SLO stand for, Jordan?

    Jordan Simonovski:

    Okay, sorry. Buzz words! SLO is a service level objective, not to be confused with service level agreement. An agreement itself is contractual and you can pay people money if you do breach those. An SLO is something you set in your team and you have a target of reliability, because we are getting to the point where we understand that all systems at any point in time are in some kind of degraded state. And yeah, reliability isn't necessarily binary, it's not unreliable or reliable. Most of the time, it's mostly reliable and this gives us a better shared language, I guess. And you can have a read in the SRE handbook by Google, which is free online, which gives you a pretty good understanding of Datadog.

    Jordan Simonovski:

    I think the last time I used it had a SLO offering. But I think like I was mentioning earlier, you set an SLO on particular functionalities or features of your application. You're saying, "My user can do this 99% of the time," or whatever other reliability target you might want to set. I wouldn't recommend five nines of reliability. You'll probably burn yourself out trying to get there. And you have this target set for yourself. And you know exactly what you're measuring, you're measuring particular types of functionality. And you know when you do breach these, users are being affected. And that's where you can actually start thinking about observability. You can think about, "What other features are we implementing that we can start to measure?" Or, "What user facing things are we implementing that we can start to measure?"

    Jordan Simonovski:

    Other things you could probably look at are, I think they're all covered in the book anyway, data freshness in a way. You want to make sure the data users are being displayed is relatively fresh. You don't want them looking at stale data, so you can look at measuring things like that as well. But you can pretty much break it down into most functionalities of a website. It's no longer like a ping check, that you're just saying, "Yes, HTTP, okay. My application is fine." You're saying, "My users are actually being affected by things not working." And you can start measuring things from there. And that should give you a better understanding, or a better idea, at least, of where to start with what you want to measure and ow you want to measure it. That would be my opinion on where to get started with this if you do want to introduce it.

    Jared Kells:

    We're going to talk a little bit about state and how with some of these, like our very front end heavy applications that we're building, so the applications we build just basically run inside the browser and the traditional state as you would think about it, is just pulling a very simple API that writes some things into the database with some authentication, and that sort of stuff. So in terms of reliability of the services, it's really reliable. Those tiny API's just never have problems, because it's just so simple. And well, they've got plenty of monitoring around it. But all our state is actually, when you say, "Observe the state of the system," for the most part, that's state in a browser. And how do we get observability into that?

    Jess Belliveau:

    A big thing is really, there's not one thing fits all as well. When we talk about the SLO stuff as well, it's understanding what is important to not so much maybe your company but your team as well. If you're delivering this product, what's important to you specifically? So one SLO that might work for me at Apptio probably isn't going to work for Easy Agile. This is really pushing my knowledge, as well, of front end stuff, but when we say we want to observe the state as well, we don't necessarily mean specifically just the state. You could want to understand with each one of those API's when it's firing, what the request response time is for that API firing. So that might be an important metric. So you can start to see if one of those APIs is introducing latency, and so your user experience is degraded. Like, "Hey when we were on release three, when users were interacting with our service here, it would respond in this percentile latency. We've done a release and since then, now we're seeing it's now in this percentile. Have we degraded performance performance?" Users might not be complaining, but that could be something that the team then can look into, add to a sprint. Hey, I'm using Agile terms now. Watch out!

    Jared Kells:

    That's a really good example, Jess. Performance issues for us are typically not an API that's performing poorly. It's something in this very complicated front end application is not running in the same order as it used to, or there's some complex interaction we didn't think of, so it's requesting more data than expected. The APIs are returning. They're never slow, for the most part, but we have performance regressions that we may not know about without seeing them or investigating them. The observability is really at the individual user's browser level. That makes sense? I want to know how long did it take for this particular interaction to happen.

    Jess Belliveau:

    Yeah. I've never done that sort of side of things. As well, the other thing I guess, you could potentially be impacted in as well as then, you're dealing with end user manifestations as well. You could perceive-

    Jared Kells:

    Yeah sure.

    Jess Belliveau:

    ... Greater performance on their laptop or something, or their ISP or that sort of stuff. It'd be really hard to make sure you're not getting noise from that sort of thing as well.

    Jordan Simonovski:

    Yeah. There are tools like Sentry, I guess, which do exist to give you a bit more of an understanding what's happening on your front end. The way Sentry tends to work with JavaScript, is you'll upload a minified map of your JS to Sentry, deploy your code and then if something does break or work in a fairly unexpected way, that tends to get surfaced with Sentry will tell you exactly which line this kind of stuff is happening on, and it's a really cool tool for that company stuff. I don't know if it'd give you the right type of insights, I think, in terms of performance or-

    Jared Kells:

    Yeah, we use a similar tool and it does work for crashes and that sort of thing. And on the observability front, we log actions like state mutations in side the front end, not the actual state change, but just labels that represent that you updated an issue summary or you clicked this button, that sort of thing, and we send those with our crash reports. And it's super helpful having that sort of observability. So I think I know what you guys are talking about. But I'm just [crosstalk 00:35:25], yeah.

    Jess Belliveau:

    Yeah, that's almost like, I guess, a form of tracing. For me and Jordan, when we talk about tracing, we might be thinking about 12 different microservices sitting in AWS that are all interacting, whereas you're more shifting that. That's sort of all stuff in the browser interacting and just having that history of this is what the user did and how they've ended up-

    Jared Kells:

    In that state.

    Jess Belliveau:

    In that state, yeah.

    Jordan Simonovski:

    I guess even if you don't have a lot of microservices, if you're talking about particular, like you're saying for the most part your API requests are fine but sometimes you have particularly large payloads-

    Jared Kells:

    We actually have to monitor, I don't know, maybe you can help with this, we actually should be monitoring maybe who we're integrating with. It's actually much more likely that we'll have a performance issue on a Xero API rather than... We don't see it, the browser sees it as well, which is-

    Jordan Simonovski:

    Yeah, and tracing does solve all of those regressions for you. Most tracing libraries, like if you're running Node apps or whatever on your backend. I can just tell you about Node, because I probably have the most experience writing Node stuff. You pretty much just drop in Didi trace, which is a Datadog library for tracing into your backend and your hook itself into all of, I think, the common libraries that you'll tend to work with, I think. Like if you're working for express or for a lot of just HADP libraries, as well as a few AWS services, it will kind of hook itself into that. And you can actually pinpoint. It will kind of show you on this pretty cool service map exactly which services you're interacting with and where you might be experiencing a regression. And I think traces do serve to surface that information, which is cool. So that could be something worth investigating.

    Jess Belliveau:

    It's funny. This is a little bit unrelated to observability, but you've just made me think a bit more about how you're saying you're reliant on third party providers as well. And something I think that's really important that sometimes gets missed is so many of us today are relying on third party providers, like AWS is a huge thing. A lot of people writing apps that require AWS services. And I think a lot of the time, people just assume AWS or Jira or whatever, is 100% up time, always available. And they don't write their code in such a way that deals with failures. And I think it's super important. So many times now I've seen people using the AWS API and they don't implement exponential back off. And so they're basically trying to hit the AWS API, it fails or they might get throttled, for example, and then they just go into a fail state and throw an error to the user. But you could potentially improve that user experience, have a retry mechanism automatically built in and that sort of stuff. It doesn't really tie into the observability thing, but it's something.

    Jared Kells:

    And the users don't care, right? No one cares if it's an AWS problem. It's your problem, right, your app is too slow.

    Jess Belliveau:

    Well, they're using your app. Exactly right. It reflects on you sort of thing, so it's in your interest to guard against an upstream failure, or at least inform the user when it's that case. Yeah.

    Jared Kells:

    Well, I think we're going to have to call it, this podcast, because it was an hour ago. We had instructed max 45 minutes.

    Jess Belliveau:

    We could just keep going. We might need a part two! Maybe we can request [cross talk 00:39:21].

    Jared Kells:

    Maybe! Yeah.

    Jess Belliveau:

    Or we'll just start our own podcast! Yeah.

    Angad Sethi:

    So what were your biggest learnings today, given it's been Angad and I are just learning about observability, Angad what was your biggest learning today about observability? My biggest learning was that observability does not equal Datadog. No, sorry! It was just very fascinating to learn about quantifying the known unknowns. I don't know if that's a good takeaway, but...

    Jess Belliveau:

    Any takeaway is a good takeaway! What about you, Jared?

    Jared Kells:

    I think, because I we were going to talk about state management, and part of it was how we have this ability, at the moment to, the way our front ends are architected, we can capture the state of the app and get a customer to send us their state, basically. And we can load it into our app and just see exactly how it was, just the way our state's designed. But what might be even cooler is to build maybe some observability into that front end for support. I'm thinking instead of just having, we have this button to send us out your support information that sends us a bunch of the state, but instead of console logging to the browser log, we could be console logging, logging in our front end somewhere that when they click, "send support information," our customers should be sending us the actions that they performed.

    Jared Kells:

    Like, "Hey there's a bug, send us your support information." It doesn't have to be a third party service collecting this observability stuff. We could just build into our... So that's what I'm thinking about.

    Jess Belliveau:

    Yeah, for sure. It'll probably be a lot less intrusive, as well, as some of the third party stuff that I've seen around.

    Jared Kells:

    Yeah. It's pretty hard with some of these integrations, especially if you're developing apps that get run behind a firewall.

    Jess Belliveau:

    Yeah

    Jared Kells:

    You can't just talk to some of these third parties. So yeah, it's cool though. It's really interesting.

    Jess Belliveau:

    Well, I hope someone out there listening has learned something, and Jordan and I will send some links through, and we can add them, hopefully, to the show notes or something so people can do some more reading and...

    Jared Kells:

    All thanks!

    Jess Belliveau:

    Thanks for having us, yeah.

    Jared Kells:

    Thanks all for your time, and thanks everybody for listening.

    Jordan Simonovski:

    Thanks everyone.

    Angad Sethi:

    That was [inaudible 00:41:55].

    Jess Belliveau:

    Tune in next week!

  • Podcast

    Easy Agile Podcast Ep.2 John Turley, Digital Transformation Consultant, Adaptavist

    Transcript:

    Sean Blake:

    Hello, everybody. I'm Sean Blake, the host of this episode of the Easy Agile podcast. I'm also Head of Marketing at Easy Agile, where our mission is to help teams around the world work better together. We have a fascinating guest with us today. It's John Turley from Adaptavist. John is a pragmatic Agile leader with 25 years experience working in companies at all levels, from teams to C suite, always bringing real value, adding change to the way organizations work. Dissatisfied with the standard discourse around transformation and agility, he is passionate about applying cutting edge knowledge from fields as diverse as sociology and psychology. We're really excited to have John on the podcast today. So John, thanks so much for being on the Easy Agile podcast.

    John Turley:

    You're welcome, Sean. Pleasure to be here.

    Sean Blake:

    Thank you so much. So John, you've got a lot of experience in the Agile space, in the tech space. And I'm not trying to call you old. But I'd love to get a sense of what's changed over 25 years. It must just be night and day from where you started to what you see now.

    John Turley:

    There's a lot of change. And I'm pretty comfortable with old. I'm 48 now, and it's closest to 30 years now. That tells you when I first wrote that bit in the bio. So the technology has changed. That's mind blowing. I started off in ops, and then infrastructure and project management and stuff and 1999, 2000, it would take us three months and 50,000 quid to build a couple of web servers with a pair of load balancers and firewalls and a database at the back. And now we spin them up in seconds.

    John Turley:

    This is profound. Platform technology is profound slack or I mean platform technologies, that makes a massive difference to the way we interact. Scale is a massive issue. I would say that the world is sort of dichotomized into very large and quite small organizations. There seem to be less in the middle. It's just a gut feeling. We see, I think trust is collapsed. We see that in Edelman Trust Barometer. We see the complexity has increased. That's deeply problematic for us. [inaudible 00:02:23] has been measuring that one.

    John Turley:

    And we see that workforce engagement is at all time lows through the Gallup World Poll. Those things are big, big changes. What's the same though is the people, the way the people think, the way we construct our reality, our mindset, if you like, the way we make sense of the world around us is very, very similar. So although we now talk a lot more about Agile, the waterfall and waterfall for many is a bit of a dirty word, not for me and same with command and control. People are taking the same mindsets. This is measurable and provable. People are taking the same mindset that they had around waterfall and command and control using different language of Agile and behaving in the same way. That hasn't changed.

    Sean Blake:

    Very interesting. So you touched on trust, and how basically we've seen this breakdown of trust across the board. And I've just watched a documentary that's come out on Netflix around the Social Dilemma, and how the trust that we have in these big social media platforms is eroding. And we're getting a little bit skeptical around what these big companies are doing to us as the customer. Do you find that that's a hard balance with the people that you work with around being customer focused, but still building a profitable and growing business?

    John Turley:

    Yeah, I do. Yes, and the way I think it manifests itself, which again maybe we'll get into the sort of the psychology and the sociology as well as the complexity science, I'm into it later. But there's a very clear way that that lack of trust manifests itself. I'm not sure it's the lack of trust that manifests itself. But there's a very clear thing that's happening is people, there's repeated patterns of behavior I see all over the place in a lot of the work I do, which is one on one and with groups, that people hold on to this idea that their view is right and anything that doesn't comply with that is wrong.

    John Turley:

    This is a view that comes from the predominant mindset from what [inaudible 00:04:33] call the sort of expert or the achiever mindset, and it becomes a barrier to us collaborating and learning together and innovating. If somebody with a different point of view is dismissed as wrong, then there's no common ground to start to build trust. Trust is eroded from the outset, and that means that we can't collaborate, and in a complex world where we need to collaborate ever more closely and learn together and innovate, that's a deep, deep problem.

    John Turley:

    And the response seems to be that people actually withdraw, they withdraw into groups, we might call them cliques or echo chambers. The sociologists call this process homophily. This is a function like many say of platforms like Twitter, we retreat into groups that echo the opinions that we already hold that then reinforce those opinions, and separate us from the opinions of others and reinforce the opinions we have. So the gaps between the cliques grow wider, and particularly in times of COVID and the lockdown that we've had here, and that we seem to be maybe heading back into the isolation perhaps adds to that, and we see it more and more. So at a time where we need to be getting our act cliques and talking with understanding with others with different views, we're actually psychologically in a difficult position to be able to do that. And so that's what we might generically call the lack of trust manifests itself in the work that I'm doing. And that's how I see it with almost everybody that I work with, including myself, by the way. It's not an easy thing to conquer.

    Sean Blake:

    So what does your day to day look like, John? I think your official job title is Digital Transformation Consultant. You work for Adaptivist as one of the most well known Agile consulting practices in the world, I would say. What does that mean for you day to day? What does your nine to five look like?

    John Turley:

    So we're really involved in three things. I'm really involved in three things. And it's all about learning, collective learning, organization learning. So we're involved in a lot of original research. We do that original research with a number of academic partners in a program that we're putting together. We've been doing a lot of the research on our own. But as it gets bigger and more credible, other partners are coming to join us and they're very credible partners.

    John Turley:

    And the research is uncovering new learning. And that new learning points us to new consulting practices where we can take that learning and embed it into a workshop, say or how we might use the research instruments that we've borrowed from academia in the real world to measure social networks or psychological complexity or the amount of autonomy in the environment. So we can then use that to work with teams to help them shift from a sort of functionally oriented way of working to a cross functional way of working, which whether we're talking about safe and Agile release chains, or whether we're talking about Lean software management and value streams, whether we're talking at a team level or an organizational level, the challenge is essentially the same. We need to orientate ourselves around the creation of customer value in cross functional teams that are focused on delivering that value, not just delivering on their function. And that switch brings with it some deep, complex, deep psychological challenges that we're just not really equipped to meet. So we bring sort of the people and culture element, the tools and the Agile methodology simultaneously to bear in teams to help them make that shift. So that's really what my day to day work looks like, so the research and the practice.

    Sean Blake:

    Okay, research and practice. And when it comes to the practice side and encouraging that cross functional collaboration, how hard is it for people to get on board with that recommendation or get on board with what the company is trying to do?

    John Turley:

    For most people, it's really hard. So my experience before doing the research that I guess we started a couple of years ago I was just referring to, was something like this recently. We'd often get, so I've worked in the Agile space for a long time, I don't quite know when I started working in that space, in other words, full space, but a decade or two, let's say, and now bumped into a repeated problem, we get our, let's say, thinking of a specific example with a specific client about three years ago, very functionally orientated, trying to make that shift into cross functional teams. So we got a group of five people together from different functions, so designers, testers, developers, a couple of ops people, and between them, they should be able to obviously, launch some working code within 10 days or whatever. We were probably trying to spring into the real world.

    John Turley:

    And they were all great people. I knew them all personally. I spent time working with them all. They were very sort of Agile in the way they approached the development of the software that they did, and we put them in a room virtually to begin with and we asked them to produce a piece of code that works across functions, produce a piece of code and release it at the end of the week. And they didn't. And we thought what on earth happened there? We didn't really understand this, so we tried it again. But we assumed that the problem is because we'd done it virtually.

    John Turley:

    So this time, we got everybody together in Poland, as it happened in a room, we set it all up, we talked to them at the beginning, then people like me sort of left the room and let them get on with it, got to the end of the week, same outcome, nothing has happened. And if you talk to them, while they say, "Yeah, my phone pinged and there was a support incident, and you just couldn't.", and they had lots of very plausible reasons why they couldn't come together as a cross functional team. But the fact remains twice in a row, the most capable people haven't done it.

    John Turley:

    So we had a really long think about it, one of the senior leader in the business and myself. And we realized that the only thing that could be happening, the only thing that could be going wrong here is that there must be some sort of breakdown in the dialogue between the group in the room. So we ran it, we ran the workshop, let's call it for a third time. And this time, we had somebody else in the room just watching what was going on.

    John Turley:

    And they spotted something happened really early on. One of the people from the UK said to one of the Polish developers, they said, "Look, think of us like consultants. We're here to help you, to transfer knowledge to you so that you develop a capability so that you can do this on your own." And at that moment, the person who was in the room said that the dynamic in the room seemed to change. People glazed over. And I think what it was is that that word consultant that the English person had used had a different meaning for a colleague in Krakow. I think that meaning, the meaning of consultant meant, we're just here to tell you what to do and not actually do anything and put ourselves on the hook for any work, just kind of watch you do it.

    John Turley:

    And I think at that point, they kind of went, "Okay, well, all right, I get it, same old, same old. We'll do the work you English guys talk about it, because it's an English company.", and that breakdown started to occur. So the question we started is, I've seen that all over the place. So the question we started to wrestle with in our research is what's happening in those moments when that dialogue breaks down what's happening?

    John Turley:

    And what we've discovered is that there is a number of research studies, the biggest is about 10,000 people, that shows that around about 50% of people are at a level, and this is 50% of leaders in a study of 10,000, so for middle management, senior management, so it's a skewed number. So in reality, in software teams, it's probably more than 50% of people have reached a level of psychological complexity that suits the environment as it was, but has some limitations in cross functional working.

    John Turley:

    So they have a mindset, a way of making their reality that works well in a functional environment, but it's challenged in a cross functional environment. And that mindset, this way of thinking, which is very prevalent, is a way of thinking where individuals draw their self esteem from their expertise, just to put it very short, simple as an oversimplification. And the thing is, if you're drawing your self esteem from your expertise, when your expertise is challenged, it feels personal.

    John Turley:

    If it feels personal, people are likely to get defensive. And it's not because they're stupid, or they're not interested or they don't want to, the psychologists can show it's a level of psychological complexity, where that's just how our minds work. That's just how our meaning making works. Now, if that's the stage you're at, if we imagine me as a developer sitting down with a tester, and the tester's saying to me, "Look, the way you've written the code isn't the best way to do it for me, because I can't test it."

    John Turley:

    If I'm drawing my self esteem from my expertise as a developer, I'm likely to reject that, and might even start to think thoughts like, "Well, I think what really needs to happen here is that you need to be a better tester." I think that's the problem. And then we get this separation. Now at the next stage is psychological complexity. And these stages are in a framework that we do move through these stages. Again, it's an oversimplification, but it's observable and measurable. At slightly later stage of psychological complexity, things start to change. People start to recognize that the world is much more complex, that it's not black and white. And actually, there are multiple ways of doing things.

    John Turley:

    So to go back to my example as a developer, the tester might say to me, "This isn't the best way to write the code as far as I'm concerned." And what I'll hear is the, "Oh, as far as I'm concerned." It might be as far as I'm concerned, it's not fair enough. How can we change the way I'm writing the code to make it easier to test? But I can't do that if I respond like it's a personal criticism, you know what I mean? So what we started to uncover in the research is a correlation between how successful cross functional teams can be, and the level of psychological complexity in the leaders and the individuals in that team.

    Sean Blake:

    Interesting. So there's a book that we've been reading at Easy Agile recently called Radical Candor. And really, it comes down to giving constructive feedback to each other, not in a way where you're attacking them personally but you're trying to be honest around how we can work more collaboratively. And like you said with that example, how can a developer write code in a way that the QA tester can actually perform the tests on it? For someone who's new to cross functional ways of working, what advice does the research have around preparing that mindset to receive some of that radical candor, to receive that feedback in a way that you don't take it personally?

    John Turley:

    Well, so it's a great question, you put it really well, because radical candor is fine. We have, I work in a team that is very candid. We have some difficult conversations, and we don't even really dress our words up. And nobody gets offended. We just know that it's a shortcut. We might get our words wrong, but it's a shortcut to unlocking value to finding out how to work together. But it's not about the words that each of us picks to express. It's about how the other chooses to react to the words landing, as much as now that's a dialogue, it's a two way thing, it takes two to tango.

    John Turley:

    And the way we can develop a mindset that's more suitable to cross functional work is interesting. First of all, we've got to get out of comfort zone. We've got to be prepared to get out of our comfort zone, not far necessarily, and not for very long necessarily, and not without support and understanding from the colleagues around us. But we do need to get out our comfort zone. Otherwise, psychological growth can't occur. This is what I'm talking to about now is the work really of Robert Kegan and Lisa Lahey, who do a lot of work in dialogue on radical candor.

    John Turley:

    So we've got to get out of our comfort zone. But we've also got to be addressing a complex problem with a group of people when we're outside of our comfort zone. And that complex problem has to be meaningful, and it has to be salient, it has to be something that we care about, it has to be something relevant to our day to day work. And if we've got those characteristics in the environment that we working in, then there is an opportunity for individuals to choose to develop their own psychological complexity.

    John Turley:

    So that environment that has those characteristics, we would call in Kegan's word a deliberately developmental environment, because we can't separate the development of individual mindsets from the environment that that mindset functions in. The reason most of us have got the mindset that draws self esteem from expertise is because that's actually what most environments that we work in or not. That works in a functional environment. It's where you get promoted, it's where you get hired. It's where you get your Scrum Master badge and all that other stuff that gives you status and makes you feel good.

    John Turley:

    The world that we work in for many of us honors that expert way of making meaning. It doesn't honor learning and admission that yours might not be the best way to do things in the same way. So we have to shift the environment to support the individual to choose to take that developmental step because it can't be something that's done to them. You can't make people develop a more complex psychology. You can't train them to do it. You can only give them an environment that supports that step if they want to take it and if they don't, fair enough, that's okay. But maybe cross functional teams for them, if they don't want to because the hard place is to work.

    Sean Blake:

    Is it a problem that people find their expertise or find their self esteem from expertise? Is part of it encouraging men to find their confidence in things outside of their work or is expertise an honorable pursuit?

    John Turley:

    I wouldn't say it's a problem at all. Expertise, and the development of expertise is an honorable pursuit. Drawing your self esteem from your expertise is a very necessary part of our psychological development is a stage that can't be skipped really. I said to you before that I don't like to say things like that without the research base, but the psychology certainly imply that it's a stage that can't be skipped. So we've got to do it. We've got to go through this stage. The stage before we're drawing our self esteem from our expertise is where we draw our self esteem from our membership of the group.

    John Turley:

    And that's very important too, if you think of us as children or being part of a group is essential for our survival, so ingratiating yourself into that group, not rocking the boat, so we don't jeopardize our group membership is critical. But at some point, people start to realize, well, actually, I have to rock the boat a little bit if we want some direction. So separating your meaning making from drawing your self esteem from the group to drawing your self esteem from your expertise is a development in that sense. Drawing your self esteem from your expertise means the best way to write this code is let me train somebody to do it.

    John Turley:

    It's critical. But like all developmental stages, it has its limitations. So it's not problematic in any way, unless the individual is in a complex environment in which that expert way of making meaning isn't well suited. And then you got a mismatch between psychological complexity and environmental complexity. And when you've got a mismatch like that, the individual's anxiety will go up probably, employee engagement goes down, certainly wellbeing goes down, people revert to an earlier way of making their meaning that's more embedded in their expertise or the group, just to the point, they need to get more sophisticated.

    John Turley:

    So the problem is the mismatch between psychological complexity and environmental complexity. That's why we need to support, as the world gets more complex, that's why we need to get all get better at supporting the development of individuals into a level of psychological complexity that suits the more complex environment. That's kind of the nub of the problem. Nothing wrong with being an expert in drawing your self esteem from your expertise. People have done it forever, and will continue to do so. Every time you get in a flash car and you feel good, because you're in a car, you're drawing your self esteem from the status symbol, which is very similar to your expertise. As a young man, I put on my sharp suit and I feel a million dollars. Nothing wrong with that at all, but it's limited. That's the problem.

    Sean Blake:

    Understood, understood. So you've spoken about research and measurement and having an evidence based way of making decisions. When it comes to this cross functional way of working or digital transformation or teams moving from the old way of working to an Agile way of working, do we have evidence to say one way of working is superior to another way of working? And when you're talking to these clients or these customers, can you guarantee that if they work in this way, it's going to lead to better outcomes for the business? How do you approach that conversation?

    John Turley:

    No, I can't do either of those things. So I would never go anywhere near nor would I research saying that one way of working is better than another way of working or we can say like the mindset and the environment that there are ways of working that will work better depending on the problem that you're trying to solve. But it's very unlikely that one could be considered right and the other wrong in all sorts of circumstances, but more than that, I would say that doesn't matter what your way of working is or a team's way of working is. If the mindset is the way of making sense, if the reality doesn't also shift, then you're just following a new process, a new way of working with the old way of thinking, and you're going to get the same results just with different words.

    John Turley:

    So for me, that isn't entirely true, I'm quite biased. I guess in the work I do, I've got quite a perspective. If you shift mindset, then everything else will drop into place. If you change everything else, but don't shift mindset, nothing else will drop into place. What we can say however, is that there are three things, let's call them the three elements of a cross functional team that are hidden to people in organizations at the moment.

    John Turley:

    So generally, we think if we've got people with the right experience and skills working suitably hard, then they're going to work as a successful cross functional team. And if they're not, they're either not working hard, they're not the right type of person, or they haven't got the right set of skills, so fire them and hire somebody else or give them or put them on a training course, and that solves the problem, which of course it doesn't.

    John Turley:

    We would say that there are three other elements that remain hidden parts of the cross functional team that are more critical than that, and we're beginning to be able to demonstrate that there is a correlation between these three things that I'm going to tell you about on both employee engagement and team performance.

    John Turley:

    And these three hidden elements are the structure of the social networks that underpin the way people work. So if we think about how we as groups of human beings organize ourselves, we might think about hierarchies and hierarchy diagrams and old charts and bosses and stuff. That's not really very important for a cross functional team. What's much more important is the social network that develops across that team, who works with whom and when and how, right? Do the developers and the testers and the testers and the ops guys and the designers and the technical architects, do they all work together in a cross functional team?

    John Turley:

    Now that's a social network. That's a network that's formed through individual autonomy because they want to get the job done not because the boss says you've got to go and do it. In fact, it can't be done because the boss says go and do it. So we have worked with some friends in academia with actually an Australian company called Polinode to measure their various ways we can get the data, what those social networks look like. And the structure of those social networks is key.

    John Turley:

    As we look at the structure of social networks, we can see whether those teams look like their function, sorry, organized hierarchically, or were they organized for cross functional working because of the network structure. So network structure is one element. The other is psychological complexity. So we've worked with a gentleman called David Rook, who did the original research and developed a psychometric instrument that can measure an individual's stage of psychological complexity, both the structure and the substructure. And that mindset complexity is also linked along with network structure to where the teams can function cross functionally.

    John Turley:

    The third thing that was the hardest bit, the last bit of the jigsaw that we sort of put into our hypothesis is we need to have adequate degrees of autonomy. We needed to develop a much better understanding of what it means for teams to be autonomous than we had, and how that autonomy relates to control and how control undermines autonomy and how we all tend to be orientated, to taking the cues in the environment either as instructions, which we must comply with or invitations to be autonomous. And we now have another psychometric instrument. So the third instrument that we use, we call the motivation orientation scale, excuse me, that can measure an individual's likelihood to interpret inbound information as an instruction or an invitation to be autonomous.

    John Turley:

    And once we know that, we can start to challenge this common perception within product teams, software teams that the team is autonomous, because everybody thinks they are autonomous. And in fact, everybody is, research shows mostly autonomous, but we might be almost entirely autonomous, or we might be 60% autonomous. We can measure this. And then we can say to teams, "Look, you are autonomous as a bunch of individuals. But you also have this control thing going on where you're responding to inbound requests."

    John Turley:

    And we need to be more autonomous. So once we can start to measure it, we can start to challenge their ideas of how autonomous they are. And we can start to examine where the teams are choosing to respond from that control orientation or their autonomy. So they're the three things, autonomy and control, complexity of mindset and network structure, equal employee engagement and team performance. That's what our research says. So what we can say is, to your question in the beginning, there is a network structure, a level of psychological complexity and the amount of autonomy that correlates to successfully working as a cross functional team. And in that sense, we might think that those levels are right, in some sense.

    Sean Blake:

    Okay. So what does a 100% autonomous team look like? And do they still have interaction with, say the executive team on a day to day basis? Or are they at odds, those two concepts?

    John Turley:

    No, they're not at odds. They do have, they might have day to day, I suppose they would, they will have either directly or indirectly interactions with the executive team. So the first thing we need to bear in mind here is that the research that we're leaning on is something called self determination theory, which is a theory of motivation. And it has quite a specific definition of autonomy, which is not what we might normally think. Often autonomy is taken to mean as sort of the general use of independence. So if we buy a company, we might leave it to run autonomously, which would mean we just left it alone for a while. And autonomy in this context doesn't mean that. It means individuals acting of their own volition, individuals deciding how to act towards a common purpose. So the team has to have the vision which they can self organize around. You can't self organize without autonomy. If you don't got autonomy, you have to wait to be told what to do. And then it's not self organization.

    John Turley:

    So autonomy leads to self organization, and self organization can be around a common vision or a set of goals or an OKR is quite a sophisticated way to do instead of management by objective, then we can self organize in a way that sort of honors the need to be part of an organization, doing some coordinated work, but that doesn't rely on a manager telling the individual what to do.

    John Turley:

    That's what an autonomous team looks like. An autonomous team, you need the autonomy is really a self organizing team. And the self organizing team is deciding what the team ought to do in order to achieve a wider objective, which could be integrating with other self organizing teams. And obviously, the direction is set often by the executive. So all these things sort of come into play. It's not a question of control on the one hand or autonomy on the other or Agile on one hand or waterfall on the other.

    John Turley:

    So we're going to blend the two. We're going to balance them. And that balance needs to shift not only across teams, but also depending on the level that the organization is, that the team is working in the organization. And what I mean by that is the need for control and measurement increases in many ways as you go higher up the organization. So we want high degrees of autonomy at a team level where we're creating customer value. But we need to recognize that that self organizing team has a legitimate requirement to integrate with some elements of controlling the organization, because if we have some elements of control, then we can't do the accounting and be accountable for where we spend investors' or shareholders' money, you know what I mean? So it's much more complex in the sort of the dichotomized world that people tend to look at, which is very black and white. Is it Agile or is it waterfall? Are we autonomous or are we control orientated where you're both and the blend of which needs to shift depending on the environment here.

    Sean Blake:

    Okay, okay. So there's always a need for a bit of control on top of the autonomy.

    John Turley:

    It's a balance, right? We're all comfortable with control, aren't we? We all comply with speed limits, for example. We're perfectly okay with that. Control is not a dirty word. Some will do things that we're told to do sometimes, and we're happy to do it. Sometimes we do it begrudgingly. We're not happy to do it. Sometimes we reject it. There's nothing wrong with control in itself. It's the overuse of control to coerce people to do things that they don't want to do. That's when it becomes problematic because it undermines an individual's autonomy, which is a basic, universal psychological need. We all need to have a sufficient degree of autonomy to feel well.

    Sean Blake:

    Okay. Okay. So we know that Agile's had a good run, it's been decades now. So do you still find that you come across the same objections when you're speaking to these executive teams or these companies perhaps from more traditional industries? Do they still have the same objections to change as they did in the past? And how do you try and overcome them?

    John Turley:

    Yes, they do. So one of my strange experiences as a young project or program manager, whatever I was, is that when I would end up in a room full of software developers who were Agile, probably the language they would have used at the time and a bunch of infrastructure engineers who followed waterfall, and the distaste for one group for the other, it was almost visceral, and you could see it in them. There would be a bunch in, I don't know, Linux t-shirts and jeans, and then the infrastructure waterfall people would probably be wearing suits.

    John Turley:

    I mean, it was really obvious, and it was hard to bring these groups together. That was my experience in let's say, around about 2000, I sat with a client yesterday, who said exactly the same thing. They said that in their organization, which is going through a very large, Agile transformation at the moment, they said, "These are their ways. We kind of got people at the two extremes. We can sort of bookend it. We've got the waterfall people who think their way is best and we got the Agile people who are totally on board with Agile transformation."

    John Turley:

    And what I heard when the individual said that is quite senior leaders, the Agile people are on board with the Agile transformation brackets because they think their way of working is best. And what I tried to point out to that senior manager was that that was one group, there were perceptions anyway, that one group was into Agile and got cross functional working, all that got cross functional working and the other group didn't, actually the two groups were operating in the same way.

    John Turley:

    They both thought their way of working was right, and one was espousing the virtues of waterfall and the other Agile, but the fact was they both thought that they were right, and the other was wrong. And they were both wrong in that. Waterfall works really, really well in a lot of scenarios. And full on Agile works really, really well in some environments. In some environments, it's quite limited by the way, in my opinion.

    John Turley:

    My friend and colleague, John Kern, who was a co author of the Agile Manifesto in 2001 or 2004, whatever it was, I can't remember. He says, "I love waterfall. I do loads of waterfall, I just do it in very small chunks." And because the fact is we've got to do work sequentially in some manner. I can't work on an infinite number of things in parallel. There has to be a sequence.

    John Turley:

    And that really, when I heard him say that, it sort of filled my heart with joy in a way because for somebody with a waterfall background, I used to say, "Look, I don't get this. In waterfall project management, we're talking about stages. And in Agile, we're talking about sprints." And they've both got an end. One's got a definition of done. And one's got some acceptance criteria, and they both got a beginning. The only difference is the language and the duration.

    John Turley:

    So what if we make sprints, sorry, stages 10 days long? What's the difference now? And yet people would say, "Well, we're Agile, and we do sprints, and that would still be a stage." Come on, we've got to find some common ground right to build a common meaning making between large groups of people. Otherwise, only the Agile listeners amongst us can work for Agile organizations, and everybody else is doomed. And that's not true, is it? That's nonsense, right? So we've got to come together and find these ways of working as my friend John Kern points out so eloquently.

    Sean Blake:

    Okay, that's good advice. So for these, some people that you meet, there's still this resistance that has been around for many years. How do you go about encouraging people to get out of their comfort zone to try this cross functional way of working and be more transparent, I guess with contributing to the team and not necessarily pushing towards being just an individual contributor?

    John Turley:

    Another great question, Sean. So there are a couple of ways we can do it. The psychometric instrument that I mentioned earlier, that can sort of measure I kind of always put that in inverted commas, because it doesn't really measure anything, it assesses, I suppose, is a really, really powerful tool. Off the back of that measurement, the psychologists that we work with can create a report that explains lots of this sort of meaning making stuff, adult developmental psychology to the individual. And it tends to be mind blowing. It really shifts people's perspective about what they are and how they're operating in the world.

    John Turley:

    Once people start to understand that there are these developmental stages, and we all move through them potentially to the last days of our life, we can start to see the disagreements. They just start to fall away. Disagreements start to fall away, because they cease to be seen as opposing views that can't be reconciled, because I'm this type of person and they're that type of person.

    John Turley:

    And they start to be seen as incompatibilities in meaning making. So people start to go, "Okay, well, I think this and you think that. How are we both making our meaning around this, that means we can see other's perspective?" And immediately, then you've started to find a mechanism to find some common ground.

    John Turley:

    So the leadership development profile report, which is the report that comes from the psychometric instrument really sheds a lot of light on for the individual, both on how they're working and what development looks like, what psychological development looks like for them. So that's a powerful tool. We have another service that we call dialogue partnering, which we're piloting, which is sort of what over an eight or 10 week program, it's a one on one collaborative inquiry into how an individual is making their meaning, and what the strengths of their meaning making and the limitations of their meaning making are.

    John Turley:

    And once people start to realize that the way, the reason they feel defensive because the way they code has just been criticized is because they're drawing their meaning from being the best coder on the planet. But there is a development path that leaves that behind, which is where many, many people get to. It's kind of like an a-ha moment, people just realize that reality is different to what they thought and it can be adjusted.

    John Turley:

    So the LDP, the Leadership Development Profile reports, dialogue partnering, and working with senior management to create a deliberately developmental environment, which does those things I mentioned before, they're the critical tools that we use to help individuals unlock their own psychological development. And the question is, of course, why would they be motivated to do this? Why would they care? And they care, because 80% of people have got a very low level of engagement in their work. Most people are treading water, killing time. It's not a joyous place to be. Once people start to work in cross functional teams and get involved in joyous work with their colleagues to create things they couldn't, which is a basic human instinct, that's a buzz, then you come into work and enjoying yourself.

    John Turley:

    That's what I said to you at the beginning of that call, right? I'm having a great time, I'm working with some brilliant people unlocking new knowledge that we believe humankind doesn't have. That's a buzz. I'm not treading water in my role, you know what I mean? And this isn't unique to me. In my view, the whole world could be like that. We could all work in roles like that, maybe that's got a bit far. But certainly, many more of this could then currently do to get on board with the psychological development and enjoy your role more, enjoy your work. There's a lot of time.

    Sean Blake:

    Yeah, I really resonate with what you said about the buzz. And I've seen that happen when the light bulb comes on in people, and it's no longer this factory line of work getting passed down to you. But you realize you're now part of a team, everyone's there to support you, you're working towards a common goal. And it's transparent, you can see what other people are working on, and you're helping each other build something together. It's actually fun. For the first time in a lot of people's careers, it's a fun and enjoyable experience to come to work. So that must make you feel really good about doing what you do.

    John Turley:

    Yeah, it does. It's why I get out of bed, and it's what I've been about for 20 years trying to unlock this, really help other people unlock this. I got a phone call from a colleague the other day who said they were doing some exercise, and they were thinking about their new role. And they thought to themselves, this is what it feels like to do joyous work.

    John Turley:

    I mean, that [inaudible 00:42:51] job done, because this is a very capable individual. Once they're feeling like that, you know that they're going to do great things. When they're feeling like they're other people feeling, that people are clot watching, or there's this culture of busyness, where we can't admit that we don't know things. And then we've got to be in a meeting doing something, in the transparent world that you're just talking about, if I've got any work to do, I can just sit and say, "I'm going to work today, I'm waiting for more stuff to write." And it's not a bad thing. It's like, great, you're working at a sustainable pace. That's a good thing. I worked for a Swiss bank for years and years, working at a sustainable pace but nobody was interested, you need to work at a full on flat out unsustainable pace. And when you're burned out, you can go and we'll get somebody else to come in and do it. That's how it works. That's miserable.

    Sean Blake:

    It's not what we want, Sean, is it? It's not what we want. And unfortunately, a lot of people have been there before and they've experienced it. And once they see the light, they never want to go back to it, which I guess is a good thing once you recognize that there's a better way.

    John Turley:

    Yeah, agreed.

    Sean Blake:

    Yeah. Okay, well, I think we're going to wrap up shortly. I do have two more questions for you before we call an end.

    John Turley:

    I'll try and keep the answers brief.

    Sean Blake:

    No, that's fine. I'm really enjoying it. I could probably go for another hour but I know we've got other things to do. So in the research, I've read some of your blog posts, and I watched some of the talks that you've done and events in the past, and you speak about this concept of hidden commitments. And I just like to learn a bit more, what is a hidden commitment? And what's the implication?

    John Turley:

    Great question. So Robert Kegan and Lisa Lahey, developmental psychologists, wrote a book called Immunity to Change. This is a book that I read here a few years ago. And in there, Bob and Lisa talk about hidden commitments. And so they start by pointing out that we all make New Year's resolutions and they all fail. We really mean them when we make them. And when I was in my late teens, maybe I really did mean them when I made them. But I could never keep them.

    John Turley:

    In another book, Kegan points out, I think it's in the book called The Evolving Self. He points out that a large majority of men, after they've had heart attacks, I think it's a study in America. But it's been a while since I read it, I think it's six out of seven, don't change either their diet or their exercise regime after they've had a heart attack. And the reason he uses that as a case study in the book, because he's pointing out that it's not that these people don't know what to do, you need less calories in, more out. And it's not that they're not motivated to do it. They've had a near death experience. They'd like to stay alive, we presume.

    John Turley:

    Yet still, they don't make any meaningful change to their diet, their exercise regime, why not? And what Bob and Lisa say in the book from their research is that it's down to hidden commitments. We all have our way of making meaning. We have our values and our assumptions that we absorb from society as if by osmosis. And we don't question them. We can't question all of the assumptions that we absorb as we grow up. It's just not possible. So we have these hidden assumptions that we're committed to hidden commitments. And sometimes, these hidden commitments conflict with our stated objectives. And when the hidden commitment conflicts with our stated objective, the result is that we get very confused about the fact that the stated objective sort of falls by the wayside, and we don't really understand why. We might think, I would think a common out, because I just need to try harder, I just need more willpower. I just need to stay the course. And it's not true very often. There is something else in your meaning making this conflicted with our stated objective. And once you can surface it, then you can start to examine that hidden commitment, and you can play around with it.

    John Turley:

    And when you can play around with it, then you're adjusting your meaning making. And the technique that we use in dialogue partnering comes from Bob and Lisa's book, where we're essentially uncovering those hidden commitments and seeing how they conflict with commitment. So that's sort of, and then once you can see it, and you can experiment with it, you can start to unlock change in yourself. Peter Senge, I think he's director of innovation. He's very famous, director of innovation for MIT. And he has a beautiful little quote, something like, "What folly it is to think of transforming our organizations without transforming ourselves?"

    John Turley:

    We need to change our relationship with power in order to change the way power is distributed across our organizations. And that's an example of a hidden commitment that we don't normally think about. We just think we can empower people magically, whilst retaining all the power for the senior manager. And that just doesn't work. There's a hidden commitment, conflicting with the idea that we want to empower our teams, which is a quite flawed idea.

    Sean Blake:

    Wow. Okay. Well, I really like the approach to work and looking at the social structure, the social networks, and the psychology behind it all. It's really fascinating and it's not something I've really come across before, especially in the Agile space. So that's really unique. Thanks for sharing that, John. Last question for you. 2020 has been interesting to say the least. We've talked about some things that have stayed the same over your career, some things that have change. What do you think is going to come next, looking forward to the next five, 10 years? What are some of those trends that you think are really going to stand out and maybe change the way that your work, it changes the way that that your nine to five looks or changes the way that you interact with your clients?

    John Turley:

    I think that this won't just change the way my nine to five looks. It will change like everybody's nine to five looks. I think that the world is in a difficult place. A lot of us are upset, and it looks like a bit of a mess, and we're all anxious, I think. A lot of us are anxious. But as a friend said to me, he was quoting somebody else, never let a good crisis go to waste. The amount of changes, a lot of energy in the system, the amount of changes in the system is palpably changing things.

    John Turley:

    Many of us recognize there must be a better way of doing things because our ways of organizing ourselves as society, including our organizations is collapsing. It doesn't work anymore. People are realizing through work that people like the names I've mentioned, and through our original research, I hope will sort of contribute in an original way to this, that there is a better way of organizing ourselves that humankind does have the knowledge and the experience to do what we need to do.

    John Turley:

    It just isn't in IT. We need to look outside of it to what the psychologists say about mindset, not what the Agile people say about mindset. That's a radical idea. And as we import this learning and this knowledge, we have a framework that helps us understand to a much greater degree what's really going on, and how we can unlock real change. So everything that I talked about today, very little of it is original. We have some original work I can't really talk about. Does it matter? The knowledge is out there. If we do the people and culture bit and the tools and the methodology together, then it scales, then we change the way organizations work, which is going to change everybody's nine to five.

    Sean Blake:

    That's great. It's bringing it back to basics, isn't it? What we know about human beings, and now let's apply that to what we know about work. So that's really eye opening. And I've learned a lot from our conversation, John. I've got a few books and a few research papers to go and look at after this. So thank you so much for appearing on the Easy Agile podcast, and we really appreciate your time.

    John Turley:

    Sure, my pleasure. I mean, I love and we love at Adaptavist to sharing what we're doing. So we can all engage in more joyous work, man. So thanks for helping us get the message out there.