No matter where you work, if you utter the word âprocessâ aloud, youâre likely to elicit groans. It doesnât need to be this way, though. Process isnât inherently bad, but the wrong process is absolutely terrible. Or, as Michael Lopp so eloquently stated, âEngineers donât hate process. They hate process that canât defend itself.â The problem is that thereâs no such thing as a perfect process.
Wildbit has almost doubled in size in about a year and a half. So almost any semblance of process that existed before 2015 hasnât held up. With the increased volume of communication, weâve been going through all of the growing pains of needing to establish a bit more process to keep things running smoothly.
One of the most important changes weâve made to support âprocessesâ is to recognize much of what we do isnât about tools or process per se but rather about discipline and focused communication. That isnât to say that we havenât had our fair share of discussions on tool selection, but most of our process conversations revolved around balancing communication and distractions. Weâre simply too big for everyone to be involved in everything, but we still have the lingering effects of the team being used to helping out everywhere. But enough about Wildbit. Letâs talk process.
Just as too little process can lead to sloppy execution, so too can too much process lead to suffocation, slowdown, lack of innovation, and low morale.
The right process depends on the type of work youâre doing, the size of your team, whether that team is local or remote, whether theyâre in distributed time zones, the experience levels of the team, their familiarity with each other, the skill sets of the individuals on the team, the technology and devices used by the team, and even the end users being served by whatever that team is doing or creating. There are a ton of variables.
Just as too little process can lead to sloppy execution, so too can too much process lead to suffocation, slowdown, lack of innovation, and low morale. Even the same team doing two different types of projects may benefit by varying the process. That versatility and adaptability prevent teams from getting stuck in a rut. Too often, when people change teams or companies, they try to fit their new team into their old familiar processes, and it doesnât work. It might work, but thereâs no guarantee. Just because one team was successful with an approach doesnât mean the next will be.
Process is not one size fits all. A good way to think about this is to look at different sized boats. A single person in a kayak doesnât need much process. Put two people in a kayak, and they need a little communication, but theyâre probably going to be on the same page with little effort. Get a rowing team, and you need considerably more practice, coordination, and synchronization to be effective. Move on to some smaller boats for fishing commercially or even performing coastal rescue missions, and things change again. Get into cruise ships, and itâs a whole other world. Theyâre all just people on boats, but they have many different attributes that affect how they go about their day-to-day work.
There is no one process to rule them all. The goal is to focus on how to help enable a team to work on the right things as quickly as possible while minimizing mistakes.
Software, or any industry for that matter, is the same. The problems arise when a small team tries to adopt the more complex processes of a larger team or when a large team tries too hard to play it fast and loose with the processes that work for smaller teams. Iâve seen teams with tons of process get nowhere, and Iâve seen teams come together with no previous contact and work miracles in just a few days without any process. To use design terms, itâs not about high-fidelity or low-fidelity, itâs about right-fidelity. Context is everything
So how do you know what the right process is? The only way is to understand the team and the variables that go into choosing a good process. The important thing to understand is that process is a spectrum, and as a team changes, the process will too. There is no one process to rule them all. The goal is to focus on how to help enable a team to work on the right things as quickly as possible while minimizing mistakes. A great approach for this is to define an ideal process but make sure everyone understands that in some cases itâs alright to skip certain steps, depending on the needs of a project. That way, the process can adapt to the needs of a particular situation.
The best way to do this is to start simple, but consciously and deliberately evolve your process organically and adapt with the changes on your team. Some changes take discipline and time, but some changes may never work. If the process is constantly changing, it will never work. If it never changes, it will inevitably become stale. Finding the happy medium is the tricky part.
Ultimately, donât fear process, but donât bank on it. Make your process earn its keep. It takes conscious effort, but it should help more than it hurts. Process for the sake of process never ends well.