Building Up and Tearing Down

May 27, 2019

Recently I put on a public Leading SAFe training. This wasn’t your typical training, however. In collaboration with Ron Quartel, we tacked on an extra day to discuss FAST Agile. Now if SAFe is an example of a scaling framework, FAST Agile is perhaps a good example of what you might call a de-scaling framework. FAST uses an open space style of organization to provide only the most bare bones structure and guidance. It’s really quite elegant in its simplicity. 

Ron and I had both been inspired by the ideas of mix-ins – processes and practices that we can mix and match together. So, it was with that in mind that we thought putting on a combined training class would be interesting. First teach SAFe, then turn around and teach a competing framework. Then compare and contrast. Well, as it turns out, the combination was quite brilliant.

As I taught the two days of Leading SAFe training, the class built up the framework from teams, to programs, to solutions, to portfolios. Learning the roles and processes of each. By the end of the second day, I was exhausted but happy (as usual). Then Ron stepped in and proceeded to teach FAST Agile on day 3. In essence, he took everything I had taught them and tore it all down. The focus was on simplicity and self-organization. The class was totally into it – questions flew fast and furious. Everyone was fully engaged. 

The contrast between the two frameworks was stark, and it raised many questions for both Ron and I. You see, I wasn’t there to sell anyone on SAFe. Don’t get me wrong, I like the framework, and I enjoy the training a lot, but I don’t give a damn whether or not you decide to adopt it. What I really care about is that you make an informed decision based on what I hope is the deepest possible understanding of the options. If you understand the values, principles and practices deeply, then you will choose to implement what is best for you and your organization. There is a tremendous amount of nuance and subtlety to the art of organizational change (that’s probably why I like it so much), so I believe that the ability to not only adopt ideas, but also to be critical of them is important. 

The act of building up the framework and subsequently tearing it down again felt like a very powerful learning experience. It went beyond rote learning. Not only do we ask, “Why would you adopt this?” We also ask, “Why wouldn’t you adopt this?” That requires us to understand the ideas from different perspectives. People stayed after class each day debating the ideas for over an hour each evening. That’s when you know you’ve really got them thinking. I’m looking forward to doing it again.


Why Mixins?

May 8, 2019

“Some say that I should settle down, go slower and not push so hard, so quickly for such transformational change. To them, I say that you misunderstand the size of the problems we face, the strength of the status quo and the urgency of the people’s desire for change.”

– Eliot Spitzer

The Challenge

According to the latest VersionOne State of Agile survey 2018, the most prevalent scaled agile framework in use today is SAFe. Note that I didn’t say it was the most popular framework. I’m not sure that most people love SAFe, but I can say that most people use it. Why don’t people love it? Well, I’m sure there are lots of good reasons:

  • The framework is very prescriptive, often specifying “best practices” without much discussion of alternatives
  • The framework is overly dense, incorporating nearly every agile practice ever invented
  • The framework is designed as a first step for large organizations on their agile journey, but often it is also the last step
  • Implementations tend to be cookie cutter and not make allowance or provide guidance for change

I’m sure there are many more very good critiques of SAFe. It’s not my purpose to condemn the framework, but rather to highlight some weaknesses that I believe can be easily addressed. My goal is to consider how we can make SAFe, and frankly, many other scaling frameworks, better.

So how can we accomplish that? What can we do to improve this very full, relatively rigid, and somewhat context-free framework? My answer is fairly simple: swap in practices and processes that complement the framework and may provide a better “fit” for our transformation customers. Essentially, I’m arguing for the application of a little creativity. All of the frameworks have a planning process. But there are a lot of ways to do planning. We can vary the estimation practices like story points, WSJF, or #noestimates. We can vary how we prepare for the planning event by using extensive top down review, bottom up conversation, or LeanUX related practices.

The truth is, that we have a whole constellation of different practices that we can swap out within our scaling frameworks depending on the need. This gives us incredible flexibility to help our customers find the “right fit” for where they are at in the moment. This has some important consequences:

  • For engagements that begin with a very prescriptive bent (which often makes sense when teams are learning something new, think shu-ha-ri), using mixins is a great way to begin down the path of experimentation and continuous improvement
  • We even have the discretion, once we have learned how the framework works, to try our hand at de-scaling – that is, to remove processes that seem too heavyweight
  • Mixins give us the creative potential to continue to evolve our scaling frameworks far beyond what their creators may have originally envisioned
  • Using mixins during a transformation rollout can help us to avoid the cookie cutter implementation phenomenon

