Skip to content

Separation of Concerns

There is a concept called separation of concerns in software development. The main idea is designing the system (or code) by keeping the different sets of information away from each other to understand better, refactor, or delete quickly when the time comes. When the separation is blurry, the components become tightly coupled. It means that we need to edit many unrelated parts of the code whenever we need to refactor. While developing good quality software, this concept is generally in the mind of developers. But I see that it sometimes fails when the topic changes from software to a more personal side of the work, such as communication or personal growth. We often don’t even realize that we’re mixing things. There are a couple of reasons.

First, the information flow is massive, and we try to keep it up. The information comes from many different directions. Every single day, there are tons of things happening. The marketing campaign of the software we developed is going live, the user gives feedback on a feature, the financial situation of the company is announced, or a new fantastic article comes up that we want to read, and so on. If we are in a small company with less than ten people, it’s somehow easier to manage. But the bigger the size, the worse it gets. And within all that catastrophe, we try to follow what’s going on while trying to do our job simultaneously.

Second, and also related to the first one, the exponential increase of the communication channels. When there are more than ten people, the complexity of communication becomes high. The number of channels gets more and more, and we cannot keep up with what happens on the other side of the room.

Third, not having a career growth plan. A career growth plan is not about job titles. It’s about in which direction we want to learn and get better. When we create an unbalanced personal growth plan, it either ends up missing work goals or we lack personal growth. Most of the time, companies put the goals in front and expect personal growth outside of work. Or we try to grow while focusing on the goals. The personal development plan is also not always in written form. We tend to approach it intuitively and not bother with sitting down and planning it using the facts.

Last but not least, mixing up social life within the company. Hiring processes include cultural fit to make sure that we’re bringing someone we can have a better interaction with. Since humans are social animals, we depend on social life. We spend countless hours with each other. When our teammates become our friends, the work topics start mixing into the non-work time, and personal life topics slowly leak into the work time. I’m aware that the sharp separation is almost impossible. But not being careful on the social side of life might create many problems (such as FOMO) in both work and personal life.

Now we know the reasons, how do we separate these then, or should we? Let’s start with career concerns. Most companies don’t have career paths defined. We also know that having a clear separation of roles also means hierarchy and limitation. It’s hard (but not impossible) to switch between two distinct career paths (like going from software development to sales or management). Regardless of what the company has, we need to create our personal career plans. This plan shouldn’t be based on any title. Instead of focusing on goals such as “I want to become a Software Architect,” we need to focus on areas and approach them like “I want to learn more about software architecture and design and improve my skills.” Changing our perspective allows us to focus more on our constant growth instead of big and prone-to-fail goals. After that, we can start creating goals that support our approach, such as “Learn and practice Microservices,” if we want to be a software architect.

Once we have these goals separately, we can align our career plan with the company's options and offers. The company might or might not be able to help us in our career growth. Sometimes it doesn’t have an opportunity to offer but can suggest something else that we didn’t even know or consider. It may not provide a position, but we can allocate time to improve our skills in a way we want to. The key here is not to tie our career to one specific company or position to have an independent future.

After finding out our career plan, we can now tackle the communication burden and information overflow. If we can limit ourselves intentionally in both, we can be more effective instead of seeing them as problems. Once we know how we would like to grow, it will become easier to learn to say “No” to some topics. Maybe the marketing area will be interesting for us but not the infrastructure engineering. Therefore, we can easily cut our information flow from infrastructure teams. It’s okay to have many interests in different work areas, but if we’re reading Slack messages for two or three hours every day, we might have created an infinity pool while we only needed a big box. We think that we are part of the boundless sea, but there is a hidden pool wall in front of us. The best strategy is being a liberal when a new information flow starts but quickly turning to be a conservative and cutting the wires that are not aligned with our growth.

The same applies to the communication channels. If we put twenty people together and let them work as a team, they will most likely fail. Working with many different people broadens our perspective and enables us to see different angles on what we do. Even though it’s an excellent strategy to have a big, diverse group, managing this communication is way too hard. As a result, these big teams are generally divided into smaller units. Hence, we need to start limiting our time and picking the communication channels to create or get the most value.

At the same time, the work is a cumulative effort, not an individual. We cannot only focus on ourselves and be arrogant by cutting off communication when it doesn’t interest us. Sometimes, there are places that we have to be, even if it’s not what we want. In these situations, the one feasible strategy I see is delegation. If we can delegate some of our meetings and work to someone interested in the topic and have similar knowledge, we should delegate. If they don’t know the topic, we can onboard them. This is a win-win both for our colleagues and for us. They have a chance to have a more significant impact, and we can focus on the work we want to contribute and enjoy the most.

Once we handled all, the last thing is a social life at work. All of the above help us to create better-formed social environments. When we have shaped our circles at work, we also structure our social groups. What we will have at hand is groups of people with the same interest. So we can form healthy relationships with less effort. As we have limited energy and time—social efforts consume a lot of it—there is no choice other than being selective.

We have a constrained pool of opportunities at work. We have to use it as effectively as possible. Being open and getting in touch with many different people might seem like expanding this pool. However, it makes our lives harder. It’s more challenging to make a decision when we have twenty options instead of five. Smartly limiting our choices will help us to build our careers and avoid FOMO at the same time.

We want to climb the career ladder as fast as possible, and this is entirely normal. But this shouldn’t be a goal. The goal (at least mine) is to have a healthier work-life where I can earn enough money, contribute to a common goal, learn, and grow to create a better life for ourselves and our families.

Since we’re living creatures, these things should be living with us as well. I was an iOS engineer with a high interest in Deep Learning two years ago. Today, I’m a backend engineer with an increased interest in organizational and leadership topics. I went with the flow until now. Instead of going 100% with the flow, we should draw some frames for ourselves. I know that it’s hard. But at least that’s what I’m trying to achieve by myself.

It looks like we’re simplifying the complicated working life. Yes, we are. I know that working life is very dynamic, and there are many other factors. However, going with the flow puts us in a position where all of the concerns are mixed. Once we see them separately, we can understand them better and refactor them easily. And if things don’t work out in a company, we will know the exact reasons why we left that place.

Published at 2020-11-26 | Last Updated at 2020-11-26

Reply via: Mastodon, Email