Two Mektups ago, I mentioned a mindset that engineers should develop: process thinking.
This one is a bit tricky because it’s one of the areas where software engineers can easily get lost. They either get into creating too many processes or resist creating any processes and lose possible increase in productivity and focus.
I remember my times going into the senior level; I focused on increasing the team's productivity by automating things or taking care of the tasks that nobody wanted to do, such as researching a topic and writing a results report. These efforts ended up helping me grow into management roles. I also saw similar work from my colleagues who ended up in staff+ engineer positions.
Let’s dive in!
What is Process Thinking?
Focusing on processes to increase productivity helped me to see how people get distracted from their work. Coding and designing applications/systems demand focus; these are not jobs you can do while watching a video on the side (Don’t tell me you can. You cannot.). Although many engineers try keeping their focus on their own strategies, they might have a tremendous amount of distraction from the company. If projects need too much conversation and consensus every time, creating a standardized process can help.
Some of these processes are technical, and some of them are not. Whether you want to grow in the Individual Contributor or management track, your focus will shift.
Growing into manager roles demands improving the productivity of the team, usually without writing a single line of code. For example, when I was a senior engineer, I focused on how we communicate with each other, our team and company-wide routines, and the collaboration we do between teams. I led the creation of the RFC process in our company. I created the customer support days for engineers because engineers were unaware of the customer complaints. These were the results of the problems I had seen.
Although requirements of staff+ engineers change from company to company, the role often demands a holistic view of the systems and how people interact with these systems. For example, if the engineers spend a lot of time rewriting the same components from scratch or copy-pasting them from previous projects in each new project, creating a reusable component or library of components makes sense. Finding out how the company will maintain this library is process thinking. Creating a library is often easier than integrating it into existing systems and keeping it maintained for a long time. If you only develop the library and leave it there, it will come back and bite you. People will often refer to your work as unfinished or not thought well. Thinking about this library’s lifecycle and finding the best strategies will move you forward in your career.
We can summarize the process thinking as, “Making the place better than you found.”
How to Find the Needed Process
When we wanted to have an RFC process, we didn’t start from the RFC. We had a feedback and documentation problem. Individuals couldn’t get enough feedback on their ideas and needed a way to make their ideas more visible. Their solutions were not reaching their potential. Also, we often couldn’t find any background information about a strategic decision that’s been made in the past. Not knowing the background of a decision makes it difficult to change later. By introducing a process, we opened up a way for new ideas and we made sure they were written down.
Long before the RFC process, I tried implementing Scrum with two weekly sprints in my previous team when I was an engineer. Because I’ve read a few books about it and wanted to apply my learnings. Although everybody was happy to try Scrum, it did not solve any problems we had. Scrum slowly phased out, and we went back to our previous position. The mistake was that I liked the solution, yet, it didn’t address any problem in our previous collaboration system. Now, when I look back, I see my mistake: I didn’t look at the root problem. And that’s how you develop process thinking.
Look at the root of the problem and start thinking about how you can solve it once and for the long term. Process thinking is taking a step back and having a holistic look. Seeing the bigger picture shows the overarching problems and interconnections between them. It requires a lot of research. Although your company’s problem might be unique, a lot of problems are solved by other people in the industry. When you find a solution, don’t jump into the first one. Find multiple strategies and bring sustainable solutions.
Don’t have a process for the sake of having it. Process thinking somehow tricks you into loving processes—the solution you bring. Keep your focus on the problem. You might learn a process from others and want to implement it in your team or department. However, look at the problem in the beginning. Which problem does a new process solve? Mindfully and diligently approach your problem and go into its root before introducing any process. Ask for help and feedback before implementing the process.
Process thinking is not an alone activity. You have to involve your team and others and work together. Without their support, your attempts will always fail. You have to get the buy-in from people and earn their trust so that they will follow you.
How to Make Progress
I don’t know how many times I’ve seen a process kicks off well with huge support and slowly phase out. Implementing a sustainable process is more difficult than creating it. There are tons of things that can, and will, go wrong. Similar to the second law of thermodynamics, without deliberate action in any process, the degree of disorder increases. Here are a few things I learned about creating department- or company-wide processes:
- Be reliable. Reliability builds trust. When you promise to do something, don’t neglect it.
- You can’t do it alone, and more importantly, you can’t make people do something. What you can do is to make the entry barrier low. Then ask them to give it a try.
- You need to remind, ping, and push people deliberately. Saying something once won’t move the needle. Changing habits and processes is not easy. Even if the existing processes are broken, humans are hesitant to change and often fall back on whatever they have.
- If it doesn’t work, it doesn’t work. Adapt or abandon. If you find a better solution on the way, evolve your solution. There is no perfect solution; all solutions are trade-offs. Learn your trade-offs by asking why people don’t follow the process. Adjust your solution when you hit a roadblock.
- Find the balance. Too much process will never move anything; too little process is pure chaos.
I want to close this letter with a differentiation between managing and leading that you need to be mindful of while growing into leadership roles. Paulo André mentions a principle that must be part of any leadership and management role: “Manage process, lead people (and be led by them). Processes are inanimate, to be controlled, tweaked, optimized, manipulated. People are animated, with thoughts, feelings, hopes, dreams, fears, and anxieties. Treat each accordingly, and never confuse the two.”
When any leader tries to manage people, it ends with disaster. While working on processes, lead people but also allow yourself to be led by others.
P.S. Maybe you can try process thinking by creating a Definition of Done within your team and extend it to the organization.
P.P.S. If you want to send this letter to someone, send them this link.
Updates from The Last Two Weeks
I published an article.
When you use any drugs, have you thought about the background of it, about people dying and suffering?
I’ve been thinking about drug usage for a while and never had a chance to have an open conversation with anyone for a long time until recently.
If you find this letter valuable, consider sharing it with friends or colleagues!