All of the practices that I propose as mixins are novel and innovative. Most have proven their value on their own in the agile community. It is the recombination of these ideas with Scaled Agile Frameworks like SAFe that I find so interesting. It feels like something very new. It’s an exciting challenge, are you up for it?


Custom Hot Rod

May 2, 2019

One of my favorite cars that I ever owned was a 1967 Ford Falcon. I bought it for $600 when I was in college. It really wasn’t much of a car. It was a 2 door coupe built on the same frame as the classic Mustang, but without any of those muscle car good looks. It was the kind of car intended to be a hot rod for my grandmother. It had a straight six cylinder motor combined with an automatic transmission that was best described as apathetic. It had all the fundamentals you need in a car: an engine, brakes, doors that open and close, and a horn that went “Beep! Beep!”

I remember the first time I stepped back and looked at it after I bought it and thinking, “Well, I’m going to have to change this right now.” Of course, being a college student I had to do everything on the cheap. So I ran down to the auto parts store and bought a bunch of cans of spray paint. I taped up the windows and the headlights and proceeded to paint the entire car bright canary yellow. Sufferin’ succotash! Was that car ever bright! Unfortunately, so was the car parked right next it (Oops). Then I bought a genuine race car hood scoop. You know, the kind like Mad Max had on the front of his car? Well, I grabbed a drill and bolted that baby right onto the hood (no, not the motor, the hood). That hood scoop didn’t actually do anything but look cool (and act as storage for my friends used beer cans). Then I put some old fat used tires and some moon rims on the wheels and I had a genuine, bonafide, race machine.

Now granted, I really didn’t change the motor at all. And those beer cans in the hood scoop rattled a lot whenever I turned sharply. After all, it was still just grandma’s skinny little straight six. But you can’t argue that I didn’t have one of the most distinctive looking cars in SE Portland at the time. There was something empowering about being able to make any old cheap modification, large and small, just for the fun of it. So I just kept at it. Somehow I only managed to get pulled over by the police once – and that was for driving while simultaneously eating a very large bag of M&Ms. Guilty as charged: it was an “M&M DUI” – Driving Under the Influence of M&Ms. Yes indeed, those were wild days.

I still like to customize things. Whether it’s cars, boats, or my house, I just can’t seem to keep things stock. I guess I need to tweak it a bit to make it mine. Perhaps I need to fine tune things until they fit just right? And so it goes with some of the processes that we use. I don’t think I’ve ever done Scrum the same way twice. And you can rest assured that I’ve never been able to implement a framework without bolting a metaphorical hood scoop on it or otherwise changing it to better fit the needs of the teams.

I don’t really understand how people can refer to any framework as strictly “cookie cutter” or standardized. That just doesn’t really match with my experience. You see, we always have to customize things. No matter how dogmatic we may be, there are difference issues and impediments that beg for us to make small changes. And that’s OK, we need to be able to change things a little bit here and there. There are three reasons I believe that the customization of frameworks is important.

First, sometimes when you look closely at those frameworks you will find that there are multiple practices that can be used in the same place. I’m thinking of the myriad different ways that we can facilitate planning meetings for example. So you have a choice, you can use the stock practice as proscribed in the framework, or you can use a custom variety of your own. It’s kind of like customizing my old Ford Falcon and turning it into a hot rod.

Second, frameworks also have gaps. Again, close inspection of frameworks will reveal gaps in the recommended processes and practices. Not everything is completely spelled out, that’s why they call it a framework to begin with (there are bits that are intentionally left blank). It’s supposed to be skeleton upon which you hang your organizations processes. The processes that are already described are what many might call essential, but they are by no means all of the processes that you can have. You can certainly add more and you can certainly innovate in the way that those additional processes are integrated or combined with the framework. If you want to hang a stained glass window in the rear window of my Falcon, be my guest.

