People who know me know that I have a biased view of processes – and that’s probably because I’m working for Facebook at this moment, and generally speaking larger companies have more processes than smaller ones. While I have a lot of ideas while discussing with my coworkers about processes, I’d like to put down some more structured thoughts in this article.
First of all, what I believe that makes a company / organization / team successful boils down to two very fundamental things:
People, Domain.
- Key people is a multiplier to an organization. They unlock potentials and make impossibles possible. They are people of integrity who would consider faking or even taking shortcuts unacceptable – and they would quit if forced to do so. They don’t blindly follow instructions, and have their own thought of thinking. They have the domain knowledge, and willing to master new domains whenever needed. They ask rest of the org to be the same of them, or at least a portion of them.
- Domain defines how well the people power can be unleashed. Even super talented person cannot fight against trends. A hot domain may make someone less talented to look like they’re super talented. However, it’s worth noting that if you have the right people, talented people can find the right domain (think the shift to mobile and the companies who succeeded and failed)
The rest plays much less critical roles. Even with a bad process, the good ones will still figure out how to navigate it and find the answer, while a good process cannot magically turn something shitty into great.
Steve Jobs had a great comment on process vs content – which I take the content as “the content great people produce”. I can’t agree more with him.
When I think about the greatest CEOs in the tech industry, they all seem to care a lot about details, and they have a lot of thoughts on them. Take Elon Musk as an example, even as busy as an CEO (or CEOs), he still knows how a rocket works in details.
So am I against processes? No. I think they are important, though from a different way.
Processes are there to make the best use of the talented people.
While we want to work with as many talented people as possible, the sad fact is that we only have a few talents. Processes exist because they give them power, or reduce the friction of having the talented people taking care of the rest. Aka, letting the great people to become more efficient in creating content.
Let’s take an example. A team used to have unstructured roadmapping processes. This worked great because we have a great TL who understands product and engineering. This worked until the team started to grow, potentially by 2x or 3x – the TL can no longer cover every roadmapping if nothing changes.
To address this problem, we can create such processes:
- Make sure all the product ideas are vetted and ordered upfront.
- Make sure all product ideas have well-documented plan so that it’s super clear to the TL what needs to be built.
- Have this TL go through the docs and give early feedbacks on each project.
- Have a review session to finalize on the roadmap.
In this process, 1 reduces prevents low quality ideas to go through the roadmapping session. 2 reduces the back & forth between product & engineer, and also pushes product to think through the project in more details. 3 turns the back & forth into an async communications and 4 ensures the “eventual consistency” between product & engineer. This process introduces more work for the product team, but increase the value of time this TL puts into it.
While this example this talent is an engineer, it could be anyone – including yourself. It could also be an important highly productive team in the org.
Processes don’t make sense if you don’t have talents on the team, or they’re not a constraint resource. Processes increase the amount of work for people overall – and only when we can shift some work from the talented to the rest of the team processes start to make sense.
Alright, to end this post, here are my two principles on processes:
- Processes are useless if you don’t have the talented person.
- Built processes for that person so they create more great content.