No items found.

Easy Agile Podcast Ep.12 Observations on Observability

Listen on
Subscribe to our newsletter

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.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.8 Gerald Cadden Strategic Advisor & SAFe Program Consultant at Scaled Agile Inc.

    Sean Blake

    Gerald shared that companies often face the same challenges over & over again when it comes to implementing agile, but the real challenge and most crucial is overcoming a fixed mindset.

    "Gerald helps massive companies work better together while keeping teams focused on people and on the customer. I'll be revisiting this episode."

    Gerald also highlights the difference between consultants & coaches, and the value of having good mentors + more

    I loved this episode and know you will too!

    Be sure to subscribe, enjoy the episode 🎧

    Transcript

    Sean Blake:

    Hello, and welcome to this episode of the Easy Agile Podcast. Sean Blake here with you today. And we've got a great guest for you it's Gerald Cadden a Strategic Advisor and SAFe Program Consultant Trainer at Scaled Agile, Inc. Gerald is an experienced business, an IT professional, Strategic Advisor and Scaled Agile Program Consultant Trainer SPCT at Scaled Agile. Thanks, Gerald. Welcome to the Easy Agile Podcast. It's really great to have you on as a guest today, and thank you for spending a bit of time with us and sharing your expertise with our audience on the Easy Agile Podcast.

    Sean Blake:

    So I'm really interested and I'm interested in this story that... For all the guests that we have at the podcast, but can you tell me a little bit about your career today? I find that people find their way to these Agile roles or the Agile industry through so many diverse types of jobs in the past. Some people used to be plumbers or tradies, or they worked in finance or in banking. How did you find your way into working at somewhere like Scaled Agile?

    Gerald Cadden:

    Good morning, Sean. Thanks for having me here guys. I'm very happy to be here with you guys today. Career things are always an interesting question. I'm 53 and so when I look back I wonder how do I get to where I am? And you can often look at just a series of fortunate events. And I worked in retail shoe stores and then I decided to do something in my life. Did an IT diploma then did a degree and I started working in the IT side. I pretty much started as a developer because that was where the money was and so that's where you wanted to go. I didn't stay as a developer long. Okay. All right. I was a terrible developer so I wasn't good at it. It was frustrating.

    Gerald Cadden:

    I moved into some pre-sales work and that led me to doing business analysis and I really liked the BA work because I got to work with people and see changes. I could work with the developers, still got to work really directly with the customer which was much more interesting for me. So I spent a lot of time in BA doing the development work, doing business process reengineering my transitioned over to rational unified process. When it was around spent countless hours writing use cases doing your mail diagrams, convincing people on how to make the changes on those. And then Agile came along and I had to make a complete brain switch. So all of this stuff that I'd learned and depended on as a BA suddenly disappeared because Agile didn't require that as an upfront way of working. It required that to be in the background if you wanted it and it was more a collaboration.

    Gerald Cadden:

    So about 2004, 2005 started working with Agile a lot more by this time I was living in the U.S. So that's where I got my agile experience, stayed there for a long time. Got great experience and then I moved over to working with SAFe around 2011. The catalyst for that as I was working for the large financial firm in New York with a team there. And we were redesigning a large methodology for them to implement Agile at scale. Went to a seminar in 2011 at an Agile conference saw Dean Leffingwell presentation on SAFe and just looked up and went, "Well we can stop working on our methodology. It's done."

    Gerald Cadden:

    So hardly after that meeting I ran outside and tackled Dean Leffingwell because I wanted him to look at my diagrams and everything and give me some affirmation that I was doing the right thing. Dean is got a very frank face and he pulled his frank face and he looked at me and just said, "You know what? Just use SAFe?" And I'm like, "Yeah, we will." And so I started my SAFe journey around that time and we implemented that financial company and I've been on that journey ever since.

    Sean Blake:

    So take us back 10 years ago to 2011. And you're working at this financial company, you've heard of this concept of SAFe really for the first time you started to implement it. How did the people at that company respond to you bringing in this new way of thinking this new framework? It sounded you already had the diagrams on the frameworks and the concepts forming in your mind did you find that an easy process? I think I already know the answer, but how complex was that to try and introduce SAFe for the first time into an organization of that magnitude?

    Gerald Cadden:

    Yeah, this is a very large financial firm, a very old financial firm so very traditional ways of working. So what's interesting is the same challenges SAFe comes up against today they're present before SAFe even began. And so the same challenges of the past management approaches trying to move to faster ways of working was still there. So as we were furiously drawing diagrams in Visio, trying to create models for people to understand it was hard to create a continuum of knowledge and education that would get people to move from the mindset they had to the mindset we wanted them to have. And it was an evolving journey for myself and the team that I was working with. I work with a really great guy and his name is Algona, a very, very smart man.

    Gerald Cadden:

    And so the two of us we're always scratching our heads as to how to get the management to change their minds. And we focused on education, but it was still a big challenge. I finished on the project as they started with SAFe. I moved to different management role in the company that we continued the work there. Michael Stump he used to work for Scaled Agile I think he works now at a different company, but he continued a lot of that work and did a really good job and they did implement SAFe. They made changes, but they faced all the same challenges. The management mindset overcoming moving away from the silos to a more network structured organization. Just the tooling, just the simple things was still a challenge and there's still a challenge today. So the nature of the organization is still evolving even in the modern day Agile world.

    Sean Blake:

    You mentioned there that part of the challenge is around mindset and education. Have you found any shortcuts into how you change a team's mindset? The way they approach their work, the way that they approach working with other teams in that organization? I assume the factor of success has a lot to do with, has the team changed their mindset on the way they were working before and now committed to this new way of working? And can you talk to us a little bit about how do you go about changing a team's mindset?

    Gerald Cadden:

    Maybe I'll change the direction of your question here, because what I've found is usually you don't have to work too hard to change the mindset of a team. Most of the teams are really eager to try new things and be innovative. You only come across some people in teams who may be their career path has got them to a certain point where they're happy with the way the world is and they don't want to change. The mindset you really need to change is around that leadership space and that's still true today. So the teams will readily adapt if management can create the environment that allows them to do it and if they can be empowered. But it's really... If you want to enable the team it's getting the leadership around them to change their mindset, to change the structures that are constraining the teams from doing the best job they can.

    Gerald Cadden:

    And so that for me was the big discovery as you went along and it's still true today. As Agile has been evolving I've noticed that people don't always put leadership at the top of the list of challenges but for me it's always been at that top of the list. A lot of people want to look at leadership and say things about them unflattering things, but you have to remember these are human beings. And the best way to come to leadership is to really begin with a conversation, help them understand. They know the challenges, but we need to help them understand what's causing the issues that are creating those challenges.

    Gerald Cadden:

    As you work with them and educate them you can to open their minds up a little more. Does that mean they'll actually change? Not necessarily. Political motivations, ideologies other things constrained leadership from moving. But conversations and education I think are the way to really approach leadership. And getting to know them as a person, take an interest in their challenges, take an interest in them as an individual. So create that social bond is an important thing. As a consultant that was always hard to do because as a consultant you're always seen as an external force and it's hard to build that somewhat social relationship with that leadership and build that trust.

    Sean Blake:

    Yeah, that's so true. Isn't it. I remember on an Agile transformation that I was on previously, how Agile coach really would spend just as much time with the leadership team as they would with us the Agile team. And it seems strange that the coach was spending so much time trying to really coach the leadership team on how they should think about this new way of working, but you put it in the right context there it's so important that they create that environment for their people and for their teams to feel safe in trying something new. Yeah, that's really important.

    Gerald Cadden:

    I think if you looked at how Agile evolves, when you look at the creation of the Agile manifesto and its principles and then the following frameworks like ScrumXP, et cetera it evolved from a team perspective. So everybody made the assumption that we needed to create these things for the teams to follow, but as people worked with teams they found that it wasn't the teams at all the teams adapt, but the management and the structures of the organizations are not adapting. And so that's really where it went.

    Gerald Cadden:

    I can't recall the number of countless Scrum implementations you worked on and you just hit that ceiling of organizational challenges. And it was always very frustrating for the teams. I think there's a an opposite side to that too is that too many in the Agile world just look at the teams as the center of the world and you can't approach it from that way either the teams are very important to delivering value to the customers, but it's the organization as a whole that delivers value. And I think you really have to sit back and just say, "The teams are part of that how do we change the organization inclusive of the teams?"

    Sean Blake:

    Okay. That's really interesting. Gerald, you've spoken a bit about teams and mindset, when you go into an organization, a big auto manufacturer or a big airline or a financial services company and they're asking for your help, or they're asking for your training, how do you assess where that organization is up to? What's their level of maturity from an Agile point of view? Do you have organizations that are coming to you who have in their mind that they're ready to go SAFe and then you turn up on day one and it turns out no one has any real idea about what that type of commitment looks like?

    Gerald Cadden:

    Yeah, it's a good question. Because I think as I look back at the history of this, in 2011, 2012 when SAFe really got going, as you went forward I mean, there was no concept of where to begin. Consultants were just figuring it out for themselves and like most consulting or most methodologies they got engaged in an IT space and at the team level. And people would try to grow from the team level upwards. And at some point we need to know I've struggled a lot with this because I was just trying to figure out where it is that. So my consulting hat was always on to sit down, talk to people about their challenges, find a way to help figure out how to solve the challenges whether it was going to be Scrum or SAFe or whatever is going to be right.

    Gerald Cadden:

    Those are just tools in the toolbox. But when Scaled Agile as I was working with... Excuse me, as I was working with SAFe, Scaled Agile brought out the implementation roadmap. It produced so much more clarity that came later in my time with SAFe and I wish it had come earlier because it really began to help me clarify that initial thing that we call getting over the tipping point. How to work with the organization you're talking to, work with the right people, understand their challenges, help them understand what causes those problems, which is the more traditional ways of working the traditional management mindset, help them connect SAFe as a way to overcome those challenges and begin to show them. If you looked at the roadmap it's this contiguous step-by-step thing, but what you find in reality is there are gaps between those steps and in those gaps is the time you as a transitional team are having lots of conversation with the management.

    Gerald Cadden:

    If you put them through a training class they're not going to come out of the class going, "Oh, wow that's it. We know what to do." It takes follow-up conversation. You have to have one-on-ones one on many conversations, cover topics of gains so you can remove the assumptions or sorry the misassumptions. So it's a lot of that kind of work that the roadmap its there for those who are implementing SAFe today use it. It is one of the most helpful tools you'll have.

    Sean Blake:

    Awesome. Yeah. I think just acknowledging the difference between the tools in the toolbox and then the other fact that you're dealing with humans and you're dealing with attitudes and motivations and behaviors and habits there's two very different things there really. It sounds you need to take them all together on that journey.

    Gerald Cadden:

    Yeah. A side to that we train so many SPCs like SAFe program consultants. We train them, training them out of classes all the time with us and our partners. The thing that you can, you can teach them about the framework, but you can't necessarily teach them how to be a good consultant or a good... I want to say I use the term consultant and coach, right?

    Sean Blake:

    Yes.

    Gerald Cadden:

    Sometimes I like to say a good consultant can be a good coach, but a good coach can't necessarily be a good consultant because there's another world of knowledge you need to have like how do you sit down and talk to executives? How do you learn the patients and the kinds of questions you need to ask, how do you learn to build those relationships and understand how to work the politics? So there are things outside the knowledge of an SPC that they need to gain. So young people coming in and running to do this SPC course I want to prepare you for everything, but it gives you the foundations.

    Sean Blake:

    So when you're in a organization or you're coaching people to go back to their organization how do you teach them those coaching skills so that when they come in and they've got to learn the politics, they've got to identify the red flags, they've got to manage the dependencies, they've got to bring new teams onto the train. How do you go about equipping that more human and communications of the toolbox really?

    Gerald Cadden:

    I think you can obviously teach the fundamentals of the framework by running through the training courses. But mentoring for me is the way to go. Every time I teach a training class I make it very clear to people when they go back and they're starting a transformation don't go this alone. Find experienced people that have done this and the experience shouldn't just be with SAFe their experience should be having worked with large organizations having experience with the portfolio level if necessary. Simply because there are skills that people develop over years of their career if they don't have at the beginning.

    Gerald Cadden:

    I mean, if I look back at some of the horrific things I had said in meetings and in front of executives my boss would put his hands up in front of his face because I was young and impulsive and immature and I see that today. So when I first came to the U.S I worked with some younger BAs and they would say things in a meetings and you quickly have to dance around some things to, "We didn't really want to say that right now." So I think mentoring is the skill. We can teach you the tactical skills, but teaching you the political skills, the human skills is something that takes mentoring and time.

    Sean Blake:

    Mentoring so important in that context. Isn't it?

    Gerald Cadden:

    Yeah.

    Sean Blake:

    Okay. So let's rewind 12 months ago to March 2020, a month that's probably burned into a lot of people's mind is the month that COVID changed our lives for the foreseeable future. I know that Easy Agile had a lot of content out there, articles about how to do remote PI Planning, how to help your virtual teams work better together and we didn't know that COVID was coming we just saw this trend happening in the workforce and we had this content available.

    Sean Blake:

    And then I was checking out our website analytics and we had this huge spike in what I assume were people in these companies trying to work out for the first time, how to do PI Planning virtually, how to keep very literally their release trains on the tracks in a time where people were either leaving the state, working from home for the first time, it's really like someone dropped the bomb in the middle of these release trains and people scrambling on how we are we going to do this virtually now? Did you have a lot of questions at the time on how are we going to do this? And how have you seen companies respond to those challenges?

    Gerald Cadden:

    Yeah. I remember being in Boulder, Colorado in January of 2020 and I just come back from vacation in Australia and that's when COVID was coming around and you were hearing about things in January, 2020. I was talking with my colleagues and we were wondering how bad this is going to be within two months the world was falling apart. And for us I think a good way to tell that story is to look at what Scaled Agile did. We knew our business that it was very reliant on our partner success and it still is today. And so as we began to see the physical world of PI Planning and training, as we began to see that completely falling apart the company had to quickly adapt.

    Gerald Cadden:

    We already had a set of priorities set for the PI and we implement Scaled Agile internally in the company. At the time we're running the company as a train itself because it's 170 all people. So they had to reprioritize the different epics, we pushed a new features and it was all about what do we need to change now to keep our partners afloat by getting them online and a really good team at Scaled Agile in a really cross-company effort to get short-term online materials created to keep the partners upright so they could keep teaching. They could find ways to do this, to do PI Planning, to do they're inspecting adapts all online. And so we pushed out a lot of material just simply in the form of PowerPoint slides that they could then incorporate into tools like Mural, Al tool. SAFe collaborate we went about developing this and we've been maturing that over time.

    Gerald Cadden:

    And so now we're in a world where we have a lot more stability. We saw a big dip like everybody else, but the question is, are you going to come out of that dip? And so what we did notice within probably even the second quarter of that year where the tail end of it we saw it starting to come up again, which our partners starting to teach more online. So the numbers told us that the materials we're producing were working. So for us it was just a great affirmation that organizing yourself the way we did organize yourself, the quick way we could adapt saved us. So Scaled Agile could have gone the way of a lot of companies and not being able to survive because our partners wouldn't have survived. We had the ability to adapt. So it's a great success story from my perspective.

    Sean Blake:

    Well, that's great. We're all glad you're still around to tell the story.

    Gerald Cadden:

    Yes we are.

    Sean Blake:

    And Gerald, whether you're reflecting on companies you've worked with in the past, or maybe even that internal Scaled Agile example you just touched on. Are there specific meetings or ceremonies or checking points that are really important as part of the Agile release train process? What are the things that really for you are mandatory or the most important elements that company should really hold onto during that really set up stage of trying to move towards the Scaled Agile approach?

    Gerald Cadden:

    So I interpret your question correctly. I think for me when you're implementing the really important things to focus on as a team first of all is the PI Planning. That is the number one thing. It's the first one people want to change because it's two days long and everybody has to come and it can cost companies a quite a significant sum of money to run that every 10 to 12 weeks. And so you will run very quickly as I had in the past in the car company you run very quickly into the financial controller who wants to understand why you're spending $40,000 a quarter on a big two-day meeting. And so they lie, they start questioning every item on the bill, but that's the most significant one.

    Gerald Cadden:

    PI Planning is significant. The inspect and adapt is the other one simply because at the end if you remove that feedback cycle, what we call closing the loop if you remove that then we have no opportunities to improve. So those two events themselves create the bookends what we get started with and how we close the loop, but there are smaller events that happen in between the team events are obviously all important. But more significant for me is the constant, the event for the product management team or program management team how are you going to filter them, excuse me.

    Gerald Cadden:

    Who are going to need to get together on a regular basis to ensure that then we call this the Sync. So this is the ART Sync or the POPM Sync. You need to make sure those are happening because those are these more dynamic feedback loops and ensure the progress of good architectural requirements or good features coming through so that when you get to PI Planning the teams have significant things to work on. So if you had to give me my top three events, PI Planning, inspect and adapt, and the ART Sync and product POPM Sync.

    Sean Blake:

    Awesome. I know there's always that temptation for teams to find the shortcuts and define the workarounds where they don't have to do certain meetings or certain check-ins, but in terms of communication it must be terribly important for these teams to make sure they're still communicating and they don't use the framework as an excuse to stop meeting together and to stop collaborating.

    Gerald Cadden:

    Yeah. I mean, I went through when I started implementing at the large car company in the U.S I decided to rip the bandaid off. They had several teams working on projects and they weren't doing well, when I looked at the challenges and decided we're going to implement SAFe some of the management they were, "Are you crazy? Why would you do this?" But they trusted me. And so we did rip the bandaid off and we formed them all into a not. We launched set up. And I remember at the end of the PIs some of the management have had a lot of doubts that were coming up after they sat through the PI and they said they just couldn't believe how great that was.

    Gerald Cadden:

    Even though the first PI was a little chaotic they understood the work and the collaboration, the alignment, just the discussions that took place were far more powerful for them. And teams were happier, they were walking out to a different environment. So it changed the mood a great deal. So I think the teams their ability to be heard in one of the most significant places is during PI Planning, they get that chance to be heard. They get that chance to participate rather than just be at the end where they're told what to do.

    Sean Blake:

    Mm-hmm (affirmative). So it really empowers the team.

    Gerald Cadden:

    Yeah. Absolutely.

    Sean Blake:

    That's great. So as a company moves out of the implementation phase and becomes a little bit more used to the way of doing things what's the best way for them to go about communicating that progress to the wider organization and then really evangelizing this way of working to try and get more teams on board and more Agile release trains set up so that it's really a whole company approach.

    Gerald Cadden:

    Yeah. A good question. So I think first of all the system demo that we do. So the regular system demos that take place, this is an event where you can invite people to. So when you get to the end of the program increment, the 10, 12, or the eight, 10 or 12 weeks and you're doing your PI system demo that's a chance for you to invite people that may be in the organization who are next on the list and they're going to be doing this, or they're curious, or if you have external suppliers who you're trying to get on board as part of the training have them come. Have them come to these events so they can just participate. They can see what goes on and it takes away some of the fear of what that stuff is. It gives them work much.

    Gerald Cadden:

    So the system demo whether you do it during the PI, but definitely the PI system demo and you want that one. So more ad hoc things and one of the things that I've seen organizations really fail to do is when they're having success the leadership around the train need to go out and I hate the term evangelize, but go out and show the successes. Get out and talk about this at the next company meeting present where they were and where they are now. But as part of that don't share just the metrics that show greater delivery of value show the human metrics, show how the team went from maybe a certain level of disgruntlement to maybe feeling happier and getting better feedback, show with how the business and technology have come closer together because they're able to collaborate and actually produce value together rather than being at odds because the system makes them at odds.

    Sean Blake:

    Awesome. Gerald is there anything else you'd like to share with our audience before we wrap up the episode? Any tips or words of encouragement, or perhaps some advice for those who are considering scaling up their Agile teams.

    Gerald Cadden:

    I think that the one piece of advice again, I'll reiterate back to the earlier point I made is as you are going through the implementation process and you're starting to launch your train and train your teams figure out how you're going to support them when you launch. Putting people through an SPC class or through all the other classes they won't come out safe geniuses. They'll have knowledge and they'll have the enthusiasm and have some trepidation as well, but you need good coaching. So figure out as you're beginning the implementation pattern where you're designing the teams et cetera, figure out what your coaching pattern is going to be. Hire the people with the knowledge and the experience work with a partner for the knowledge and experience. They shouldn't stay there forever if you work with consultants.

    Gerald Cadden:

    Their job should be to come in and empower you not to stay there permanently, but without that coaching and coaching over a couple of PIs your teams tend to run into problems and go backwards. So to keep that momentum moving forward for me it's figure out the coaching pattern. The only other one I would say too is make sure that you get good collaboration between product and the people who are going to be the product management role on architecture, get rid of the grievances, have them work together because those can stifle you. Get in and talk about the environments before you launch. You don't want funny problems when you, "Oh, the architecture is terrible." Okay. Let's talk about that before we launch." So just a couple of things that I think are really important things to focus on before you launch the train.

    Sean Blake:

    Awesome. I really appreciate that Gerald. I've actually learned a lot in our chat around. It's the same challenges that you had 10 years ago it's the same challenges that we have today. The really the COVID is the challenge of how do you focus on the mindset change. We've talked about the teams are eager to change. There might be a few grumbly voices along the way, but really it's about leadership providing a welcoming and safe environment to foster that change and the difference between being a coach and a consultant, the importance of mentoring. Wow we actually covered a lot of ground didn't we?

    Gerald Cadden:

    I may get some hate mail for that comment, but...

    Sean Blake:

    Oh, we'll see. Time will tell. Thanks so much Gerald for joining us on the Easy Agile Podcast. And we appreciate you sharing your expertise with us and the audience for the podcast. Thanks for having you.

    Gerald Cadden:

    Happy to do it anytime. Thanks for having me here today.

    Sean Blake:

    Thanks Gerald.

  • Podcast

    Easy Agile Podcast Ep.27 Inclusive leadership

    "It was a pleasure speaking with Ray about empowering teams and helping people reach their full potential" - Mat Lawrence

    Mat Lawrence, Chief Operating Officer at Easy Agile is joined by Ray Arell. Ray currently works as the Director of Agile Transformations at Dell Technologies, is the host of the ACN Podcast, and the President Of The Board Of Directors for the nonprofit Forest Grove Foundation Inc.

    Ray is passionate about collaborative and inclusive leadership, and loves to inspire and motivate others to achieve their full potential. This is exactly what Mat and Ray dive into in this episode.

    Ray and Mat explore the concepts such as inclusive and situational leadership and the connection to agile ways of working, empowering the organisational brain, and fostering authenticity within teams.

    This is a fantastic episode for aspiring, emerging and existing leaders! Lots of great tips and advice to share with colleagues and friends and understand the ways we can be empowering and enabling one another.

    We hope you enjoy the episode!

    Transcript:

    Mat Lawrence:

    Hi folks, it's Mat Lawrence here. I'm the COO at Easy Agile and I'm really excited today to be joined by Ray Arell. Before we jump into our podcast episode, Easy Agile would like to acknowledge the traditional custodians of the land from which we're broadcasting today, the people of the Gadigal-speaking country. We pay our respects to elders past, present, and emerging, and extend that same respect to all Aboriginal Torres Strait Islander and First Nations people joining us today. Ray, thanks for joining us today. Ray is a collaborative and inclusive leader who loves to inspire and motivate others to achieve their full potential. Ray has 30 years of experience building and leading outstanding multinational teams in Fortune 100 companies, nonprofits, and startups. Also, he's recognized as a leading expert in large-scale agile adoptions, engineering practices, lean and complex adaptive systems. So Ray, welcome, really good to have you on the podcast today.

    Ray Arell:

    Thank you.

    Mat Lawrence:

    Love to get started by understanding what you enjoy most about being an inclusive leader and working with teams.

    Ray Arell:

    Yeah, so I've been in leadership probably for about 15 years, leading teams at different sizes. When you have the more intimate, smaller teams of maybe five or six people, upwards of teams that are upwards of several hundred people working within an organization that I might be the leader of. And what I enjoy the most about it is just connecting with the talented people that do the work. I mean, when you go into leadership, one of the things that you kind of transition from is not being the expert person in the room that's coding or doing hardware development or something else. You have these people who are now looking for direction or vision or other things in order for them to give them purpose in order to move forward with their day.

    And I enjoy coaching. I enjoy mentoring. I mean, a lot of my technical side of me is more nostalgia now more than it is relevant with the latest technologies. There's something rewarding when you see somebody who can, if you think of Daniel Pink's work of autonomy, mastery and purpose, that they suddenly find that they are engaged with the purpose that we're doing as an organization and then the autonomy for them to just do their day and be able to work and collaborate with others. And that's always been exciting to me.

    Mat Lawrence:

    I can relate to that. Yeah. I think in our audience today we're going to have a mixture of emerging leaders, aspiring leaders, and experienced leaders. I'd love to tap into your experience and ideally rewind a little bit to earlier in your career when you were transitioning into being a leader. And I'd love to understand around that time, what were some of the successes that you saw in the approach that you take that you've been trying to repeat over the years?

    Ray Arell:

    Well, I think early on, I think, especially when you grow up through the technical ranks, and suddenly at least the company that I was with at the time, very expert-based culture, if you were the smartest person in the room, those are the people that they looked at and said, "Okay, we're going to promote you to lead, or we're going to promote you to manager or promote you into the leadership ranks." I think looking back on that, I think Ray 2.0 or Ray 3.0, whatever version I was at the time, that I very much led from that expert leadership stance, which is sort of I know what is the best way to go and approach the delivery of something, and everyone should be following my technical lead for however this product comes together.

    And I don't think that was really a good approach. I think that constrained people because you ended up being more or less just telling people what to go do versus allowing them to experiment and learn and grow themselves in order to become what I had become as a senior technical person. And so I think lesson learned number one was that leading a team from an expert slant I think is probably not the best approach in order if you're going... especially if you think of agile and other more inclusive teamwork type of projects, you're going to want to give people more of a catalytic or a catalyst leader type of synergistic-based leadership style so that they can self-organize and they can move forward and learn and grow as an engineer.

    Mat Lawrence:

    Are there any times that stand out for you where you got it horribly wrong? I know I've got a few stories which I can happily share as well.

    Ray Arell:

    I'd love to hear some of yours. I think horribly wrong I think is... The question is is anything ever really not fixable, not recoverable? And in most cases, most of the issues that we've dealt with were recoverable. I think that looking at, and again, kind of back into that stance of well, am I creating a team or am I creating just a group of individuals that are just taking their work from the manager and I'm passing them out like cards type of thing... I think early on, probably the big mistake was just being too controlling, and the mistake of that control meant that I couldn't have a vacation. Others were dependent versus being interdependent on one another. And I think that made the organization run slower and not as efficient as it could be.

    Mat Lawrence:

    I've certainly been guilty of that same approach earlier in my leadership career where I became the bottleneck, absolutely.

    Ray Arell:

    Yeah. Exactly.

    Mat Lawrence:

    And to recognize that, it can be quite hard to undo, but it's definitely worth persevering with. Something else that I was fortunate to get some training in situational leadership, oh, probably nearly 10 years ago now. And that really opened my eyes to an approach, the way I was treating different people in my team. But I was treating them the way I first judged them. So if I saw [inaudible 00:07:01] an expert and a master, I would treat them as an expert and a master in all things. And [inaudible 00:07:05] if someone was less capable at that point in their career, I'd kind of assume the same thing. And so I would apply the same level of direction or lack of direction to those people for everything. And in situational leadership, the premise for those who don't know at home, is you change the level of direction that you give depending on the task at hand. Have you used that approach or something similar to guide how you include people in different ways?

    Ray Arell:

    Well, in order to include people, I think part of it is you need to... As you said, you were situationally looking at each person, and you were structuring it in a way that was from a way, an approach, of very individualized with somebody. I think the philosophy that I... Not everyone is very open or can communicate very well about their skills and their strengths, or in certain cases some people, they might be good at something but they don't exercise it because they themselves feel that that's not one of their strengths, but in reality is it is. So I think that when you're saying from a situational leadership perspective, when you hear somebody place doubt that they could be the one that could do something or to take up, say, even leadership of something, I think part of that just gets into that whole coaching and mentoring and really setting it up and helping them to be successful through that.

    And I think from an inclusive perspective, I think there's a set of honesty that you have to bring into your work and humility about being humble about even what you've accomplished. Because in engineering in particular, you tend to see that when you put people into a room, the people who are newer will sit back, and they will yield to who they think has the more experience. And reality is that they came from, say, let's say they just got fresh out of college. They actually might have more skills in a particular area based upon what they just went through in their curriculum that we might not have. And so the question of how do we use the whole organizational brain in order to bring all of the ideas onto the table, I think at times it requires us to be able to be effective listeners and to sometimes just pause and allow people to have the floor and pick up the pen and not hog the space, if that makes sense.

    Mat Lawrence:

    It really does, and I think I've seen that in every company I've worked in to some level. I'd be really interested to tap into how you go about addressing that scenario. For the people who are listening that would face that situation, it might be the first time they've been a leader and seeing that scenario and observing it. Is there any advice you would give them to help change that dynamic?

    Ray Arell:

    Well, one, just becoming aware of it. I frequently doodle when I'm in a group of people, and what I'll do is I'll sit there and I'll put dots on a paper of where people are at in the room, and then I start drawing lines between those individual dots if I see the communication happening between certain players. And what's interesting is if you watch that over about a 15-minute period of time, you start to see this emergent pattern that maybe someone's domineering the conversation or they're the focus point of the conversation, and it isn't going around the full room. So then that's when you get to be a gatekeeper and you invite others into the conversation. And then you politely help the ones who are being dominant in the conversation to pause, to just give space and allow those other people to talk and to get that out.

    And then I think the question of whether or not what the person says may sometimes be coherent or not coherent to the conversation, or maybe they're still trying to learn about just dynamics of everything. You just have to help to get, sometimes, to get that out of people, and use open words to basically open sentence... I mean, some open questions to pull that out from them. And I think that works really well.


    Mat Lawrence:

    I love that. I'm a doodler as well. I'm an artist originally in my early career, and I've worked my way into solving problems through tech a long time ago now, but I still can't... I need that physical drawing to help my mind think as much as anything else [inaudible 00:12:30] than just doodling on a pad.

    Ray Arell:

    Same here.

    Mat Lawrence:

    Something that you said a little earlier, we touched a little bit on inclusivity. In your LinkedIn bio you talk about being an inclusive leader who loves to inspire and motivate others to achieve their full potential. Something I'm really passionate about is that last part in particular, is helping people achieve their full potential. It's why I love being a people leader and a COO. You get to do that across a whole company. I'd love to first touch on the idea of being an inclusive leader. How do you define what it means to be one?

    Ray Arell:

    Well, inclusive leadership, there was an old bag that I used to have, a little coaching bag that I used to carry around with me. And at the very top of it said, "Take it to the team," was the motto that was at the top of it. And at the bottom of the bag it basically said, "Treat people like adults." Were the two kind of core things that I think part of what being inclusive is is that I have to accept the fact that, yeah, I'm a smart person, but do we get a better decision if we socialize that around the team? Do we see what other ideas or possibility thinking? Sort of in the lean sense, make the decision as late as you can.

    It's more towards the Eastern culture of, well, if I keep the decision open, maybe we're going to find something that's cheaper or better or even just more exciting for our customers. And so I think part of that is knowing that you don't have to be the one that has to make the decision. You can let the team make the decision. And we all embrace because we're empowering ourselves with this was what we all thought, not just what Ray thought, which I think is cool.

    Mat Lawrence:

    There's a second part to that piece you talked about in your bio around helping motivate others to achieve their full potential.

    Ray Arell:

    Yeah, yeah.

    Mat Lawrence:

    Yeah. Let's talk about where that came from for you, that passion, and what are some of the ways you look to help emerging leaders reach their full potential?

    Ray Arell:

    Yeah, I mean, I was lucky enough when I joined Intel Corporation that Andy Grove was still running the organization at the time. As a matter of fact, he taught my Welcome to Intel class. At the time when I joined Intel, there was only about 32,000 employees. And here's the CEO, founder of the company teaching the Welcome to Intel class, which I thought was incredibly cool, a great experience to have. He oozed this leadership, whatever mojo or whatever it is he is got going out into the environment as he's talking about the company. But he was really strong on the one-on-ones, the time that you can spend with your manager or others within the organization because you can have a one-on-one with anyone within the company. And he encouraged that. And I think that helps to... When somebody is trying to figure it out, they're brand new to the company, and you get a standing invitation from the CEO that says, "You can come and have a conversation with me," I think that sets the cultural norm right up front that this is a place that's going to assist and help me along my career.

    And I could tell you that there's been a number of different times that those developed into full-blown, "I'm the mentee and they're the mentors." And in those relationships over time, it's sort of like then you say, "Well, I'm going to pay that forward." Today I have at least six or seven mentees that have all sorts of questions about how do they guide through their career or if they had some specific area that they wanted to go focus on. And it's their time to pick my brain. And in certain cases, if I don't have the full answer, I can guide them to other mentors that can help them to grow.

    Mat Lawrence:

    I love that approach of pay it forward that you touched on there. It's definitely something that I've been trying to do in the last couple of years myself, and I wish I'd started sooner mentoring. I've had the privilege of working with some amazing leaders in my career who I've learned a lot from. And once I started mentoring, I realized how much I learned by being a mentor because you have to think. You really think about what these people are going through and not just project yourself onto them. And it validates the rationale about why you do things yourself, why you think that way. And it forces me to challenge myself.

    And I think if there's anything... I talk to some of the younger people at work who are emerging leaders, and they're exceptional in their own way. They've all got very different backgrounds, but a lot of them don't feel like they're ready to be a mentor. They really are. They're amazing people. And I wonder, have you seen people earlier in their careers try and pass it forwards kind of early on or do people feel they have to wait until [inaudible 00:18:22]?

    Ray Arell:

    I think it depends. One, I think the education system, at least in the United States, has shifted a bit. When people go for their undergraduate degree, it used to be just they were by themselves, they did their book studies. Very little interaction or teamwork was created for this study. I mean, back when I got my electrical engineering degree, it was just me by myself. There might be occasional lab work and lab projects, but it wasn't something that was very much inclusive, nor did they have people step up into leadership roles that early. I look at now my daughter who's right now going to the university, and everything is a cohort group. There's cohorts that are getting together. The studying that they do, they each have to pick up leadership in some regards for some aspect of a project that they're working on. So I think some of the newer people coming into the workforce are sort of built in with the skills to, if they need to take up leadership with something, run a little program, run a project, they've been equipped to do it. At least that's what I've seen.

    Mat Lawrence:

    I love that concept. Something that I've been observing and I talk it about a lot with our leadership team and our mentor exec teams for the [inaudible 00:19:56] as well. A lot of the conversation that comes up is around team dynamics, team trust, agility within teams, and to generally try and empower teams, set them up so they can be autonomous, they are truly empowered and they're trusted to make great decisions and drive work forwards. You've got a lot of experience in agile and agile [inaudible 00:20:21] agile leader. In your experience leading agile teams, those adoptions and those transformations, I'd love to understand if you see there's a connection between being agile as a team and those traits that an inclusive leader will have. Is there a connection there in your mind between what it means to be agile and be an inclusive leader?

    Ray Arell:

    I think so. Because if you think of early on, they established that servant leadership was a better leadership style for agile teams. And so I think when we talk about transformation, some of the biggest failures that occur tend to be more based upon not agile, but on issues of trust and other sort of organizational impediments that had already existed there before they got started. And if they don't address those, their agile journey is painful.

    I've heard people say that they've gotten Scrummed before, using it in a really kind of derogatory way of thinking that, well, instead of getting a team of empowered people to go do work within the Scrum framework, they end up being put under a micromanagement lens because the culture of the manager didn't shift, and the manager is using it as a daily way to making sure that everyone is working at 120% versus what we should be seeing in the pattern is that the team understands their flow. They're pulling work into the team. It's not being pushed. And those dynamics I think are something that if leadership doesn't shift and change the way that they work, then it just doesn't work in organizations.

    Mat Lawrence:

    In the many places that you've worked and coached and guided people on, you've started to come across... There's a term that we've started to use of agile natives where people who've really not known any different because so many companies in world are going through agile transformations, and that'll continue for a long time. But as some companies are born with agility at the forefront, have you experienced many people coming through into leadership roles that don't know anything but true agility and really authentic agility as you've just described?

    Ray Arell:

    Well, I think it's kind of interesting because as you talked about that phrase, I was thinking about it, about, well, if you knew nothing else... But I can also say that you could become native after you've been in the culture for a period of time as well. So you can eventually... That becomes your first reaction, your first habit is pulling more from the agile principles than you would be pulling from something else. Yeah, there are those people, but it's been interesting watching companies like Spotify or watching Salesforce or watching Pivotal, and I can just go down the list of companies that have started as an agile organization, they got large, and then suddenly the anti-patterns of a large company start to emerge within those companies. So even though the people within the smaller tribe are working in an agile way, the company slowly doesn't start to work in an agile way any longer. It falls underneath a larger context of what we see happening with the older companies.

    And I think some of that could be the executive culture might be just coming in where they bring somebody from the outside who wasn't a native, and they have a hard time dealing with the notion that, well, we're committing to a delivery date sometime over here, and we think we're going to hit it. But no, we don't have what would be affectionately known as a 90% confident plan that says that we've cleared all risk out of the way. And yeah, it's going to absolutely happen on that day. And some of those companies get really... They feel that they have to commit everything to the street, and if they don't meet it, they've already glued those in to some executive bonus program, ends up driving bad behaviors, unfortunately,

    Mat Lawrence:

    Yes, I have been there. I'm assuming that in our audience, we're going to have people who are transitioning into more senior leadership roles. They're not emerging leaders, they've been doing it for a while, and they've probably run some successful agile teams at the smaller level as you've described. For those people who are moving into the more senior roles, maybe into exec positions, is there any guidance that you'd give them for navigating that change and trying to maintain, through agile principles and what it means to be agile, in those more senior roles?

    Ray Arell:

    Yeah, I think part of it is the work that you did as a smaller team, everything still can scale up. And I hate to use the word scale because I think scale is kind of... People kind of use it... What would be the right word? It's misused in our industry. I think values and principles are scale-free. You can still walk each day walking into your team and still embracing those 12 principles, and you're going to do good work. The question is though, is if you're doing that at the lower level, say with a Kanban board, the question is, what does it look like when you're at your executive desk? What is the method that you go pool? If you look at most of the scaled frameworks that are out today, there's very little guidance that's given to what should be in the day in the life of an agile executive. What should that look like?

    And for me, if I think about the business team, the management team is working with the delivery teams daily. They should be doing that. So what are you going to put in place for that to facilitate and occur? What are you going to do about... stop doing these big annual budget processes. Embrace things like the beyond budgeting or other things where you're funding the organization strategically, and you're not trying to lock everything in on an annual cadence, but yet your organization beneath is working every two weeks. So you should be able to re-move your bets with any organization based upon the performance of each sprint. Can you do that?

    The last one is probably the most important one, is impediments. And that is how fast does it take information to go from the lowest part of the organization to the highest point of the organization? And if that takes three weeks, two weeks, or even sometimes later for certain organizations, optimize that. How do you optimize an impediment that you can personally help to go remove for people so that they're not slowed down by it any longer, whatever that might be?

    Mat Lawrence:

    You're touching on something there, which I think is a fundamental part of being agile, which is that ability to learn and adapt, and you can only learn when you are aware of what's happening around you, you can observe [inaudible 00:28:39] to it.

    Ray Arell:

    Well, I said something a couple months ago, and everyone just went, "Why did you say... I can't believe you said that out loud." It's the quiet stuff out loud sometimes. [inaudible 00:28:53]. We were trying to get a meeting together to go fix one of these impediments, and all the senior leaderships was busy. They were busy. And my question was is if this isn't the most important thing right now for us, what do you do? Really, are you doing in your day if this one isn't the highest priority that you walk into? And the questioning senior leaders that maybe they're not paying attention to the right things, and sometimes speaking that truth to power is something we have to do every once in a while.

    Mat Lawrence:

    I agree. That level of candor is definitely required at all levels and being able to receive that feedback so you can learn and adapt as an individual, as we were talking about earlier, about being adaptive as a leader, but also as a team. There's a point that I'd like to touch on before we wrap up, which is as you climb up the career ladder and you get into a more senior position, and then you become responsible for a broader range of things, particularly as you start reaching that executive level, I've witnessed people struggle with the transition from being the person, as you talked about right at the start of this discussion, being that person who knows everything and who can direct and have all the answers into someone where I see your job changes to being the person who can identify what we know least about, what we as an exec team know least, where we're... have the least confidence, where we see the impediments and we don't know what to do with them.

    How do you go about guiding people to embrace that? Because I think what I see is the fear that comes with that, almost a fear of exposure of, "Oh, I'm admitting to people I don't know what I'm doing." And I've been rewarded through my entire career by becoming more of an expert, and suddenly my job is to be the person who's confident enough to call out, this is what we don't understand yet. Let's get together and try and resolve it. When the risk is greater, the impact is greater, and you're responsible for more things, how do you help people transition into that higher-level role?

    Ray Arell:

    Well, I think part of it is can they let go of that technical side, having to have their hands dirty all the time? And I've seen certain leaders that, really, somebody needs to go back and say, "Are you really sure that this is the career that you're wanting to go to? You seem to be more into wanting to be into the nuts and bolts of things, and maybe that's the best place for you because you feel more comfortable in that space." The other aspect though, as they transition, I think is again, trust becomes critical. Trust the people that are working for you, that they're not coming in and being lazy and you have to go look over their shoulders all the time because you feel that they might not be being productive or other things. You have to have the ability to say that, look, that the people that you hired are talented, and they are moving us towards our goals.

    I think what becomes more critical for the health of the organization is that you have to do a much better job at actually saying, "Okay, well, here is our vision," whether it be a product vision, whether it be the company's vision, whatever that might be, helping people to understand what that North Star is, and then reinforcing that not from a perspective of yourself, but a perspective from the customer. And I think this is where a lot of companies start to drift because they start to optimize some internal metric that, yeah, that'll build efficiency within your organization. But what does the customer think? And constantly being able to represent as, if you think of from an agile perspective, the chief product owner of the organization, to be able to represent this is what the customers need and want and to be able to voice that in the vision and the ambitious missions that are set up for the organization. Make it real for people.

    And then the last part of that is not everything is going to happen and come true. If you read most executives' bios, there's lots and lots and lots and lots of mistakes. And I remember this of one leader, he was retiring. And I thought this wasn't most awkward time that he actually did this. He actually went up on the stage and he talked about his biggest failure. Now, throughout my career working with this person, I always wondered whether or not they were human. And then on the day of this person's exit, they finally decided to give you a few stories about mistakes that they made. And I think that he really needed to share those stories much, much earlier because I think people would've probably found... They would've been a little stressed working around him. And it would also show some vulnerability for you as a leader to say that you don't have everything figured out, and sometimes it's just a guess. We think that this is where the product needs to go.

    And then as soon as you put it in front of the customers, they're going to tell you whether or not... If you take the Cano model and suddenly you're going to hit this is the most exciting thing since sliced bread, are they going to love it or are they going to go, [inaudible 00:35:12]. I'll take it if it's free. You get into this situation where it's like, well, we can't charge as much. But I think those stories become important and anchor organizations. One other aspect of this is I think that by having somebody who's approachable and can relay those stories effectively into the organization and talk about these things, I think then that opens the door for everyone else to do it as well. Because like it or not, humans are hierarchical in the way that we think about things. A lot of people manage up, so they mimic leaders. So be that leader that somebody would want to mimic.

    Mat Lawrence:

    I think that's great advice, Ray. The connection for me that's run through this whole conversation is around engaging with your work authentically, whether it's the team that you're trying to lead, whether it's the agile practices at whatever scale and level that you're operating at. And to build that trust to enable that to work requires that level of authenticity.

    Ray Arell:

    Yeah, exactly.

    Mat Lawrence:

    I would love, as we wrap up, for you to leave any final tips or advice for both current and emerging leaders on that topic. If there's a way beyond just sharing your own personal stories, how would you advise people? What would you leave them with to build some trust in their teams?

    Ray Arell:

    Well, a couple of things. Number one, you have to be mindful about who you are as a person. Again, like I was saying, that people manage up. And if you send out an email at three o'clock in the morning, and five minutes later your people were responding to you, then you're not being a really good role model of a good work-life balance. So a lot of your tendencies will bleed off into the organization. So regardless how you assess yourself, do an assessment of your leadership, where you think it is. Harvard Business Review, a long time ago, put off the levels of what they saw as leadership models. And the lowest level is the expert and the achiever-based leaders. And if you're one of those, those are not very conducive to a good agile or collaborative culture. So if you're currently setting in that slant, then you should look ways of being able to move yourself more to a catalytic or a synergistic-based leader.

    And that journey's not an easy one because I went through that myself. It took years in order to pull away from some of those tendencies that you had as an expert leader. And as an example, an expert-based leader tends to only talk to other experts. If they perceive somebody not to be an expert of something, they tend to discount those individuals and not engage with them. And so again, the full organizational brain is what's going to solve the problem. So how do you engage the entire organization and pull those ideas together?

    The other one is that as you go into, from an emergent leader perspective, I think you said it yourself earlier, and that's not just the bias of you're not an expert, I'm not going to talk to you, but any bias that you might have can affect the way that you lead and judge an individual, and really could limit or grow their career based upon maybe a snap judgment that you might have had. So I think you have to be mindful of your decisions that you're taking within the organization and especially the ones you're making of people. And so you got to be careful of those.

    The last one is probably just... And this gets into the complex adaptive systems space. Not everything is cut and dry, black and white, or mechanistic, meaning that we can take the same product, redo it again and again and again, and we're going to get different answers. We're going to get different requirements. We're going to get different things. It's okay for that stuff to be there. And it's okay for the stuff that's coming out of our products to be different every once in a while, and specifically because everything, it's a very complex environment. Cause and effect relationships and complexity is, customer can change their mind, and we have to be comfortable with a customer changing their mind. Our customer might have new needs that come up.

    And likewise, our employees, they sometimes will have change of thought or change of what they are excited about. How do you encourage that? How do you grow those individuals to retain them in the company, not to use them for the skill they have right now, but how do you play the long game there? And I know I'm getting a little long-winded here, but the thing that I see most, even with all the layoff notices that are going on right now, is that that company's not playing the long game. I think that's a bad move because all you're doing by letting an employee go is enabling your competitor with a whole bunch of knowledge that you should be retaining. So anyway, I'll cut it short there.

    Mat Lawrence:

    Right. Thank you for sharing your wisdom with us today. It's been an absolute pleasure. I've really enjoyed the chat. So yes, thank you for joining me on the Easy Agile Podcast.

    Ray Arell:

    Awesome. Thank you for having me.