Lately, I've been really bad about taking days off of work. When we lived in the States, we'd go to Orcas Island a couple times a year and stay in this little cabin without any internet or cellular service, and I'd spend my days reading, kayaking or crabbing (catching the Dungeness variety, not bitching and moaning like I normally do). But now I find my current job fascinating, and I have too much cellular service here. Oh, and that fucking global pandemic thing is still going on, so there's that. What's my point? I had planned to take today off, finish a book I've been reading, maybe relax a little. Instead, I pissed away the afternoon writing this. I really need a more interesting life.
I talk quite a bit about two pizza teams, and while I've been good about keeping the individual groups in my organization right-sized, I've been bad about doing it myself. Over the past ten months, one of my major focuses has been building an in-house team to replace a series of vendors that we had when I came on board. I was lucky enough to trick a number of great contributors into joining us, but in doing so, I ended up with like 15 direct reports. Those would have to be two really big pizzas.
Luckily, the one Manager I had was looking to expand his role, and one of the Contributors was looking to move his career in the direction of people management. To be clear, our roles are all "Spanners", which is to say these folks don't take their hands off the keyboard. Rather, their role changes to one that includes managing the careers of contributors. They spend even more time mentoring, doing talent acquisition, planning, focusing on strategy, team alignments, prioritization, blah blah blah. But they're still Engineers. I also believe that thinking of things in terms of roles and responsibilities is far superior to thinking of things in terms of hierarchy. These were changes in roles, not promotions, per se. Some roles do demand higher salaries, etc., but that shouldn't imply hierarchy. People doing management, myself included, are just responsible for different stuff. It's a role thing, not a hierarchy thing.
Side rant (quick one, I promise): technology companies have traditionally done a worse-than-horrible job giving technical resources a path that doesn't include people management. Especially since so many great Engineers make such shitty people managers. Believe me, I've reported to a bunch of them over the past quarter of a century, as has every other Engineer out there with about two or more data points...
There really needs to be like a four(ish)-path opportunity tree, if you will. To be sure, these aren't necessarily jobs that don't already exist. Rather, they're not often formalized in such a way to be well understood paths, with structure around them to understand how to progress down that path. If there are multiple paths, then there are at least certain skills that are unique to one and not another. I consider those four paths to be: People Manager, Solutions Architect, Technical Fellow, and P* Manager (Product or Project, and yeah, I know they're different. For shit's sake, this isn't even the topic of this post, cut me some slack). Anyway, many of the skills a Technical Fellow needs are different than that of a People Manager. And, like a University degree program, we should create systems that support learning the necessary skills to be successful, and have a more structured path to follow. And we owe them that because we want them to be good at that role when they get there! It equally benefits the organization to make this investment.
Sweet jesus, I usually at least mention what the point of my meandering post is supposed to be before I get on a side rant. I haven't even gotten there yet. I'm lucky nobody reads this garbage. Anyway...
With these two moving into new roles and a couple of other shuffles of the proverbial deck chairs, I wanted to make sure they both knew my philosophies and expectations and all that jazz. First and foremost, hire good people and then let them do their thing. So, message one was that: do your thing, let me know how I can help. Message two was: I want this company to continue to work on the edge of chaos. That needs to be part of our culture. And that, FINALLY, is the point I'm talking about here today. The edge of chaos, what it is, and why I want it to remain that way.
First and foremost, what does it mean (to me) to manage a company on the edge of chaos? What does that term even mean? Let's start with the Wikipedia definition: a transition space between order and disorder that is hypothesized to exist within a wide variety of systems. This transition zone is a region of bounded instability that engenders a constant dynamic interplay between order and disorder. That just sounds cool. But it also makes sense.
This is going to feel like a rant, but it's related. I'm not a fan of (capital A) Agile. Within every one of the highest performing teams I've ever worked in, some of the things Agile attempts to accomplish were done in spades. Communication was fast, concise, and regular (think standups without the ceremonial aspects of them), work was transparent across the team (think Jira via lists and a whiteboard), work was broken down into accomplishable things (tasks without the Jira) that aligned with overall strategies and goals (think stories without Atlassian dictating what that means). And we did demos, but it was "hey, check out this thing I've been working on" or "I think we could streamline things if we did this, can I get your opinion?". And sprints were not at all a thing because we saw the work as a constant; a marathon without a finish line, like Rich Hickey says here.
What's that got to do with the edge of chaos? Necessarily, nothing, but what Agile has become is the exact opposite of what the promise once was. The promise was to introduce just enough process (and no more!) so that everyone was aligned and there existed transparency, work was broken down into workable chunks, and we didn't get bogged down in process and procedure and countless (and fruitless) meetings. But what has it become? A thing that has what seems like thousands of different books on the subject, manuals, software packages, consultants and companies specializing in it, certifications (be right back, I need some mouthwash; a little vomit just came up in my throat) and the like. In short, a whole bunch of process and procedure was introduced and put around this system that was designed to avoid unnecessary process and procedure. And that's where I make the leap towards it being bad for the edge of chaos. It shoves you towards too much order. Now, let's be clear here: you can use (lower case a)gile and still live on the edge of chaos. But it certainly introduces a risk. Especially if you get someone in the mix who feels like structure equates to output. And that often just means someone more comfortable in (capital A)gile. Chaos is unnerving. Agile gives structure. Therefore Agile makes some feel safer. But feeling safer doesn't equate to output. It (maybe) equates to knowing when one might be able to expect incremental output. But I contend that (capital A)gile actually decreases (big) output, and is little more than corporate babysitting. Yeah, I don't like it, but mostly, I just don't like it when it's not done effectively, which is to say, by the book.
So, I point this out because I don't want to introduce too much risk that might keep us from working on the edge of chaos, because the edge of chaos brings huge value, especially to creative organizations. Here's a link to a recent interview by Reed Hastings, the co-founder of Netflix, in which he talks about organizations living on the edge of chaos. It's good. And I agree completely. You can do the agile thing, but just be careful that you don't let it be the only thing you do, and make sure that you keep it in check.
Okay, so it's important to really understand what I don't mean by the edge of chaos. I don't mean not having discipline. Which I think is the common mistake. You use phrases like "the edge of chaos" as a free pass to recreate the wild wild west. There are no rules, we're living on the edge of chaos. The reality is that the edge of chaos requires even more discipline! You still have to give estimates. You still have to meet deadlines.
You've got a production system going on. Hopefully some paying customers. Certainly some responsibility. You have to respect that, and treat it as such. And when you're trying to manage things on the edge of chaos, you do run a risk that you'll accidentally let this phrase incorrectly translate to a free pass of bad habits, and then it seeps into your DNA and the next you know you're pushing shit code and ruining your reputation. None of that is acceptable, and none of that is what I'm talking about.
So what am I talking about? I'm talking about being incredibly fluid and dynamic. I cringe when I hear people say things like "I get it, we're still in startup mode" because I know in tech organizations like Netflix and Apple, they continue with that mentality long after they've becoming multi-billion dollar organizations, and they maintain that mentality because they realize that they became multi-billion dollar organizations precisely because of that mentality. It wasn't a phase for them, and it should not be thought of as a phase for us. This little clip from an old Steve Jobs interview reinforces that. Don't lose the startup mentality. Find ways to embrace it and continue with it, long after you're no longer a startup by definition.
And a big part of retaining that startup culture involves calling these things out. Write it down: we want to live on the edge of chaos; we want to retain our startup culture forever. And what specifically I am talking about here is being able to pivot. Pivot on an idea. Pivot on priorities. Pivot on the product. You have to be really, really nimble, and you do that as a startup because you have to. You don't have time to fuck around. If your idea isn't gaining traction, you change it and you quickly re-release. This is why it was so important for me to have an architectural approach that we could put into production in six months. That was the technology piece. This is the organizational approach piece (in addition to the culture).
I get that "the edge of chaos requires even more discipline" sounds (and will feel) like an oxymoron. It takes incredible discipline to support and maintain a production environment while reinforcing the mentality of good failure in your development. It takes incredible discipline to not mix up flexibility with constantly changing focuses. The latter is just chaos. The latter just results in a lack of cohesive output.
So, I want us to let the best ideas win. I want everyone to have a voice. I don't want committees or group think. I want a team of people that don't agree, but that when a decision is made, get behind the decision. Completely. I want the healthy debate. I want people who don't need hand holding. Who don't need me to put together things like acceptance criteria or verbatim blueprints to be followed to a "T", and who not only can do the work necessary to produce amazing output, but who can figure out what that is on their own. Again, I want ideas to win, and I want us to be able to pivot on a dime when that happens. And then, quickly get aligned on that new idea and figure out how to make it happen, and for those pivots to seem like they were always part of the plan. For me, that's really the crux of it: you have to be incredibly flexible, always willing and able to pivot when we let the ideas win, but doing it with unparalleled discipline, which we get from being able to focus on outcomes.
So that's about it, I guess. That's the edge of chaos for me: from the outside, it often looks like a beehive: things flying all over the place. Yeah, it's chaotic at times, but it's organized chaos and it's disciplined and it's about focus, and it relies on communication and transparency and a culture that enables it; even excels in it, but it's all about product and the idea. That's pretty cool and it's where I want to continue to be allowed to buzz around.