Third, frameworks are intended to serve as the foundation or soil within which the seeds of innovation can take root and grow. Most agile frameworks are all based on the underlying assumption that this is the starting point from which you will evolve. Over time you will either hang more processes off that skeleton or you will change the skeleton itself to better suite your business and technology domain.

It’s only through customizing our frameworks using these tools that we achieve remarkable outcomes. Customization provides alternatives to stock practices that may grow stale over time. Customization can also help us to fill in the gaps in the process that were never anticipated when the framework was created. And finally, customization serves as the seeds of innovation that we plant in our frameworks in the hope of developing exciting new ways of working. We’re here to build hot rods, not clunkers, so it’s time to customize our frameworks.


Different Roots, Same Tree

May 1, 2019

Recently, at conferences, in social media, and even informal gatherings, I’ve heard statements along the lines of “[X] scaling approach is absolutely not agile for [Y] reason.” I use the word approach to avoid the question of whether we are talking about a framework or a methodology. I really don’t care about that distinction and much of the subtlety that lies there is beyond me.

Admittedly, there is a long and rich history of critiquing each others ideas in the agile community. Some examples include:

  1. XP vs Scrum
  2. Kanban vs Scrum
  3. Lean vs Agile

To my knowledge, none of these debates has ever really reached any sort of meaningful conclusion. In fact, the more I watch (and even sometimes participate in) these debates, the more I feel like they are mostly a reflection of a sort of core philosophy. What I mean, is that there seem to be some common starting points or assumptions that characterize how people approach these debates.

Let me give you an example. Let’s take SenseMaking and the Cynefin framework. We can use a tool like Cynefin to help us navigate important decisions based on the assessment of contextual complexity. The beauty of this system is that you can use it anywhere. It doesn’t matter whether you are agile or not. Cynefin is simply used to help assess and navigate the environment of simple, complicated, complex and the chaotic. What decisions you make within each context will lead you to healthy outcomes. With Cynefin, you can start with absolutely no framework or required processes at all. In essence, you are building from scratch, and evolving only as necessary. Frankly it’s a beautiful and elegant system. Conceptually, it’s founded on the notion of sensing your environment and making decisions based on what you uncover. It’s a radically empirical process that starts wherever you may be. There is no default starting point for applying Cynefin. You simply use it to help you grow from wherever you are.

The interesting thing is that Cynefin isn’t the only framework that uses this “start wherever they are” approach. Kanban is also very minimalist in its rules. In fact, Kanban usually starts by simply making the existing process visible. You don’t need to change your process at all, just make it so that everyone can see it. Starting from there, the Kanban approach recommends that we consider applying WIP limits and working to understand the constraints of the flow through the system. There are no pre-defined required processes. You don’t have to do standup. You don’t have to hold retrospectives. You basically start Kanban from scratch and add those elements wherever they make the most sense. You build your agile process from scratch based on the feedback you get from making the process visible. Again, it’s a very elegant and powerful system, that’s founded on the notion of visibility (or transparency) and allows you to evolve however makes sense for your environment.

So I see both Cynefin and Kanban as sharing some important conceptual roots (while each is very unique). Both methods provide us feedback to help make good decisions in whatever context we may be working. Both also make absolutely no assumptions about what the starting point may be. You could start with a very rigid, waterfall style, process. Alternatively, you could be using Scrum. Neither Cynefin, nor Kanban care about where you start. In fact, what they really care about is not blindly applying process without some sort of feedback. So I think of Cynefin and Kanban as the “build it from scratch” or “consider context first” methods. Actually, I really like to think of these as the Buckaroo Banzai methods, you know, “Wherever you go…there you are.”

Now this also implies that you are really committed to this learning journey, with all of its joys, discovery, false starts and dead ends. Building your process from the ground up is not for the tentative or the faint of heart. Why do we have to go through all of this learning pain and discovery, when others seem to have found some practices that seem to work? Well, the argument, and it is a very valid one, is that you need to discover what works for you in your context. Trying to apply solutions that may have worked well in other places often leads to disappointment. In the Toyota way, Toichi Ohno warns us of exactly this. If you want to build a world class process, you can’t rent it. You need to build it and find out what works for you.

