AgileData #47 - Ways of Working with Scott Ambler
5 Nov 2023 · 71 min
Scott Ambler explains why teams should build their own process instead of following best practices. He advocates treating data work as usage-driven, picking techniques from a toolkit based on context, and measuring what actually improves your workflow.
Chapters
Foreign.
Welcome to the Agile Data Podcast where we talk about the merging of agile and data ways of working in a simply magical way.
Foreign.
To the Agile Data Podcast. I'm Shane Gibson.
And I'm Scott Ambler.
Hey Scott, thank you for coming on the show. I am mega excited about this one. I've been a big fan of your work for many years. And what are we going to talk about today is this idea of ways of working. How can teams build their own ways of working? Why should they do it? How do we enable them? What steps should they start with? But before we rip into that, can you just give the audience a bit of background on your career in this world of agile and data and ways of working?
Yeah, definitely. So I I've been in the IT space since the the mid to late 1980s, working in various positions in various industries and various countries and I'm actually based in Toronto, Canada. But I was international an international traveler for many years and I guess I still am. I started out as a programmer but very quickly moved into the data space, became a baby data architect, I guess you would say a phenomenally junior data architect at a very large financial institution and pretty much did their first data warehouse long before data warehousing was even a concept and learned a lot. I actually was the holder of most of the corporate data at one point, at least the metadata about the corporate data at one point. And the reason why the data architecture group had brought me into the fold was based because I had more information about what was actually going on than they did and people knew it. Then I moved into the object oriented space and human computer interaction. The user experience now and modeling did some work in the mid-1990s in the CMM space, a very heavy process at the time. I actually wrote the first CMM level 5 compliant process if you instantiated it fully for object oriented development. And basically once I finished that work off, was pretty much disgusted by CMM and moved on from that and went to the other end of the spectrum and started focusing on agile stuff, UML and Agile, Agile modeling, Agile data and it took on a lot of the early 2000s, took on a lot of the not so sexy topics in the Agile space, like modeling documentation in particular. And it was interesting. Now we take it for granted, but back in the day it was radical, like doing things on post IT notes and on whiteboards and although to be fair people were doing it but nobody was talking about it. And if you pick up modeling books from the late 90s, early 2000s, there isn't a single sketch in them. There isn't, except for the books that I wrote and you got to take those out of play on that one. Yeah, I keynoted at an academic modeling conference once and basically ripped into them for that. Right. So I had their conference proceedings in my hand and it was really good, some really solid papers. But basically I was asking the audience, do you guys sketch and use post it notes? Raise your hand. And they're all raising their hands and raise your hand if you've got a paper in this conference proceedings. And it was really thick, good portion of the audience had published. And I said, so how many of you have included sketches in your papers? Everybody's hand went down and I knew it would because I flipped through the proceedings and I said, okay, so this is a problem. You're not writing about what you actually do in practice. You're writing about theory, which is why pretty much everybody ignores you. And so that was, you know, wasn't the most popular guy. But anyways, so it opened up the modeling space in the agile world and so all the things we're doing now were really was radical 20 some odd years ago. Also did a lot of work in the data space. Did some basic fundamental stuff there long before other people can, including yourself and all the good work that you've been doing there. And arguably it was too early. It was a good 10 to 15 years too early because the data folks just couldn't accept the fact that Agile was real and here to stay and they didn't want to hear it. Agile folks didn't care. Their idea of data knowledge is, oh, it's a database, we'll just encapsulate access to it and that's all I need to do. So no worries. And that would be it, right? And then they go off and make horrendous mistakes. So I did a lot of work there. But then when I joined IBM in 2006, I was their chief methodologist for it with an IBM Rational. And there myself and a few others, including Mark Lynes, developed Discipline Agile Delivery, which then evolved into Discipline Agile and then eventually into PMI's discipline agile toolkit. And that's where we really made it clear that teams should choose their own ways of working, choose their own. Wow. And we described how to do it and different techniques, but it's all about choice and understanding your context and giving up on this concept of best practices. Like best. The term best practices is, it's a wonderful marketing term, but it's an absolute lie and it's what people want to hear, but it's observably not true. The best you can do is let's do the best we can for the context for the situation that we face. What makes sense for me in my situation would be a spectacularly bad idea for you and your situation. So we have to help people instead of telling them what to do and say, this is the official practices of Methodology X and if you do these, then everything will work out for you. Instead, you need to help people understand. Here's the things you need to think about, here's the considerations and the issues that you're going to have to deal with, and here's options to deal with those issues. So choose the right thing for you. Choose the right ingredient off the shelf to make dinner for yourself tonight. Right? And your dinner tonight will be different than what you made last night and the night before. And that's okay. But you need the right ingredients and use them in the right way for whatever mood your family is in tonight for dinner.
I'm a baby in the agile data space. I've only been doing it for probably almost hitting 10 years now, but I remember when I first started this journey I definitely came out of a best practice methodology driven mindset. That's what I got taught when I was learning in my early career. And then I got introduced to this idea of agile and I was like, you're a bunch of weirdo hippies pretty much.
No way. There's just chaos. How the hell can you do that? And I remember there were three seminal things for me that helped my journey. One was a series of books by Ralph Hughes which was giving me the insight of agile terminology and Agile Things in Data Warehousing language. I could see the blending of those two. There was yours around what now I realize was a patent library. A bunch of good practices that have some context and I could pick and mix things that fitted for my customers. And the third one was Lawrence Kaur's Stuff Around Interactive Modeling with Customers using Stickies. And I delivered a session for a bunch of data engineers just lately and I was showing them how they can use the seven W's and BIM to elicit data requirements early and lightly. And one of the questions that came back from one of the engineers was why don't you just use ERDs? And for me that was, yeah, you try and do interleur relationship diagram modeling with a stakeholder and see what kind of feedback you get because you lose them. I think in the data domain we still haven't adopted that idea of light engagement with our stakeholders with a language they understand to get what we need to do the next step. We view that, that in the data world we've got better, but I don't think we're anywhere near the level of sophistication in the space that we should be.
Exactly. Recently I've developed and started delivering a workshop in agile data warehousing. And I used to do that a few years ago, but then had to stop when I went to pmi because they just weren't interested in the data stuff at all and, or in our enterprise architecture stuff or a bunch of other things they bought and then just put on the shelf, basically and rightfully so. It wasn't their business. But one of the key messages in that workshop is that on a data project, if you're doing a data warehouse or BI solution, you want to be usage driven, not data driven. The data is actually a secondary issue and that blows the minds of the data people. And this data focus is one of the primary causes of their high failure rate is because it's just too narrow and it doesn't really reflect what people want to do. Right. If you look at Lawrence Kaur's work, he talks about data stories and in my stuff I talk about question stories and they're very, very similar concepts, but they're both usage driven requirements. And that's what's critical if you don't know, you know, what questions, how people are going to use the data, what questions they're trying to answer. I don't care what your data structures are, I don't care what you're storing, I don't care what data technologies you're using. It's all nonsense. And this is why if you look at a very classic problem, the data warehousing space is the first release is a loser. And it's because you build it, you release it, and then the stakeholders come along and say, this is not what I want, it's 90% there, but there's 10% that's desperately missing and I can't do anything with this because this 10% is missing, all that sort of stuff. It's not until your second or third release that you get it right, or at least you start getting closer to getting it right. And it doesn't have to be that way. And the final problem is that they wasted, sometimes wasted years doing data modeling and nobody cares. And they don't even keep it up to date. Usually in practice, even they don't care sometimes if nobody's using Your models.
Why did you bother creating them to begin with?
What we're finding now, especially with self service, the whole practice of an analytics engineer, this idea that you can build code that transforms data without modeling and self service has massive value. We allow more people to do the work that used to be done by specialists, but when we go to that model, that self service paradigm, we often lose the rigor or the skill. And we've definitely seen that in the data modeling space. And again, cloud technologies has given us some massive benefits in the data space. So we can now deploy platforms and build them and cobble them together much faster than we used to be able to do in the old days of installing Oracle databases and ODI on servers. But effectively what we've done is we've taken a screwdriver that delivered a hole in a screw nobody wanted, and then we used a power drill to deliver it faster, but it's still a screw in the wrong place. We just delivered it faster. So we've got to get into that model of early feedback. How can we build something small, get some feedback from our stakeholders? Because at that stage we're going to learn what we did wrong, what we misinterpreted, because we don't have a shared language of them as much as we hoped we did. So just thinking about that and just thinking about this idea of way of working, because that's the whole focus of the podcast today, how would you describe way of working? How would you describe wow if you had to explain it to somebody from the beginning?
So your way of working is your process. This is how we go about doing our work as a team, as an individual, as an organization, as the case may be. And the fundamental thing is you want to do what's right for you and do the best that you can in the situation that you face, and always try to get better. What that tells you is you need to understand what context you're in. You also need to understand what you're trying to achieve. In discipline agile, we talked about having process goals. Basically, what are we trying to do and what do we need to be thinking thinking about? So there's a little bit of process knowledge there. Once you understand what you're trying to achieve, like I'm trying to understand the requirements for this data warehouse that we're building, for example, then you need to understand what are my options? How could I go about understanding these requirements? Maybe I could do ards, maybe I could do user stories or data stories or question stories, or use cases, or this or this or this maybe you could do screen sketches or some random data sketch that I've never seen before. Right. But somebody else has figured it out. And the idea is that you've got choices, but which one of those techniques is right for you in your situation, based on what you're trying to achieve, what your skills are, what your culture is, what your preferences are. And then how do you choose which technique is right for you? Particularly when you probably only know one or two of the 15 that I just listed. And number seven was probably your better option. But if you don't know about it and then if you don't know what the trade offs are, how the heck can you make a coherent decision to experiment with it and see if it's right for you? Because just because technique number seven sounds like a good idea doesn't mean you're going to be able to pull it off. I hope you can, but stuff happens. This is the idea race. You've got to have enough knowledge or somebody on your team has to have enough knowledge or you have to have some sort of a toolkit or some sort of magical AI tool perhaps that can give you advice as to, here are your options, you know, here are your choices between them. Choose wisely. Right? So it's the Indiana Jones thing, I.
Think for me that the idea of a toolkit, that kind of what resonates. And just lately I've been on a whole analogy of food in the data space. I don't know, we seem to go back to food as the analogy and I liken it to a buffet. We have a bunch of choices that we can put on our plate. We may have team members that are allergic to egg, so some of those food choices, they're not available to us as a team, given our context. And so what we're doing is we're picking from this pattern library, we're picking from this buffet of choices and we're fitting the ones that work for us given our context and solve our problems. And then we're saying, okay, that looks like it's going to be a good nice meal. Let's try, right? Let's experiment with it. And that's what a lot of teams don't do. I see is they pick things, they draw them, write them down, they therefore become immutable. This is our way of working. And they don't go to the next step, which is actually we're just guessing. We think that pattern is going to solve that problem, but we need to experiment with it, we need to test it, we need to do a retrospective on it that says, did it? Yes. No. If the answer is no, don't carry on doing it. Find something else. Right. If the answer is yes, then lock it in for now. But at some stage you're probably going to change it again. Is that what you found, is that your way of working is incremental, isn't it? It's a toolkit that you're constantly adding to and removing and iterating, as all agilists should.
Exactly. And actually, in da, we used the. The buffet metaphor for quite a while and we also used cooking your own dinner as well, because you could compare that to going to McDonald's and getting the Big Mac meal deal. And yeah, you can eat that every night, but it gets boring pretty quickly and not everybody in the family wants it. The interesting thing about the buffet analogy is that if you actually observe a family at a buffet, everybody gets fed, but they'll all go and choose their own food and they're all much happier than whatever it is you were going to cook them instead. And sometimes you'll pick something. What the. What is this? Wonder what this is. And you'll pick it and it's great. Or you'll pick it and, ooh, that's not for me. And you'll leave it on your plate and it gets taken away a little bit of waste. You had an experiment and some experiments work well and some don't. So it's interesting now. It's a little bit more work for the people. It's not just, I go to the table, sit down and eat what's in front of me. It's, I've got to wander all the way over to the buffet, make my own choices, wander back to my table, eat and maybe rinse and repeat a few times and do that. So it's a little bit more work, but I get a better meal. I get a meal that's going to meet my needs and everybody eats differently. And that's absolutely important to observe because every team is unique, every person is unique, every team is unique. If you want to be effective, you really need to allow your teams to have unique ways of working, just like you allow your children to have pick your own food. The buffet. Now, with my daughter, sometimes I'll say, you can't eat, you can't just go to the dessert part of the buffet. You gotta have some vegetables, you gotta have some real food first, and then you can have some dessert. So you gotta give them some guidance. A little bit of governance is required, but you gotta Be smart about that. Be so you let the kids pick their own food and some experiments don't work out so well. And that's okay.
If we look at the data space, like I said, I think we've lost the art or the skill of modeling to a degree at the moment. It's starting to come back. We always go through waves of decentralization, self service and then moving back to more managed governed skills based and then we go back out again. One thing I've observed is data teams are really good at looking at processes from a data platform point of view. The idea of collecting data, profiling, cleansing, conforming, consuming, they understand that process very well. That's their specialty within that domain. But if we look at business process or team process, that whole idea of process engineering that we had from many years ago, most data teams don't seem to understand that. And they seem to struggle to take this idea of they can map their data process and they can see nodes and links and they can see the first step and the second step and they can see the entry into that step and they can see the exit and they can see what the dependency for the next step is. But when you ask them to do that in their way of working, who's going to do what and then what are they going to produce and then what do they do next? They seem to struggle. And have you found that, have you found that skill of understanding team process and business process and lean process is lost at the moment in the data space or just generally?
I think it's a general issue. I think the data crowd tends to struggle with it more just because all these communities are self selecting. Right. So the people who move into the data community tend to be really good at structural thinking and understanding data and all that sort of stuff. And they might be a bit weak on UI and they might be a bit weak on business processes and stuff like that. So then as soon as you ask them to step out of that safe space for them, then yeah, it becomes a bit of a message. But frankly it is a hard skill. It's a level of abstraction that a lot of people aren't used to thinking at. It's really hard because there's so many it depends situations, right. You really can't describe it well because it's the same old thing, right? You ask people to describe what they do. Tell me about your day and they'll miss 50 things and they'll describe things that they didn't do and that aren't needed and they'll describe Things that only they care about. And if it was to disappear tomorrow, nobody would notice things like that. It's a hard problem and it's going to change anyways. Imagine you had to define your process for tomorrow. Here's what I'm going to do tomorrow. That plan will last maybe 10 or 15 minutes and something's going to happen. Somebody asks you to do something, you get a call, something breaks. Earlier today I was coding and for some reason Python wasn't seeing my GPU anymore, which is problematic because I'm doing some AI stuff, so I really want access to my gpu. So now I'm going to be fooling around for a couple hours, probably trying to reinstall Cuda and all that good sort of stuff. It is what my day is shot.
Because that's anywhere between five minutes and five hours, I don't know yet. But so stuff happens, your situation changes and you're going to change up the way that you work, and that's okay.
If we look at the agile market, at least we've gone to the death by frameworks, right? Death by methodologies, in my view. And naturally, as humans, it feels comfortable. It feels comfortable that rather than building our own toolkit, having to do the cognitive load to go, what are my problems? What can I find? How do I test it? How do I see if it's going to solve that problem in the way I work, it's much easier to get a picture somebody else's drawing with a bunch of steps and then follow it. Have you seen that? Have you seen that the market's moved away from this kind of craft, something that's fit for purpose and customized for you and your team to adopt a standard methodology of framework yet again.
Yeah, so I think there is a lot of comfort in being told what to do. And even with intellectual workers, they still want to generally want to be told what to do. And organizations also want to tell their people what to do. The leadership wants to be leading and be managing and doing their jobs. But the fundamental challenge is that these methods aren't fit for purpose, for whatever your purpose is. Right. You know, you get some things like Scrum, which are like there's almost nothing to it and it's so wishy washy that you can force fit it into anything. But then it doesn't really give you much advice as a result, other than to run a few meetings when it gets down to it. And then at the other end of the spectrum, you get the safes of the world and they're overly defined and they're prescriptive with one way of doing things. They talk a good game and they give you a few options now. So it's gotten better, but it might work for some people, but for the most part it's probably not going to fit well for you. So then you're still going to have to tailor it and it's so complex that you don't know how to do it and, and you don't know what to take away, you don't know what to add. So you're still sort of out of luck. But you've got a pretty poster and you've spent a lot of money on training, so things generally don't go well. But it really gets down to you need to know what you're doing and that's a hard message. But you need to be skilled, you need to have the skills to do your job. And I would say this to executives, I would say this to management, I would say this to people in the trenches. You need to have the skills to your job. You need to understand what your job is and how it fits in and you need to understand whatever the purpose is of your, of the team that you're working in now. So if you're on a data warehousing team, you'd better have a idea about data warehousing. If you're on an AI team, you better have an idea about AI and be pretty good at it. And this I think is missing. These methods don't go into the details. They try to be situation agnostic. So yeah, you can do scrum, but it tells you nothing about data warehouses, tells you nothing about building apps, it tells you nothing about marketing and like all these other domains where you're applying it into. So you're left to deal with that anyways, in that case, people being led down the garden path. It's the art of the possible. You can do anything you want, which is absolutely true, but then you're stuck figuring it out on your own anyways. And then there's not a lot of advice there other than we'll hire some expensive consultants who generally also don't know what your domain is and what you're trying to achieve. So this is one of the reasons why the shine has come off of agile coaches lately is because there was just this overwhelming number of people who weren't qualified and they took a two day course and maybe were on a project or two. Now they're pitching themselves as a coach. How offensive is that? And then now they're wondering why Can't I find a job? Because the entire community is not really qualified and people have finally figured that one out. So it's problematic. So you're still stuck anyway. So, yeah, you get pitched this story that we can tell you what to do, but then it's not really. You don't really get it. And to go back to the food analogy, it's like telling people, yeah, you can cook your own meal. And here's the book, the Joy of Cooking. Good luck. No, you need to have some. When you talk about fricasseeing something, well, what the heck is that? I don't. It's. I don't know. You better have some basic cooking skills to get the job done right. Where are you going to start?
For me, I differentiate leadership from coaching. My opinion, it's a strong opinion, is coaches should have played on the field, they should understand the domain, and then they spend all their time not telling somebody how to do it, but coaching them how to do it right. There's a difference between telling and coaching. But if you don't understand what they're doing, then you don't have the context. So that's what a coach does. And then a leader gets out of the way. So for me, a leader doesn't have to have domain knowledge, but they have to empower the team who does to do the work and lead them and remove the barriers and let them get on with the. The thing that they're experts at, help them get rid of the roadblocks that are in their way. So if we look at that, let's say we're lucky enough that we have a team and that team's been suddenly empowered to build their own way of working. That team's in the data domain and they have some skills in that domain around data and all that good stuff, but they have limited skills around their business process or the way they work. And you're coming in to help them. Where do they start? I know there's no one way to start for every team, but generally, where would you tell a to start working first in terms of building their own way of working?
I generally start wherever they are. Right. So if they're already in progress, then I start looking around first. I want to observe and get a handle on what's actually going on rather than what they're telling me is going on. But I also want to start trying to understand what are their main challenges right now and where's the pain? And let's deal with the immediate pain and hopefully try to get some Quick wins as well. It really does depend on what situation they're in and what they're trying to achieve and is it realistic. So I've been on a lot of teams where they've got this completely unrealistic date to hit or this completely unrealistic scope for their budget or whatever's going on and they've basically given up or they're frustrated and they should be giving up. They haven't quite figured out to give up yet. I try to help them understand where their main problems are and then start knocking them off one at a time. As we're doing that, it becomes a coaching thing of helping them understand that they've got options and asking leading questions and pointing them in the right direction. Sometimes too, and sometimes as a coach you do have to tell them what to do. If you're a hockey coach and the team's milling about on the rink and the other team's about to score on you, get your butts down here, Take that guy out. They're nowhere near that level of figuring out that they need to be protecting the goalie or something. Sometimes you do have to give them more advice than you probably would like to. But often it's really all about guiding them into helping them make their own decisions and then standing back and sometimes you pretty much know it's going to be a bad, this is not going to work out well. But you know what, let's see what happens. Going back to the buffet analogy, my daughter, a couple years ago, she went to the buffet and grabbed a big plate full of shrimp because she likes shrimp. But how much shrimp can you really eat? And so we found that out. It was about half a plate, which is pretty impressive, but still not the full plate. So I ended up eating a little more shrimp than I probably wanted to that night. It's a bad idea, but let's see how it plays out.
Oh yeah. And definitely a number of times I've said to teams in the early days, I said, that's never going to work. I've never seen that work. And then experience taught me to say, I haven't seen that work before. I've seen teams try it. Here's the problems they hit, but give it a go because you get surprised. And for me it is about that context. So I frame it in my head now about a team starting up from scratch will focus on certain patterns. We focus on the team building, the ways of working the team charter, those team forming skills. If you go in and you're helping a team that's already down the track, then you're starting to look at where the problems are and what needs to be changed next to help their way of working. And then if you're at the stage where they're scaling, they're trying to break out to other teams and that's a different problem, a different set of context. And for me, actually, I've got to the stage where I don't actually care which problem they want to solve, because it's not solving the problem that we're there to help them with, it's helping them understand that it's their way of working, it's their process and they need to be able to define and iterate it. So it's teaching them the skills or giving them the knowledge of how to iterate their way of working regardless of which problem they're solving next. Exactly.
Teaching them how to learn. Yeah.
And so that success, right, is when that team can iterate their own way of working. They don't need us anymore. That's when we've done our job because they're just going to keep building better practices. And so that's one of the things in choose youe well that I loved was this idea that you always focus on the goal first. So what's the goal we have to achieve and then what's the problem that's stopping us getting to that goal? And then which pattern could we adopt that may solve that problem to achieve that goal? And I really like that way of thinking about it, which is that end state and then experimentation to get us there with our practice, with our way of working. So that was something that I'd forgotten actually, until I read it again. It was like, okay, forgot that little puppy. So this idea of a hybrid, bunch of good ideas. Because again, if we talk about way of working, I followed what you've said for years in terms of there's a bunch of patterns out there. There's patterns in Agile, there's patterns in data, there's patterns in product, there's patterns in Lean, there's patterns all over the place that we can adopt and they have value given certain contexts. But what we end up with then is we end up with teams working different because that's our goal, is they're going to work given their context. But from an organizational point of view, it seems scary. Hold on, don't we want to standardize all the teams we can go to that horrible Spotify model problem, which is Spotify had a strategy and the strategy was people build their own way of working. Somebody documented it once and everybody goes, oh, that's how Spotify works. And talk to a few people from there and they're going, bollocks. Actually, that was just one visualization of one state at one particular point in time. But as organizations, we always want to go, actually, let's just adopt that and put that onto every team. Have you seen that this idea of standardizations across teams seems to be more important than enablement and getting the job done?
Yeah, exactly. And this is what CMM and CMMI were all about back in the day, having repeatable processes. The politest thing I can say is that's just ignorant nonsense. It's observably not true. Every person is unique, every team is unique, Everybody's in a unique situation. And all that stuff is changing constantly. So having one way of working across all teams now, you might magically be in a situation if you were a consulting organization and all your salespeople were selling was the exact same basic type of problem or same type of project, all your customers. Yes, maybe you could have a reasonably repeatable process across all those teams, but you'd still have teams of different people and the clients would still be different and it would all fall apart instantaneously. So, say all the planets were to align and you could actually somehow find yourself in a situation where every single team following the same process makes sense. Within a few hours, the situation will have changed for at least one of those teams. And then suddenly they've got to start doing something else or continue to apply the same inappropriate process for them, which. And if they're smart people, what they start doing is they start doing the right thing anyways, and then they start creating the artifacts that you insist on to make it look as if they're following the old process. You fake out the process and then that's just all useless overhead. That's probably not what you're looking for. And the interesting thing is often the people who are pretending to govern are unable to detect that's happening because they're almost always looking at the artifacts as opposed to the actual actions of the people that are going on, that people that are actually doing the work. This is just. It's no good. It's what people want. They want a simple solution, but the world is too complex. And I think what's happened is I work with organizations and everybody's overwhelmed. The complexity's gotten too high. They have all this legacy is all this technical debt and all this data. Technical debt. And the customers are asking for a wide range of Stuff. The technologies are changing constantly. You can't get caught up on the solutions at all anymore. Everybody's just overwhelmed. And including the leadership. The leaders don't know what's going on either. They're trying to, to get a handle on what's happening and it's just too much for them. And yet they're trying to make decisions and they just can't. It's far too complex and it's not what people want to hear. And somebody comes along with this snake oil. Follow this methodology for doing this type of project or for doing it across your entire organization. And it, and it sounds good. The story is always good, particularly when you don't really know what you're listening to and you're overwhelmed and you desperately want a solution and somebody comes along with this semi complex thing that sort of makes sense to you and then they're slick. They got a slick salesperson or a slick story and it sounds good. So you adopt it and a couple years later you find out it didn't really work out for you. It's a disaster. So you go on to the next snake oil salesman. And this is what these organizations are doing constantly. They just lurch to the next hopeful solution, building up all this technical debt and cultural debt as they go and not really getting the job done. The only way you can be successful these days is you've got to step back, you have to accept complexity. You've got to embrace the situation that you're in and realize that you, you need to get a handle on it. You need people that understand what their jobs are and what to do and, and how to do it and be willing to learn. Because when everything's constantly changing, you've got to be constantly learning and changing yourself. And this is hard.
Yeah, skills and knowledge. That's why we get paid so much. And often I see facades like you talked about. One of the things about methodologies or standardization is it makes people comfortable because they see something that looks familiar. As humans, we look for patterns and we go seen it before, feel comfortable about it, but we see this facade behavior. So an example I had was worked with a team. The team started rocking it in an organization. They were amazing organization. As often happens, they see this little amoeba, this little virus start to happen that's working differently and they try and kill it. Team had some good umbrella or, or cover, so they managed to survive. They had a leader that, that protected them from the political norm and the team survived. So then the organization changes and goes, oh, okay, this Thing looks like it's working, we should adopt it. But what the organization did, because it was a, you know, PMO project management office lead organization, they bought in a BA to write the methodology on this agile way of working. And that person at no time talk to the team, they didn't talk to the team, they didn't absorb it. And then this document came out, said here's our agile way of working. And the team went what do we mean to do? We need to change the way we work to that because that's not what we're doing. And we tried that bit didn't work for us, we haven't tried that. But maybe that's interesting but this organization standardization seems to be the way we taught right? Because we're taught to chicken farm, we're at school, we're taught to follow a set of steps and, and do it that way. But if we talk about that waste, that idea of somebody that spent six months of their life writing a document for their agile way of working, that's never going to be adopted. Another example of waste is the team are operating in a certain way and then a project manager has to distill it into a gantt chart for the PMO because that's the standard way we report across the organization. If we focus on documentation within the team, their way of working. What level of documentation does a team need to do to document their way of working? Do they document everything they do? Do they document nothing? What have you seen in terms of the right balance of describing the way they work while they're building it?
Once again, it really does depend on your situation. So for example, if you're in a regulatory environment where legally you have to have a defined way of working, then you're going to probably do a little more writing than if you weren't in that situation. But it really depends on what your team needs and what your, what new people would need. So as people come into the team, how do you onboard them? Some organizations will, here's your process binder. Read this and then try to stay awake while you're doing it. And then at the end of the week we'll come back and talk to you and maybe next week you can start doing some work. At the other end of the spectrum you just start and you start pairing with people and you learn through osmosis how things work. I've seen processes defined as simply as a single page on the wall, a piece of paper on the wall for a co located team. Here's our agreement, here's how we intend to treat each other. And here's our rights and responsibilities. Basically, I've seen 50 page documents, several hundred page documents that nobody ever reads. Even the new people, they get 10 pages in and it's all over by that point. So the problem with documentation, people probably aren't going to read it. Don't write the documentation if you don't intend to keep it updated. And so if your way of working is constantly changing, then you'd be constantly changing whatever documentation you've got about that. Same old rules. Lighter is better than heavier. When it comes to documentation, keep it as concise as possible. Just barely good enough type thinking. I would not invest a lot of time in writing process documentation unless I'm in a regulatory situation that requires it. And always read the regulations. Don't let the bureaucrats read the regulations and tell you what they say. You need to read the regulations yourself because what the regs say and what you're told the regs say are often very different.
Yeah, it's that whispers. Right. As multiple people read and talk, we change the language and we change the intent. Yeah, I'm with you. I think it's the right level and that's hard. One of the patterns I've seen that was particularly successful was this idea that the documentation often was targeted at new team members. The problem we're trying to solve is new person coming into the team. We have this unique way of working. How do we describe it? It as distinctly as possible to get them started. And so the documentation focused around that. And the new team members were always tasked with this question that if you came on board again, what's the one thing you wish had been documented or described for you that would have made your life easier? Oh, I wish I hadn't known that. Write that one. And then what's the three things you didn't bother to read? And then over time, when you get enough ticks in that box, you decommission that piece of content because people are telling you has no value value. And then like you said, the level of documentation needs to align to your cadence of change. If you're constantly redefining the way you work, you've got that high cadence of change, then less documentation because it's going to get out of date. And out of date documentation, it's far worse than none because people trust it, they read it and go, oh, that's the gospel. And if it's out of date, they don't know versus if it doesn't exist, they're going to go ask a team member, how do we do this? And they're going to get the latest version. So I'm with you on that. And so that idea of continuous improvement, we get taught to do continuous improvement in our code, continuous improvement in the way we deploy and the way we build and our data. And that whole continuous improvement is something that's baked into us now when we work. But very rarely do our teams get taught to do continuous improvement in the way they work. Now, if we look at Scrum, that's where the retro came from, the retrospective, that idea that we're going to force a ceremony where we're going to force the team to say what went well, what didn't, and what are we going to change? Because we know by bringing in circuit breakers, by bringing forcing functions, people will learn that behavior. It's quite brutal. And it's. It is a form of waste if we think about the amount of time we waste with that team meeting to do that retro, versus if they just retrospectively changed the way they worked every day. But we know those forcing functions are important.
It.
But outside Scrum, we don't tend to see that continuous improvement of the way we work, of our processes being endemic, do we? Or have I got it wrong? Because Lean's all about process review and continuous improvement, isn't it?
I think it really depends. So I would argue that I don't think we really see a lot of improvement in Scrum. It would have changed. Like, SCRUM hasn't changed all that much since the mid-1990s. It's evolved a bit, but considering how many people are doing it and how long it's been around, it's really stagnant. And I think it shows it. And people been saying this for years, and then nothing happens just because of the culture of the Scrum community. It's more about holding a retro. Right? So I think the challenge with forcing people to have a retro every week, every two weeks, whatever your sprint length is, that it becomes so regular that it becomes nothing. And are you really improving? Are you really having a retro? Are you really identifying what we should fix and then fix, it's that get off your butt and deal with the issue or issues. That's where it all tends to fall apart. Because otherwise these Scrum teams would evolve away from SCRUM within a few months. I guarantee that because every time I've been coaching a team and we actually did retros and I held their feet to the fire by putting measures in place. So I'm a big fan of measured improvement. If you identify, hey, we need to fix X, whatever X happens to be, okay, fine, but what are we going to do to fix X? Let's do this. Okay, fine. How are we going to measure? How are we going to know that we fixed X? Oh, I don't know. We need to figure that one out, right? What improvement do we need to see and how are we going to measure that over the next month or two, however long we think it's going to take to fix X, and then do we see improvement? And then. And it's not just declaring success. Say it takes you two months to address whatever this X thing is. I want to keep some measures in place to make sure we're not slipping, because what'll happen is the shiny new problem syndrome. You think you fixed one thing and you really barely fixed it, and then you go on to the next thing and you forget about X and then your behavior slips and you start doing not X, because now you're working on Y. And I think this is the challenge with a lot of teams. They really do stay stagnant and. And it's that lack of discipline around improvement that really gets them into trouble. Like I said, feel free to quote me on this. If scrum teams were really doing process improvement, they wouldn't be doing scrum anymore.
I find scrum's a good place to start. It gives us some really light patterns that we can explain, we can coach, teams can adopt, they can learn, and then they should get the hell out of scrum. They should go, why are we doing two week iterations? Why don't we just make it continuous? Why are we doing retrospectives as a meeting at the end? Why can't we do it every day? Why are we doing daily standups? Why can't we just continuously talk? But without those forcing functions, without those experiments to show a pattern of learning and then measure whether we've got the success, we don't do any of those things. So I find scrum incredibly useful because it's a set of valuable patterns, but it's not the answer. It's just part of the journey. And that measuring work versus measuring the way we work, that's incredibly difficult. So if we measuring work is hard enough so we can say yes, we can see people are busy, they're doing work, everybody's busy, tasks are being done. But are those tasks moving any of our dials in the data world? Did that data provide any action, any outcome, any value to the organization? Hell, was that data accurate? We don't Even measure that half the time because we don't know what accuracy actually looks like. Like in the product world, in software, we can say, yes, we put a widget on the page and people can type into it. But did that change the behavior of our customers? Did that customer behavior change actually deliver us more or less value to the organization? Those measurement things are really hard, and when we apply them to the way we work, to our processes, it's hard as well. If I don't do this, is that a positive outcome or a negative outcome for the team and the organization? So measurement seems to be, as humans, one of the hardest problems for us to solve. Have you found that in that we talk about experimentation of patterns. Okay, if I apply this, given this context, it should make things better. But measuring what better looks is incredibly difficult. Have you found that?
Yeah, definitely. So the challenge there is, are you really measuring what's important? So, for example, in the data world, it gets back to the data is a secondary issue. It's really the usage of the data. The questions that I'm helping you to answer. Case of a data warehouse. If we're helping people answer questions and make better decisions, that's what I want to be measuring. Right. Did we actually help you answer the questions that we promised that we would help you with? And more importantly, have you moved on to better questions? Because over time things are going to change and your priorities will change. That's what I really want to be measuring. So in the case of way of working, if it's a technical practice, like some DevOps things, then yeah, I can instrument the tooling and I can measure how much are we, how often are we doing, are we actually integrating and how often are we running the tests and stuff like that. So there's some easy things to do there, but it's usually not the case. So it gets back to the problem with X. So what was X? What are we trying to improve with X? X would be, I want to improve data quality. So then I should be measuring data quality, not the fact that I've adopted some new technique or some new tools that improves accuracy. Have we actually improved what's important to us? So measure what you're trying to improve or what you're trying to adopt rather than the techniques that are helping you hopefully to improve. And so it becomes fuzzy at that point. Right, because quality improved. You know, I want to improve quality and I changed this. I changed this way of working to help improve quality, and quality went up. But we could have also changed two or three other Things in flight as well, which might have also had an impact on quality. We don't quite know because some other technique that we've been experimenting with was really the source that had a side effect of improving data quality and we just didn't clue in. So anyway, it's hard to measure. There's always going to be some qualitative decisions going on. We wanted to improve this. The metrics are showing we improved this. It was probably because we changed this way of working. Okay, we'll. We'll continue working that way until it doesn't make any sense.
It's that macro versus micro from a data point of view. The way I frame it now is I want to understand the business question the stakeholder wants to answer. Yeah. So it normally starts with how many, how much, how long? Then the next thing I want to understand is if I give you the data or the information to answer that question, what action are you going to take? I want to understand all the customers are going to churn. All right, once I give you that, what are you going to do? What action? Okay, I'm going to go and do a save off offer.
Okay.
If you take that action, what outcome are you expecting?
Yeah, okay.
I do a save offer. I'm expecting less people to churn. Okay. And if that outcome was successful, what's the value to the organization? Oh, okay. I expect less people. Tuning lifetime value is going to go up by 5%. Now that's great. I've got a nice cause and effect model there from the old balance scorecard days, but it doesn't mean that we can't have gone and done a dumb campaign that caused churn. It can't mean that we took a stance politically in the market that people didn't like and they churned. So there's a bunch of other macro things that may affect that value, but at least we've thought about it. Now what I haven't done is taken that pattern and applied it to way of working. The best I get is what thing are we doing, what change are we making and what action do we expect to impact? We've got a problem. We've delivered some stuff to stakeholders on a regular basis and they turn back and say that's not what we wanted. Yeah. So typical data problem. Okay, let's change the way we engage and let's do something slightly earlier, slightly lighter, using a different language and see if that impacts it. So our action is to engage with them earlier and get better requirements effectively. And then I can see that I can See, we have engaged. I can see that they felt there was a good conversation. I haven't flowed that through now to say what's the actual outcome of that action and what's the value and how do I prove it? So I'm still struggling with that measurement part of changes to the way we work. Still work to be done, I think.
Oh, for sure, yeah. And just get used to being frustrated. There's a lot of qualitative stuff going on there and there's so many interconnections that it's really hard to tease out. We change this one thing, how much of an effect really happened. And there's things that are going on that you're not measuring at all. So you'll adopt a new way of working because you want to improve quality. But a side effect of that new way of working is you're now ticking off one third of your customers. Customer satisfaction is going down while quality is going up. But you're not measuring customer satisfaction. Or if you are, you're not relating it back to this new way of working because you never thought about it. And this is one of the things I've continued doing that is when I describe a technique, I describe both the advantages and disadvantages, because there's always trade offs. And I think this is where a lot of people writing about methodologies and ways of working really missed the boat. And this is something I learned from Kent back like 25 years ago when he described XP. He was very clear. This is when this will work, this is why it works, this is when I suspect it's not going to work. And here's why. And I extended that thinking to the detailed practice level of here's the advantage and disadvantage of this practice. And this is very true in patterns. If you look at the way patterns are, particularly process patterns are described, there's the context, the original context in which this pattern will work. And then when you apply it, here's the new context that you're in if you successfully apply this pattern. There's good things and bad things about this new context. This is just the way the world works. When I'm describing choosing your way of working, I describe it in terms of risk. What risks are you willing to live with? What risks do you want to pay down? What risks are you willing to increase and learn to live with because you will? There's no perfect solution here. And this blows people's minds. And this is why I am always concerned about this term best practice, because people spin it as well. This is the best way of working. And this is truly awesome. Yeah. In the context in which you came up with it. But what were the downsides of that? Were you even able to detect the downsides? Or are you so inexperienced in your own technique that you haven't seen it fail yet? Because it will fail. Guaranteed it will fail at some point for some reason. And if you're not aware of that, you might not want to be pitching it honestly. But say, you know what, I haven't tried it in this situation. I suspect it's not going to work, but I don't know for sure because I haven't tried it. If anybody tries it, let me know. Fair enough. Best you can do, don't pitch anything, is this is perfect and it's going to work for everybody in every situation. Because it's not. And this is what people imply. They won't blatantly come out and say it that way, but they imply it. All these people wanted to sell you certification and certain things. They're implying it for sure.
It's about describing anti patterns as well. So if you know you've applied this pattern in a certain context and it didn't work, describe that anti pattern. Describe the behavior of why it didn't work. Doesn't mean it won't work next time in that exact same context. Because as you said, there's other contexts around. There's the organizational mindset, there's the way the organization structured, there's the budget constraints, there's a lot of other things impact it. But describe that anti pattern pattern. An example for me would be our stakeholders are frustrated because they can't get any work into the queue. The actual pattern. Introduce the concierge, introduce somebody that's going to go and talk to them early, gather something, put it in the queue, engage with them. Don't just say you have to wait. It's a great pattern, the anti pattern. Now what you've done is set a promise that you're not going to deliver because if you haven't changed any other way of working, their work's not going to get done any faster. But you've set up an anti pattern where you've had a conversation, you've set an expectation and now you're going to disappoint them even more. So that's your trade off. Your trade off is do you want them to feel like they've had some input and then manage the expectation, or do you want them to feel like actually there's just no way they can get their work done or do you want to find another pattern which actually fixes the problem, which is the flow of work and the speed you're doing it. Describing those anti patterns is important, but what I find is describing a pattern in the written word is incredibly difficult because I can do it waving, I'm waving my hands now. I can wave my hands when I describe a pattern. I can look at people's faces, I can listen to the questions and I can change the context of the way I describe it. And with a pattern, there is that standard pattern for a pattern which is here's the thing, here's the context of the thing, here's how you apply the thing, here's some risks or anti patterns where it's dangerous for that thing. You're trying to distill all this knowledge so somebody else can pick it up and apply it, but there's so much context around it that it's hard to do in the written word. Do you find that, do you find distilling patterns down to things that you've written it? I can read and apply it. That is an incredibly hard process.
Yeah, it is. And, and this is why if you look at the, the work of the patterns community, they can take years to write up a pattern language. And it's common to take years to write up a pattern language and get it right. The first few iterations of what you think is a great pattern language tend to be total garbage. And that's okay. You learn and they shepherd you through and it tends to be a multi year process but you end up with some pretty good results. And the challenge is it's also so slow, but then you end up with these multi page patterns. If you read the Gang of Four book from the mid-1990s, there's what, 25 patterns or 30 patterns in that book and it was a 400 page book or 500 page book. You end up with these 1015 page pattern, another source code. So that's, that blows out the size. These patterns get pretty big pretty quickly if you're doing it right. When DA we had 171800 practices put into context in the toolkit. So you can't have a five page description for 1800 things. Right. That just gets too huge too quickly. So we would describe each practice in a paragraph or two. The trade offs were bullet pointed and then we would link to and oh. If you're, if you're interested in learning more about use cases after reading a couple paragraphs about use cases, go read this book or go to this website or go watch this Video. And so we point to the details and leave it up to you if you were, you're interested in that. But because we were focused on just putting things into context and helping you decide and that's it, not teaching the actual practices. And we still had ways of putting the practices into context to help find Nick earlier we were talking about how do you find this stuff? Stuff you've got to be able to traverse these things called process goal diagrams to get in the right context. So in this context, here are some good options and here are the, here's what each option means and here's the trade offs. And then go read a book if you have to learn more. And that's hard. Right. But it's the way it is reflects the complexity that we actually face. It gets back to this challenge that people are overwhelmed with the complexity. Even when you simplify it to the point we did, they still get overwhelmed with the simplified version of the complexity. And yet you ask them and it's, oh, it's so big and it's so hard. Yeah, okay, what would you take away? Well, I don't know, but now I think about it, you're missing these five things. Yeah, we know we're missing those five things. We haven't gotten to them yet. But you just told me it needs to be more complicated, not less complicated. I think is the challenge that people just overwhelmed and they don't even want to put the effort into understand what they're trying to achieve. So I'm in school right now. I hinted at this and I went back. I'm working on a master's in AI, so a wide range of students and I'm having a lot of fun and we're all learning together and it's all good. A few of my fellow students, there's a huge range, right. And a few of them are a couple years in, so they're younger and it's interesting. They're in a master's program and a few of them are anti education and it's. I've pulled myself up on my bootstraps and I learned how to program on my own, which is great. I'm sure they're great programmers, but I can safely say there's this very long list of things that they don't understand and they probably don't even know they need to understand. Their architecture skills are probably horrendous and many other things and testing skills are probably not there and that's what they're learning. But this is the problem right here. They are in this very complex domain and learning the hard way that maybe there is a little bit more to it than what they think. So a bit of a wake up call and I'm watching another gentleman right now, a friend of mine, and he's writing a book and he's researching this stuff and he's constantly surprised, oh, this isn't the way I understood it. And he's learning so much, right? He's learning a lot. And which is great. And I'm thinking, you know what, like all the stuff that you're learning now finally after being in the industry for 30 or 40 years, that was second year university for me. So it's great that you're finally catching up. Maybe if you been a little more open minded to get to education, you wouldn't be learning the basics now. At least stumbling into the basics now. I don't know how I got off on this tangent. I think people need to invest in their education and finding a good university program or college program and whatever it is that you want to do is hard, believe me. But it is worth your while to invest in understanding the fundamentals of what your job is. Because the fundamentals don't shift all that much. You look at the data community, the fundamentals really haven't changed that much. There's some new toys and yeah, no SQL databases, but you know what, object databases, blah blah, blah, right? And there'll be some new toy to play with in 10 years, but the fundamentals are still the fundamentals. And yeah, there's more volume and it's changing faster, but you know what, in the late 80s I was dealing with what I thought was a lot of volume, and it was a lot of volume at the time. There's a couple more zeros tacked onto the end now, but so what? The technology can handle it. My laptop, I suspect I have more processing power on my laptop than I had on the mainframe in the late 80s. My workstation is more powerful, my real workstation level on my laptop.
And it's about trade off decisions. I was talking to somebody the other day and they were talking about their codes for their warehouse, their transformation code. And the question I had was how many blobs of code do you have? And they said something like 10. And I was like, okay, that doesn't gel, right? The pattern of small number of blobs of code for the size of your organization, the amount of data sources you've got and the time you've been running. So my natural reaction was, okay, there's lots of lines in that code. Yeah, they're massive because they're going from source to consume and the code is the model. And I'm like, okay, there's some trade off decisions you've made. You're not modeling, you're not decomposing. There's a whole lot of things that are anti patterns in that, but there's also value in doing it as one big blob of code. Was that a, was that a conscious decision of you or your team? That was my question. Because I don't care that you've done a pattern that I don't agree with. I just care that you've done it for conscious decisions and you can change those decisions when it happens. And the other thing that's complex about describing patterns for me is patterns are patterns of patterns. An example I use is when I describe change data capture, the ability to see that something changed and I want to recognize that's changed. Our English language says CDC has changed data capture. There's a pattern. But we also use that exact same term for log mining to say we're going to go and hit a database log to see that change. We use a slightly different language around delta detection if we're going to compare two tables states and say what changed? But they're all change data capture patterns. So now I've got this one word that I'm using multiple times for multiple different patterns. And so for me when you're describing a pattern it's make sure you put something in the front, change log, change data capture, delta change data capture and then describe why they're different. Because we often have patterns that are made up of other patterns. Like your friend, I'm a failed author at the moment. And what's been interesting for me is there's been a bunch of patterns that I've used with teams for many years and found teams very successful. And so I coach teams on those patterns on a regular basis. When I started writing I could write what the pattern was, the anti patterns, the successful application of it, but I had no idea where it came from, what was the origin of that. And the one the other day I was just updating my article on T skills of T shaped and I was reading your one where you go don't call it that, call it specialist, generous. And then you had the T shaped diagram that I use as a template with all the teams I coach and I was like, oh, did that come from Scott or did that come from somebody else? And again it's that origin story of where do These patterns start. Where do they get blended? And I'm intrigued by that. Where's the origin of some of these things? I just heard on the radio today that the first zombie movie was. I can't remember. It wasn't dawn of the Dead, but was the other one in 1968. Right. That was the first time somebody actually made a movie about zombies. Living dead.
Yeah. George Romero.
Yeah. But there's an origin story, right? We know that was the first video that was published because people probably made some at home.
I'm a zombie guy. It wasn't. It was the first zombie movie of that genre. Yeah. So Romero kicked off what we now pretty much all the zombie movies are basically the same story or the same basic pattern. But before Romero's stuff there was zombies. Zombie movies where there was like one or two zombies and there was like a witch doctor would bring somebody back to life. And you could argue the Frankenstein was a zombie thing too, but not really. But, but yeah, no, there was some zombie movie stuff before that, but Romero kicked off the billion dollar ind. I don't know what it is, but it's a huge zombie industry now.
So yeah, there we go. Agile data ways of working. We've got some loves. Zombies movies are one of mine. And Zombie Land still is my favorite comedic go to sit down and relax movie. Watch it time and time again. So patterns. The patterns are patterns. You go back to the origin story. I'm really interested in that. So there's a lot of complexity in there. And the last complexity I just wanted to cover before we close out is scaling your. Wow. Let's say we start off with a team, small team, they build their own. Wow. We've now said, okay, we're not going to PMO it right. We're not going to write it up as the methodology and mandate. That's how teams work. But we want to scale the learning from that team and those patterns. We want to share the patterns of being successful with the context and the anti patterns so other teams can pick it up. Up. How do you typically describe to an organization when they want to scale their way of working to other teams that are doing similar work? We're not going to take the way of working from a data team and try and apply it regularly with a software development team. These share patterns. Let's say we've got a data team and we're just scaling out to two or three more squads, pods, teams, whatever you want to call them. What do you recommend to customers? How do they do that?
There's A couple of patterns or common strategies to do that. So for example, having communities of practice or communities of like coaching teams and tribes or not tribes, guilds and I can't remember the other term from Spotify. It's basically another team or person outside of your team whose job or responsibility that they've taken on is to share ideas across other teams. All, all the people that like test or are interested in testing what will belong to the testing guild and then they'll share great testing practices and testing strategies across teams and help each other to learn. They'll be. Or having coaches and coaches going across multiple teams and helping teams also to interact better with each other as well. That's really where the coaches really take off and really have a huge impact is helping teams just work together more effectively. Disparate teams, there's definitely ways to do that, but also understanding the context count. So just because something works for your team might not work work for my team or won't work exactly for my team and my team's going to have to fiddle around with it. So for example, my software team might have figured out that continuous integration is a good thing. We did everything we need to do to set it up and got it going and then we share that with the data team and it would fail miserably because continuous database integration is significantly more complex than just continuous code integration. Now it's not that you can't do it, it it's just you've got to do it a different way because you're dealing with persistent data which the application development team wouldn't be dealing with. You need to remember that when the context changes, you need to expect that some things are going to work, some things will not going to work or they're going to work in a different way. You need to get into learning mode basically and experiment a bit and make it work for you. And that takes courage and it takes skill. I don't remember if I ever told you the database refactoring story, but, but years ago when we first started working on database refactoring as a technique, we basically, we didn't know how to do it, but we knew it needed to be done and so we assumed that we could figure it out with no idea of how to do it. And that's how we all stuck to it and we experimented and finally figured it out. It was a bunch of smart people that were working on it and all had pretty good clues, but we still needed to work it through. We could have easily given up and never figured it out, out. And this is the challenge, right? You got to stick to it and tough it up. Particularly when you see other teams doing it. It's database refractor is a bit difficult because nobody was really doing it at the time. If you see another team and they figured out how to do continuous integration, you should probably assume you could figure it out too. And that you're not special and that you're not in this weird situation where it's not going to work out. It's just that you've got a. Your team's got to figure it out and make whatever changes that make sense.
For your environment and go and ask that team because most people will share, apart from the methodology, people that are trying to sell you certifications so they have to file all their content. We should, if we see a patent, we should share it because we're using everybody else's patents anyway. And that, that reminds me, I was flicking through the Big Book of wow, little Book of wow, and I got to page 28, which is the context diagram. And for people that haven't read it, basically what it says is like a. A line and it has a left and a right. There's a bunch of lines and that's your container context. You have something on the left and something on the right. And then depending where you fit, you get to choose patterns applicable, more likely to work or they're not. And it reminds me, I was coaching a team and we had to figure out their way of working. So we just came up with five lines of things that were important to them. Do they want decentralized teams or centralized teams? How does the organization work? And on that slider we got a dot where they felt they were and then the patterns aligned with that. And I found that is a really great way of working with team. Teams to start. And if I'm scaling, if I know we're going to scale, which we always do actually, so we're always going to scale when we're successful. We wanted more people to do it the way that successful team has. Going back to that slider and say the team made this decision to use this pattern given this context, that is a great way of visualizing the reason they made that decision. And are you in the same context or even go back to them because it's been six months or a year since they did it and say, has the context changed? Has the pattern change changed? So that visualization of why you're choosing that pattern for that part of your way of working, I found a really Valuable diagram. And again, can't remember if I saw it from you and then just used it or I saw it somewhere else.
It's the scaling context factor that's something actually in disponential delivery. Back in the day at IBM we were working on that in parallel with some work that Philippe Krushen, one of the original people behind Russell up, was working on. He had something called the Octopus model and had eight factors and we only had six. And so he was the Octopus model and we basically released at the same time and we were talking with each other and sharing ideas. So yeah, those are the two sources there in da. We continue to evolve it and tweak it a bit. Whereas I think Philippe moved on and started doing something else. I'm applying the same sort of thinking to data quality techniques. So what are the complexity factors or the factors you should consider when identifying data quality techniques for your situation? I'm still working on this and the problem is there's so many data quality techniques that you got to rate them, but it's just work. So anyway, so I've got a, I've got a growing database of this material and what's really interesting is putting various life cycles into context. Lately I've been giving a talk on machine learning and building up to a machine learning life cycle. Here's how it works in the real world as opposed to what you, you maybe have been told. And then I start saying, wait, so where are the data quality issues here? And so I start looking at the data flows basically. And for this data flow, these two factors of the five are critical. The other three factors, yeah, they're nice, but I don't really care about them. I really care about those two factors. But this flow over here, I care about these two factors or these three factors. And for obvious reasons, right, it's always pretty straightforward. And so knowing that I care about these two factors, how do these 25 some odd techniques rate? And I've basically got a Python code to generate a quadrant chart to say, okay, these three techniques are in the top quadrant. So I probably want to adopt one or more of these three techniques and these other techniques over here in the bottom quadrant are phenomenally bad ideas for this problem. But then, oh, but then I look at this line over here and while these two factors that, oh, look at this. So I. There's four techniques that might solve this issue. And two of those techniques were in the bottom quarter on the last chart. So it tells you you're going to be one quality technique is not going to get the job done for you, you're going to have several, because for this type of initiative, these are the issues and therefore you got to choose the right techniques for the job. Whereas if it was a data warehousing project, sorry, you got different quality issues there, or least different quality priorities. And as a result you'll have different data quality techniques if you want to be effective at it. It takes a while to build up to this, to describing it, but it's a really interesting way of looking at it because you can rate the quality techniques on these five things. And I really need a sixth factor. But unfortunately the sixth factor depends on the culture of your organization, which I can't judge, but I can't tell you how to judge it yourself and then throw it into the mix if you want to. And the idea is that we can rate all these quality techniques and then if you understand your life cycle that you're following, then it's a fairly straightforward analysis to, you know, figure out here's my priorities based on what? On the way I'm working now. Therefore, here's how I'm going to choose these data quality techniques. And it's a different set of factors than what we talked about DA because the factors in DA were of a higher level and you couldn't get down into the weeds. But now because I've narrowed the focus down to data quality, I can get down into the weeds with specific things to data quality that may or may not apply. Actually, a lot of them would apply for other issues, but these are the five factors for data quality.
That idea of allowing somebody to enter in their context and then have the machine recommend patterns that may fit their context, that's valuable because as we talked about, we end up with this pattern library that's so broad, brought so massive, but there's more we're missing. So it's not that we can never take anything away because every one of those patterns has value. It's figuring out how we can quickly say to a person, watch your context and then try these, because we think these are the most likely. So just looking at time, just to close that out, you've been on a bit of journey in your career, from development through to coaching and writing up patterns and building out the dad stuff and now back into education again. What is your focus these days and how do people get hold of you if they want to talk to you about about it?
So the, the easiest way to get hold of me is just drop by scottambler.com and it's obvious once you hit the site. So I'm, I'm focused right now. I went back to school for master's degree in AI, so that's going to keep me busy and it's a part time degree but that's going to keep me busy until the end of four. And I'm doing some coaching consulting part time as well, mostly around data quality issues, particularly in the machine learning space because everybody's getting this garbage in, garbage out, right? People are getting beat up on their data technical debt. I'm having a having a really good time doing that and I do webinars for user groups and chapters and all that sort of stuff because I enjoy doing that.
I've always said sharing is caring and given the amount you've shared over the career that you've had, I think that shows the amount you care in terms of sharing this knowledge and making it opening and freely available to everybody. Again, big thank you for how much your content has helped me in my career, but also just the fact that you share it so openly with everybody who wants to use it on that look, thanks for coming on the show and I hope everybody has a simply magical day.
Fantastic. Thanks for having me.
That Data Magicians was another agile data podcast. If you'd like to learn more on applying an agile way of working to your data and analytics, head over to agiledata IO.
More from Shagility


Listen now | Recording of AURA - Tim Frazer & Shane Gibson on 2nd September 2026








