Colorful wires going into a circuit board.

On reducing complexity

This is a common challenge once a company has built enough “stuff”. The burden of maintenance and the difficulties in refactoring makes one cry out for “Simplicity, now!’. A common perception of reducing complexity is to “dumb things down”, this is a reaction to the tension of it being difficult to untangle things. It’s often a good idea not to act on this tension, but look a bit further at the issue at hand.

Before even starting to consider doing anything, it is worth while to take a step back and analyse what exactly is complexity. People working together sometimes create established truths and create a shared understanding of how things are. Not based on research or analysis. There are multiple forces at play when a team starts talking about “too much complexity”. It can be a failure to deliver on their promises leading to a sense of failure and a need to place blame outside themselves. In companies with a hierarchy teams often create a lore of complexity as an explanation of why things are not going as planned. In the post The hidden meaning of complexity in the context of software development I talk about how the word complexity can mean something different entirely.

How to go about changing things?

One way to reduce complexity is to have to deal with less. Are there parts of the application which hardly ever changes? Would it make sense to split out isolated behavior from the main build? When doing this you can often get the counter argument of “we don’t want micro services!”. True, splitting out into separate might reduce some complexity and focused services that hardly gets deployed are great! However you can also isolate code which hardly change into libraries you compile in, reducing the number of things to build.

The misconception of thinking that reducing complexity always means removing or reducing things. You might actually reduce complexity by embracing new paradigms and undertake larger changes in your architecture. Doing this might require you to acquire new capabilities and learn new things, however this is not the same as adding complexity. Learning and evolving is always a key part of software development and should be just as natural to do when trying to reduce complexity.

Let’s say you have monolithic API which has grown out of control with long build times and a lack of efficient horizontal scaling, one way of reducing complexity could be to make drastic changes. Perhaps you need to insert a message queue and embrace an event based architecture? This might seem counter intuitive to reducing complexity , as setting this up is not that simple. However I would argue that often is this planned complexity preferable to the accidental complexity of a module which has grown out of control.

The means of production

When rescuing complexity an essential task is to look at the means of production, which is software is the delivery- and runtime infrastructure. Whatever path you choose in order to reduce complexity, it has to start here. If you continuous delivery system is fragile, or non existing, that is a place to start. If your infrastructure isn’t possible to replicate without manual procedures, that’s a thing to fix.

The reason for this is simple, no matter what you’re looking at doing it’ll be a nightmare if these things aren’t running smoothly. It will greatly reduce the types of things you can choose to do and it will also increase the time it will take to dig you out of the hole you are in.

Image of wishes worshippers write wishes on small wooden plaques, called Ema, and hang them for the spirits to receive.

On always assuming best intentions

The title of this post is a phrase often repeated in the onboarding process at my current company (and probably many others too). It sounds like a pretty straight forward thing doesn’t it? What kind of person would not automatically do this? I am afraid I’m one such person, and there is a reason why.

Once in my career I was bullied at work in a very subtle way for a long period of time. It was not obvious and I did not realize its effects on me until I was in pretty bad shape. The road to recovery was long and I think I won’t get completely over it. There are still times when my instincts kick in and I go into “protection mode” by some comment or a certain behavior. I have learned to recognize these feelings for what they are: ghosts from the past. However these things still affect me to this day.

What does my scars from bullying have to do with the initial quote: “always assume best intentions”. As I see it this statement comes from a place of privilege, by people who probably haven’t gone through similar things as I described earlier. My bully did not set out to bully me specifically (I think), having “no bad intentions” did not prevent this person from causing harm. 

The statement “assume best intentions” is a bit similar to “don’t be an asshole” when it comes to how to codes of conduct on how behave in certain spaces. The problem with this statement, is that it ignores the unintentional assholes which cause a lot of issues. The same thing happens when some people use the phrase “assume best intentions” as an excuse to blurb out whatever they like without really taking into consideration the recipients or the current context. You can only expect people to assume best intentions if you have put in the work to build the trust and that trust has been built up over time. 

I come prepared

Photo by Harry Grout on Unsplash

Even in a welcoming and friendly environment where I trust people, I can still have those flash backs to past experiences.I react to comments or feedback in a way I don’t like and I get those old feelings back. In order to cope with this, I try to be vigilant when I react to comments. I pause, step back and try to see if this is “that old feeling” from a bad period causing my reaction. If it is, I acknowledge it and move on. 

Certain things spark these feelings to occur more than others. Programming sessions with many people is a stressful event and does bring back those feelings of uncertainty. It used to feel like a battlefield or a test where I felt I was destined to fail. When I go into such sessions today I prepare myself mentally on the fact that I will have to deal with these emotions and know that I have to put to the side.

The road ahead

I am able to assume best intentions, but it’s only through working with these difficult feelings I can do it. It’s not always easy, but it’s part of me and I can use this knowledge to perhaps help others. Having had to deal with workplace bullying has broadened my horizon.