But what if we really could rent our process? Wouldn’t that save a lot of time and wasted effort? Let’s face it, this is business, not rocket surgery. We can’t all be so unique that we have to waste time rediscovering the wheel. Let’s take a look at another very large branch on the agile tree: approaches based on starting with a predefined set of practices or processes like Scrum, or XP.

Scrum is based on a very fundamental set of practices that creates the infrastructure (or framework or method) for continuous delivery and improvement of small units of work. Depending on who you ask, XP and scrum came into being around the same time. As I remember it, XP was the first to really land hard on a required set of practices that defined the process as truly being XP. These twelve practices were non-negotiable. You had to do them, and if you didn’t, well, then you weren’t doing XP. You’re probably familiar with many of these practices. They are foundational practices like pair programming, continuous integration, test driven development, and so on. Part of the reason for requiring these practices was that they supported each other. It’s hard to do continuous integration without some form of test driven development. The two together are kind of a magical combination – they help reinforce each other. Often, what we see happen in the real world, is that teams will struggle with and perhaps drop practices. When that happens, keeping the other XP practices working gets harder.

Scrum does something similar, but different. Scrum has a default set of non-technical practices that are required. You must have sprint planning, daily stand-ups, and sprint retrospectives. That’s non-negotiable. To do otherwise is to do “Scrum, but…” and to be mocked mercilessly by your peers. Both scrum and XP could be loosely described as having a default set of “best practices” that are required in order to use the framework to its best advantage. Now I personally hate the term “best practice” but that’s exactly what they are doing. We’ve identified the best, minimal, set of practices that you must use as a starting point, no matter what your context is. It’s a package deal and we defer to the wisdom in the package. Unlike Cynefin or Kanban, you have a very well defined starting point, and you aren’t given the option to do differently. Now, both XP and scrum are based on empirical process control (at least in theory) and they both claim that you can evolve and change the framework as you learn to use it. However, in practice, I’ve rarely seen it actually happen (Spotify being one very notable example). When you start with a predefined set of practices, it seems harder to evolve to anything else. Well, I guess Darwin never said evolution was easy.

So we have two very different schools of thought about how to think about approaching agile:

  1. Start “where you are” and use a decision making model or visibility model to evolve to where you need to be (Cynefin, Kanban).
  2. Start with a fixed “starter set” of best practices and then evolve to where you need to be (Scrum, XP).

I think that these two philosophies or approaches explain a lot of the conflict I see in the agile community today. The “start where you are” folks seem to feel very strongly that “starter set” approaches run the risk of being applied in a cookie cutter fashion and often incorrectly. To them these approaches are likely to lead to poor outcomes and are therefore to be avoided or even wrong headed.

On the other hand, the folks who take the “starter set” approach” are appalled by the waste involved in the “start where you are” engagements. Why in the world would you waste your customers precious time and energy on rediscovering the wheel when you already have a very capable set of practices to start with? It’s folly! These practices are tried and tested and there are very few exceptions. To ask the customer to invent their process on their own is just a high risk recipe for disaster! Therefore, to do anything other than the “starter set” approach is to be avoided or…well, you get the picture.

I think the argument only gets amplified when we start to include scaling frameworks in the conversation. As I look more and more closely at the scaling frameworks, I start to think that I see their roots in each of these different approaches. For example, SAFe has its roots firmly in the “starter set” camp. SAFe is most definitely a framework of prescribed “best practices” that are intended to be applied universally. There is some allowance made for the size and scale of the organization, but the gist is that everyone does SAFe. On the other hand, there is LeSS which seems to share its roots much more closely with the “start where you are” approaches used by Cynefin and Kanban. In LeSS there is more emphasis on using tools like systems diagrams and root cause analysis to discover the right means to change the system for scaling. So LeSS feels to me like it leans a bit more toward the “start where you are at” approaches.

Of course, the adherents of each approach think the others are nuts. I think some of that is due to how each sees the world. They are coming from very different starting points. I’m not sure they’re ever going to agree with each other. Fortunately, I’ve seen both approaches work well for people. And I’ve also seen them both fail miserably. Often it had little to do with the frameworks, and a lot to do with the people. So I guess we count ourselves lucky and try to remain calm when they point quivering fingers at each other and proclaim loudly that the other is “Not Agile”.

Of course they aren’t.

That’s OK.