Is it time to update your engineering processes?
Main illustration: Luke Waller
Well thought-out engineering processes are an asset to any company – but if they aren’t being updated regularly, these processes can start to slow you down.
I came to Intercom from a company with a culture of heavyweight engineering processes. It was a well-oiled machine with battle-tested and often updated procedures.
From an engineering perspective, it successfully kept you focused on coding. Tasks were always well-described in Jira, and included clearly defined expectations. Designs came in and were exported to HTML so you didn’t have to worry about using Sketch. You did your job, then moved the task to QA. If something came back, it was always with a good description of what wasn’t working.
When I started at Intercom, however, I was surprised at how lightweight the weekly engineering processes felt compared to my previous company. No estimations. No Jira. No separate QA team. Initially, I felt overwhelmed. I wondered why it looked this way, why everyone just aligned and no one tried to structure the processes as I was used to.
“Processes have to serve the development of the product”
The main reason is that in both of these companies, there were different problems to solve, even though it looked similar on the surface. Intercom is very much a product-first company, and very heavyweight processes can be too much of a constraint in a product-first company. In this sort of environment, the processes have to serve the development of the product, rather than the product developing out of predetermined processes.
At Intercom, we have a very strong culture of solving the right problems. We are ruthless in defining what the true problem is, how we solve it using a small, well-scoped project (or a cupcake, as we like to call them), and how it might eventually look like if the cupcake proves to be successful.
In short, we ask what is the problem and how will you measure that it’s solved. And we don’t just use this approach when working on our products – we try to apply the same approach whenever we want to add new or adjust existing engineering processes.
The subconscious benefit of processes
In any organization, processes are important and beneficial. They streamline the workflows, help people make fewer mistakes and bring some degree of comfort – having a good set of processes can create the sense that work has already begun to proceed.
“Processes are usually comfortable in the sense that they are institutional habits”
Processes are usually comfortable in the sense that they are institutional habits. We are stretched in our jobs already, so work that is aligned to a process is similar to a habit. The process is already de-risked, thought through, and ideally has a proven track record of success. It removes a lot from your plate and lets you focus on what’s important. It’s compelling to have less on your plate, right?
Solving the problem you have
Whenever you are designing a new process, the most important and the hardest part will be to clearly define the problem you are attempting to solve. It’s crucial not to skip this step. If you don’t identify the problem clearly, then you need to ask yourself why you are even starting. Proceeding without a clearly defined problem can be a sign of a worrying tendency for bureaucracy – and this can often be the first step towards alienating your best people.
“Work that is aligned to a process is similar to a habit”
Instead, processes must be agile and innovative. They need to let you move fast. They can take a cognitive overhead off your plate to let you focus on the most important things, but only if you solve proper problems with them.
I am sure that you can easily find at least a couple of problems you would like to get rid of. It can be something as huge as “we are making mistakes with people we hire”, leading to a re-evaluation of your recruitment process. In software consulting, the problems are predictability and accountability for your customers. At Intercom, our problems are our customers’ problems, and revolve around making the best product. Here is our advice for tackling these problems.
Define the success criteria
When you have a good understanding of the problem, define the success criteria for your process. Don’t start with the process, start with what success looks like. Starting from success gets rid of your biases around the design (what you are familiar with, what you are comfortable with, etc.) and focuses instead on the best outcome possible. This defines the true success of the process. Remember, usage without value is a clear failure, so usage of the process in itself is not a measure of success.
“It’s easy to fall into the trap of thinking that ‘usage is success’ in situations of high discomfort”
It’s easy to fall into the trap of thinking that “usage is success” in situations of high discomfort. If you feel uncomfortable with the current level of structure around you, you start thinking about improving the structure and introducing new processes. But if processes don’t solve real problems and are not being constantly improved to meet the success criteria, they keep people from innovating and harm your culture.
Update your engineering processes periodically
It’s important to update or get rid of old engineering processes once they have outlived their usefulness, rather than remaining reliant on them out of habit. The whole exercise of designing a process is based on solving the problem. However, this problem is present right now, at the time you design the solution – the problem won’t remain static, and therefore the process shouldn’t either.
“If processes don’t solve real problems, they harm your culture”
To make sure that you are not solving the wrong problems, you must encourage everyone using the process to challenge the status quo. In order to achieve that, you have to make sure that your processes are easy to change.
Master your habits – and your processes
Processes should be beneficial and helpful without becoming burdened by bureaucracy. At their best, they can help you innovate, move fast and keep focused. However, you need to remember that every company is trying to solve different problems and therefore needs different processes. The worst case scenario is when you try to apply processes that don’t solve problems or don’t serve the goal of the company.
Like habits, some processes are good, some are bad, and some outlive their usefulness. And like habits, processes can be hard to change. But remember that successful companies, like successful people, are defined by their ability to develop and change their habits, rather than becoming beholden to them.
If this sounds like the sort of environment that you would enjoy working in, we are actively hiring – check out our openings.