Being open and transparent about this is also important. By being open I can put words on feelings that others are experiencing, helping them realize they are not in a healthy work environment. This is the positive side of working through my own bullying experience: helping others.

Photo by DLKR on Unsplash

A dark forrest during sunset with some light shining through

On being open to grow

Disclaimer:
All my “On..” posts are things I write from beginning to end without any editing or thinking about structure (so it’s like all other posts?). They are just dumps of thoughts I’ve had which I deem that maybe they’re useful for something or someone, so I’ll just dump it here where nobody actually sees them.

A friend of mine told me his friends reaction when he said he was starting to learn how to play the flute. They said: “why do you want to learn that now?”. What they meant was why are you, a grown man, starting to learn to play an instrument? As if that’s an outrageous idea and that it’s not something grown up people do!


It’s a really sad outlook if we’re not supposed to learn anything new in what in most cases will be half our life time! We learn a ton of stuff and then suddenly because we’ve gained responsibilities and have obligations we are to stop learning? This is a preposterous idea. Learning and changing is the most natural thing we do, so why stop?
I know some people think it’s too late to change and things like that. What I think is the case is that we gradually neglect and pay attention to our own willingness and openness to change. That’s why we stop, because our minds are closed.

You stop growing and evolving. One example is often see is music. You can choose to stop exploring and being open to new impulses, which means you enjoy the same music as when you where in your twenties. There is another option, which is to continue being curious and open to the idea that just maybe there is the odd chance of someone being capable of creating music you might enjoy even after you’ve surpassed the age of 35 🤷🏼‍♂️ It requires a mindset of being open to new impulses and challenge what you belive is good music. Engaging and making an effort to understand something new.

Many new parents find themselves in the same position, having suddenly to deal with the fact that their lives are forever changed with the arrival of the infant. You can choose to constantly look at what you are missing out and the life you used to have, constantly looking for opportunities to get a tast for “the old life”. I believe this will only make you miserable as that life will never return. Instead one could choose to be open to the new things that your life now offers you. This huge change is a great opportunity to grow as a person. Learn new things about yourself and also be open to all the learnings your child will give you. If you pay attention, you will notice that the child is learning you just as often as you are learning it things.

Person with long hair in a dark room looking through a window with light coming through it.
Photo by Mario Azzi on Unsplash


What’s the key difference between someone “stuck” and one that evolves? It is, I think, a willingness to seek out new impulses and to be open to the fact that you might be wrong in your current assumptions. In order to grow and learn you have to be open to receive new impulses. It means you must reflect on your view points, you must and should dare to change your position on things.When someone comes to you and say that you perhaps could have solved something in a different way. It’s natural to go in defensive mode and try to explain why, that you didn’t intend it that what and you explain all the reasons why you did what you did. I’ve learned that this is not how you receive feedback. First step towards learning from feedback and input is to listen, like actually listening. Take in and focus on understanding exactly what the person said, without judgement and without trying to defend yourself. In order to achieve this, I think it’s vita to be open to the fact that you might have to change or adapt how you do things.

An office space with a long table with chairs next to it.
Photo by Jose Losada on Unsplash

Starting out in the IT industry you work on the ground floor and all you have to do is to show you know the craft. Gradually you’ll be expected to take into account things outside the realm of just the one thing you know. The progression from junior to senior is not about years, it’s about widening your perspective and to evolve you understanding of what it is that you do. Often a good senior will get offered the opportunity to lead.
This is often done without any real formal training or coaching mechanisms in place. A good crafts person is somehow automatically a leader.

This fallacy leads to many dysfunctional teams and some times destroyed careers.When accepting the challenge to lead you must be open to change. Everything you do is different when you are a leader and you have to be able to adjust your thinking and behavior. You have to put in the work to understand the power dynamics between leader and worker. In order to help your workers grow you have to learn how to activist listen to them and to turn  that input into actions. It is an entirely new job, it’s like going from a car mechanic to becoming a nurse. The requirements of you as an individual have completely changed and you have to change. You have to be open to the fact that this will change you as a person and you’ll be a different one on the other side of your new position as a leader.


This isn’t only about the classic worker-to-leader scenario where openness to change is essential. During the Covid pandemic a lot of people have had to suddenly work from home. This is a great opportunity to learn new things about yourself, if you are open to change. One option is to dig your heals in and try to mimic  “the good old office vibe” in a remote setting. We’ve all seen that it does not work and people just become really tired of the endless video calls. A different approach is to look at working remote as an opportunity to learn something. All trends point towards the new workplace being much more duos and flexible, so instead of fighting against it you should embrace it as a learning opportunity.

Grey laptop on top of a patterned blanket in a dark room.

3 råd til å takle Arbeid Under Pandemi

Tweeten over ☝er et poeng som drukner i alle råd om “hjemmekontor” og “slik jobber du best hjemme”. Dette vi holder på med nå er ikke det samme som å jobbe remote- / distribuert, faktisk er det veldig langt unna og det glemmer mange av de som kommer med velmenende råd. Jeg har jobbet remote i ca to år og det som jeg gjør i disse dager er noe helt annet.

