![3 Approaches to reduce complexity in software systems](https://digitalpress.fra1.cdn.digitaloceanspaces.com/svnwymx/2024/06/feature-3.webp)
3 Approaches to reduce complexity in software systems
Many approaches exist to handle complexity in a software system. In this article I will touch three of them: general- vs. special-purpose modules, using layers and staying consistent.
Many approaches exist to handle complexity in a software system. In this article I will touch three of them: general- vs. special-purpose modules, using layers and staying consistent.
In programming some modules feel more complex than others. Why is that? Often the complex modules do not hide their complexity well.
Over a year ago my family and I moved to China to work and live. Time for a retrospective. What turned out how I expected it, what did not?
Did you settle in already? A question that I heard many times after moving to China. In this post I give insights into my biggest challenges after coming to China and how I dealt with them.
In this article I want to give a brief overview of what I think is expected of a Senior Software Engineer, what you should aim for to be good and how you can grow. This information would have been tremendously helpful to me when I started my journey in software development.
Being sick in a foreign country can be exhausting. Different rules, different processes, different language. In this post I give an overview of the health care system in Germany and China. I also detail my experiences of seeing doctors in China.
Knowing what system complexity is is good. You might ask though, how you can identify system complexity and how you can manage it. In this article I will introduce the three manifestations of system complexity and three patterns to control it.
Understanding cultural differences before you are in an interview situation can be a big plus. In this article I want to introduce you to the subtle differences of an interview setting in China.
The more time you spend in Software Engineering, the fewer you will be concerned about which programming language or fancy framework will be used. Another factor plays a big role in how a project develops over time and how much fun it is to work on it: System Complexity.
When we decided move to China in 2022, I had no idea how to look for a job there. I needed to start from scratch and get familiar with the job market. In this post I give advice on how to start a job hunt in China.
In this article I want to give a brief overview of what I think is expected of a Junior Software Engineer, what you should aim for to be good and how you can grow. This information would have been tremendously helpful to me when I started my journey in software development.
Finding a job as a Software Engineer in Europe with a few years of experience is still relatively easy. How does the situation look like in China? I try to answer this question by looking at the economic situation, the working style in Chinese companies as well as necessary skills of the applicant.
There is lots of talk about leaving your comfort zone these days. Doing it means change, and most people don't like or fear change. There are huge advantages to do this once in a while though. In this post I cover some of the bigger changes in my life and what helped me to manage that fear.
In this article I want to give a brief overview of what I think is expected of a Staff Engineer, what you should aim for to be good and how you can learn and progress.
In this article I want to give a brief overview of what I think is expected of a Senior Software Engineer, what you should aim for to be good and how you can learn and progress.
In this article I want to give a brief overview of what I think is expected of a Professional Software Engineer, what you should aim for to be good and how you can learn and progress.
Career
In this article I want to give a brief overview of what I think is expected of a Junior Software Engineer, what you should aim for to be good and how you can learn and progress.
Career
In this article I share the things that changed in my work life after becoming a Tech Lead. Especially I will cover how my contribution to the team changed and how my view changed in general.
Career
I share my experiences of working in a Tech Lead role for the past two and a half years. I write about the fuzziness of the role and what my expectations and those of others have been at the beginning. Finally, no one can tell you what this role is about because every team is different.
Agile
When I write non-agile environment I do not necessarily mean an environment that does not use an agile methodologies like scrum or kanban. What I mean is an environment that is not agile. I made the following observations when I worked in such an environment. * there are a lot of
Focus
The problems of an inbox are widely discussed. Switching attention because of your unread count leads to a context switch and loss of focus. One solution is to check your inbox only a few times a day or week (this is crazy dude, he!?). Cal Newport brought up the idea
Agile
I wrote about our retrospectives already in an earlier article. In this one, I would like to write about my personal experiences of changes that your partner suggests to the meetings. I started using the way of holding retrospectives mentioned in the referenced article. I chose the structure as a
Agile
I experienced the pretty fast growth of a company I worked for, in which scrum is used as the development process. When companies grow, teams get bigger or new teams form. In my particular case the company used to have one scrum master - let's call him Jim
Agile
In one of my past articles I briefly mentioned the roles in a scrum team. One of them is the scrum master who guides the team to be successful applying scrum. But why do you need this role? Asking from a different perspective: what happens if you remove the scrum
Agile
A key point in scrum is transparency. To create transparency of the work of a team the board plays an integral part. A discussion point in multiple scrum teams I worked in was if the board should be digital or analog. I asked myself the same question when we started
Agile
When I started introducing agile methodologies in private life and in my family I thought I have to do it the right way. For me this included story estimation. It turned out that for me this is not the right way of organizing my free-time and projects in our family.
Agile
“Fail fast, fail often”. You read and hear this sentence a lot in the agile world. It is supposed to be a good practice. But why exactly is this a good practice - not only in agile? First of all, failing feels bad, right? You usually invest time and energy.
Agile
Nowadays kanban is considered to be an agile software development methodology. In fact, it is also a synonym for a token that is running through a kanban system. Kanban has its roots in physical manufacturing at Toyota. That was in the 1940s. At that time the basic idea was to
Focus
For some time already my wife and me take multiple people as an example to reduce the stuff we own and that usually accumulates in your shelves. Over the past years we were able to establish some kind of ritual to do this often. I still remember the move to
Focus
We have our dog for three years. Time passed by pretty quickly. I can say that I learned a lot in this time about dogs: how they behave, why they behave like this (although this one is quite vague), what they do differently compared to us humans. However, there are
Focus
The world in general and my environment specifically gets filled with more and more distractions. Concentrating and getting stuff done is not easy in this surrounding. There might be people that are able to cope with this. Sometimes it is also for me possible. However, if there is a constant,
Agile
I already gave a short overview of retrospectives in the context of software engineering teams. There are several books for this available and I won't go into detail about this. What I would like to focus on in this article is how we in our family do weekly