Å arbeide under pandemi (AUP) handler i stor grad om å takle det mentale stresset du er under. Dette er ikke noe jeg vanligvis må håndtere når jeg jobber remote til vanlig. Det å jobbe remote handler mye om frihet til å jobbe hvor du vil og når du vil. Jobbe under pandemi er noe annet, du har begrenset frihet til å jobbe hvor du ønsker og kanskje når du ønsker. Tingene vi vanligvis gjør for å kompensere for å jobbe remote kan en ikke gjøre i situasjonen vi er i nå.

Derfor vil jeg gi noen råd om hvordan arbeide under pandemi, fordi dette er helt ekstraordinære tider.

Råd #1 – ikke les nyheter mer enn en gang om dagen 🙈

Dette handler ikke om å ha hodet i sanden, men det lages så mye saker hver eneste dag om situasjonen vi er oppe i at om du følger med på alt så vil du bli helt utmattet. Ved å redusere inntaket av nyheter vil din mentale helse bli bedre, du vil klare fokusere mer på å gjøre jobben for arbeidsgiver og familien din.

Råd #2 – vis litt ekstra omtanke ❤

Min kollega Alexandre Leisse har mange bra råd og ett av dem er å skape sosiale arenaer hvor man kan hjelpe hverandre i en vanskelig tid. Dette er viktig i remote jobb til vanlig, men ekstremt viktig i den tiden vi er i nå. I dag er det en haug folk som må jobbe alene hjemmefra for første gang. Bor du alene ser du kanskje ikke andre mennesker hele arbeidsdagen.

Derfor er det viktig å sjekke inn med hverandre: “hvordan går det?”. “Trenger du et friminutt på video samtale?”. Vær litt ekstra raus og vis litt ekstra omtanke. Fordi dette er spesielle tider vi lever i akkurat nå.

Råd #3 – bruk AUP som en mulighet til å bli bedre på skriftlig kommunikasjon 💪🏼

Å fordype deg i noe som kan gi mestringsfølelse når du lykkes er en herlig ting å distrahere deg selv fra alt som skjer. Gå all inn og fordyp deg i kunsten å kommunisere via tekst. Være det seg ved å skrive e-post, dokumenter, chat meldinger eller noe annet.

“Bruk video, bruk video chat” råder mange deg til når du jobber hjemmefra. Jada, det er nyttig å ha “høy båndbredde” samtaler via video chat. MEN! Og dette er viktig. Men, det er et supplement til skriftlig kommunikasjon. I stedet for å bare “flytte kontoret over på video chat”, hva med å benytte sjansen til å bli bedre til å kommunisere skriftlig?

I stedet for å “jukse” med å kjøre video hele tiden, bruk heller denne muligheten til å trene på skriving og tekstlig kommunikasjon. Gi deg selv muligheter til å føle mestring i en tid hvor alt er kaotisk. En ekstra fordel er at du blir en bedre arbeider også etter alt dette er over.

Arbeid under pandemi har få likheter med å jobbe remote, ikke la det skremme deg fra å prøve det en gang i fremtiden ♥️

Espen D.
A brown cow looking towards the camera with one eye.

Detecting bullshit 🚨

I remember when I first read How To Detect Bullshit by Scott Berkun, I was mesmerized that someone was able to articulate this so well. Throughout my career I have referenced this article to my coworkers. Today, more so than ever before, being able to detect bullshit is one of the most important skills you can have working as a programmer.

An endless stream of bullshit

There is an endless stream of bullshit flowing all over social- and traditional media at any given time. Previously it was not so constant and all consuming, but today you will encounter countless situations where the skill of bullshit detection is required.
If you fail to acquire this skill or do not practice it, you will end up making flawed decisions, make bad choices and maybe you even end up loosing your job over it!

Having a finely tuned bullshit filter is something that requires persistence in this day and age. If you do not force the filter to be applied to all information everything you consume, it will wear you down and you will be one of those people who’s only capable of reiterating something somebody else came up with.

I would argue that in all positions bullshit detection is essential. Obviously it is vital when being in involved in hiring processes. However you need to apply the same filter when working as a programmer and sysadmin. We are all bombarded with trends, hypes and promises of a new silver bullet every single day. A finely tuned bullshit filter is essential to be able to pick out the few important pieces that pass before your eyes during a day. Without it you’ll quickly feel exhausted and get a feeling you are not keeping up.

It only takes one question:

One of the first items in Berkun’s article is this, asking the question:

How do you know what you know❓

It sounds pretty easy, but once you focus upon asking this question every single time someone makes a statement, you will be surprised how often the answer will not be satisfactory.

Always be alert 👀

Let’s say you are visited by someone who’s portrayed as a thought leader in innovation. The first question you should ask yourself should be:
How does this person know what it claims to know?

In an argument with a fellow programmers when someone makes a claim that “X is superior to Y”, your first question should be:
How does this person know this?