Few words about technical debt

If you work in IT, you probably have seen or heard the “technical debt” term. Do you know what it is? Just as the name suggests, it is a type of debt, and nobody likes to have debts, right? Similar to monetary debts, if we do not repay it, it will accumulate interest and make our work harder and harder. It may be complicated systems, lack of tests, non-documented code, tightly coupled components, complicated infrastructure or just lack of module ownership. Sounds familiar? Yes, it is a frequent problem in software development, but not only there.

Technical debt is often created when we have a fresh, great idea and want to expand quickly: there is no time for polishing, we want to cover as many needs as possible and find investors. It is fine, if we will focus on details, we can lose our chance or be overtaken by bolder competition. In effect, we often create something called “big ball of mud”: it will work, but it will hard to maintain, it will be something like mix of different solutions, lack of plans, lack of information. Such a mix based on the knowledge of team members and if they will leave, everything will be complicated for new employees.

Technical debt can destroy a company

A notable example of technical debt is Symbian, an old mobile operating system created by Nokia. I have used Symbian for a few years on different devices and it was fine, but I did know anything “under the hood”. The truth was a bit scary: the system was super complicated, the building process was awfully long, testing was almost impossible. In effect Nokia hit the wall and it was not able to extend or improve Symbian anymore. Next part of this story was sad: Nokia was acquired by Microsoft; they completely stopped all projects related to Symbian and moved to Windows Phone only. Unfortunately, Microsoft failed to properly advertise and develop Windows Phone and after just a few years, this project was canceled. Nokia was sold again and was almost non-existent for some time. Now it produces phones, but they are only a shadow of their former power.

We can find many similar examples, even companies like Facebook, Google, Amazon or Netflix had and still have a lot of issues related to technical debt: there were a lot of moments when these companies were close to “death” because of that. These companies were not able to deliver new functionalities, compete on the market and attract new customers. Why did they survive and Nokia not? Because the magnitude of the problem was realized in time and faced up to it, instead of sweeping the issue under the rug – it was always hard, but required time, something like a big house cleaning before Christmas. Probably nobody likes that, but can you imagine Christmas in a mess?

Is technical debt always bad?

Based on previous information, you can assume “yes”, but the answer is more complicated. technical debt is not bad, it is not good. It just exists because during our work, we have to deal with a lot of complicated problems and in many cases, do not have enough time to do this correctly. If we must compromise, we will generate new technical debt. In the ideal world, we can always make correct decisions, we always have time to handle items in proper way and do not generate any bottlenecks and issues. Unfortunately, we do not live in an ideal world: deadlines, customer requests, competition. All these factors cause us to take shortcuts, generate new debt, for example by extending old codebase instead of making refactor, by skipping important tests or critical validations on CI/CD pipelines.

But technical debt can be beneficial. If we will remember about its existence and periodically clean up the mess, we can also adopt (yes, like in AGILE), learn, and do not repeat similar mistakes in the future. Probably we will never completely avoid technical debt, but we can learn how to live next to it and keep growing. And it is completely fine. Also, remember, that “technical debt” does not mean only IT projects. We can use the same words to describe even our personal troubles, it works in the same way and… Maybe it is a good analogy to explain how important it is?

How to select browser on link click

I must use two browsers – it is my preferred way to avoid distractions, do not mess everything in one place and also to use the best options they offer on both computer and mobile. The frequent problem which can occur in such a situation is browser selection. Operating systems like Windows or MacOS allow us to select one default browser, so each time we click on a link, web page is opened in that default browser. It may be annoying, especially if we want to have one default browser for one app, different for others.

Real life example: Slack. I need to open all Slack links in Chrome. On the other hand, I use HeidiSQL app and want to open all links from it in Microsoft Edge. How to deal with that? Of course, it is possible to use two profiles in the same browser – both Chrome and Edge allow to do that, but I do not like this option. I already use a lot of Google services but do not like Chrome for personal items, so this is not a good option. Second drawback: in such case, browser will work “correctly” only if latest active window is from context we want to use.

An example for better explanation let’s say we have personal and work profiles in Chrome. Both opened in separate windows. Go to personal window, do something, then go to Slack and click link – link will be opened in your personal context window, not work one. Similar: I’ve just used work Chrome profile, then opened HeidiSQL, clicked link and… Yes, it will be opened in work Chrome context. Messy situations cause us to always have to remember the context or reopen the link in the appropriate window. If we must do that manually, it is not a good option. If we have more browsers, the problem is even more complicated.

Fortunately, there is a solution for that – BrokenURL for Windows. This small, free app is something like browser selection. After installation we should set it as our default browser and… it’s all. When we click the link, it will open screen with all installed browsers and more options, because it simplifies link copying or sharing with others. It can detect browsers and even allow us to open links in incognito mode. We can save our choice, so within just a few minutes we can create templates for all important apps we use – and after that just forget about any issues related to browser selection. App is small, fast, does not include any ads or telemetry, does not monitor links, supports a lot of Windows versions and many browsers. I have used it for a few months and really recommend it.

BrokenURL browser selection after link clicking

What about other operating systems? I cannot recommend anything for Linux because I do not use it daily. Similar in MacOS, but I know there is an app called Velja available on Mac App Store with similar description and should handle the same cases. If you know more about it, let me and other readers know in the comments.

Journey matters more than goal

Whoow, last time I added a blog post was in June, a long time ago, but many important things changed in my life, and I really did not have time for this part. It will never be like it used to be, but finally I found some time to write about my latest journey. My journey into myself, about a lot of pain, mistakes but also wonderful conclusions. Hope it will be nice to read for you but must warn: this post is a bit emotional and open, please respect that.

First 100 km run

Three weeks ago, I did my first 100 km run. According to many, many people, and friends, it was crazy idea: I have been running more for just a year. Of course, I ran a lot of times during recent years, but half marathon was always maximum distance, also my running was not regular. Every time the weather was good, cycling won. It was my biggest hobby. I loved that and cycled a lot in the local area and not only. The record was 400 km, one day (and night) long trip from my city to Baltic Sea, spending 2 hours there, going back by train on the second night and cycling a few more kilometers to my city. It was an amazing trip, but without any pressure. I was with a good friend, we often made stops, of course had some “crises” and required long rest after the whole journey, but no pain, no issues.

This 100 km was different. It was not a big competition, this event calls “Bike & walk marathon around Lubin”, there are few distances to choose, and it is not a race: there is time limit, but the general idea is to promote activity and discover local areas, because path avoid cities, even smaller towns and leads through forests, meadows, and fields. The goal is to visit ten special places and add stamps on the map you received during the start. Most of these points are in forests, without any people – just a box on a tree with a stamp inside. I cycled those three times, but never along the planned, “red route” because it did not make any sense, especially on cyclocross bike. This time I had an opportunity to do that, also during night. The weather was good, we were accompanied by the moon, the stars, and the sounds of animals such as wild boars. The plan was simple: try, run and walk, because there is nothing wrong with trying and failing.

Mistakes and pain

I made a lot of mistakes, and it was a good lesson. The most important was related to nutrition. There were two food points. First on about 33 km, second about 77 km. I didn’t drink enough (realized that I drank only about 300 ml in first 30 km), second it was too much sweet snacks. It is fine for shorter distances, but not for something like that. Also, I did not have enough food generally and my supplies ran out after about 50 km – had to walk/run 27 km without anything. Later, I felt it very much. The last ~30 km was almost constant pain and mental fight: like pain waves, starting from feet, through buttocks and back. Again, and again. A lot of thoughts like “I have enough, I want to end this, I should stop and call them to bring me back”. Few stops to check feet: slightly swollen, but no blisters or alarming changes so I kept walking.

Last 10 km or even more we ran. Why? It was faster than walking, so I preferred that way, to finish pain and rest earlier. Also, the closer I got to the finish line, I felt better, it was crazy. Finally, the finish line… quick rest, went to my car and back home, fortunately it took only a few minutes.

After the battle

When I got home, I felt… not bad. I ate something small, took a shower and then I started to collapse. A huge feeling of exhaustion and I only wanted to sleep. I slept only about two hours. Not sure why, maybe because I was too tired, maybe because of emotions. Emotions… When I woke up, I started… crying. Everything in me exploded, everything was released – it was not physical pain, it was happiness and sadness at the same time.

I have been tired many times after cycling or racing, but I have never experienced such mental ecstasy after an effort. Never ever, I swear. It was something like crossing “the thin red line”, without the option to return. When I think about that right now, when I write these words, it still stirs up emotions. Maybe this is how the warriors felt after the battle? I am not sure, but I know one thing: I want more. It beckons me, attracts me. After these three weeks, I know one thing: I will never again be like I was before. It changed me in many aspects. I am not crazy, I do not want to devastate my body, so I am not going to throw myself over much longer distances, but I will push forward, kept walking. There is no “impossible”, everything is just a matter of time.

Last weeks showed me one important thing: we should find time to celebrate, to experience it internally once again, but like a spectator, like observe ourselves during meditation. Then we can appreciate our own efforts and be happy, be proud – no one can take that away from us, no one can undermine it, we know we did that, and it is all. Finish line, the goal? Yes, they are important, but everything happens in the way, not after. Reaching the destination point does not change us, the whole journey does. Our life is one of these journeys, so it should always be clear, but it is not, and we need to remind ourselves of this.

Remote work: experiences and risks

Last time I helped with some studies and answered some questions about remote work and my experiences. I decided to share all of them, but there is one problem: questions and answers have been translated, so maybe not perfect.

What made you decide to work remotely?

To be honest, it was a coincidence – I was an active user of one of the Polish portals dealing with IT, I also contributed to its pages in the form of a blog. After some time, the editors offered me the chance to join them as a normal employee, only those working remotely (the editors had their permanent office in Wroclaw). The next step was to work as a programmer for a foreign contractor, from the very beginning remotely. I have been working this way for almost ten years now.

What are the risks of working remotely? I’m referring to aspects of mental health and social life.

Remote work isolates us from other people. From my own experience: as long as we work with people at home and participate in online meetings, it is not so bad. When we don’t have people at home with us, we quickly feel very lonely and depressed, perhaps without even realizing why.

Man – even the most introverted one – is a herd animal and nature cannot be fooled. The lack of direct contact with people at work has other implications as well: first of all, during online meetings it is more difficult to express emotions, to be as open as during a real conversation face to face. Remote work does not provide as many chances to talk about non-work related topics, which are very important in a situation where we interact with others for a third of the day. As a result, it is also more difficult to build lasting relationships, camaraderie. This can be seen, for example, in the situation when someone leaves the company – other people get over it much faster, because the broken relations were never as strong as they could have been in direct contact.

Another aspect is the interpenetration of private and professional life – it is hard to avoid it, it is hard to completely detach from work when it is literally at your fingertips. Things are not made easier by the fact that in the case of office work we always take it with us, because it is in our head. It’s not a machine in a factory that we leave at the end of a shift. All this can also have a negative impact on private relations with loved ones.

Another issue is physical health. When we can work at home, the issue of transport to work is eliminated: walking, commuting by car, public transport or bicycle. Unfortunately, this lack of movement affects us negatively and it is not only about the growing weight. The problem is what happens to our body as a result of constant sedentary work, significant weakening of hips.

What kinds of people adapt the fastest to working remotely? What kind of people have trouble with it?

Based on my own experience and observations from the industry, introverts tend to cope best. Such people do not need constant, direct contact with other people, remote work can be a perfect asylum for them, especially when the internal policy of the company does not require very active participation in online meetings (even turning on the webcam). Of course, this is a big simplification, pandemic time has forced people who prefer direct contact and “office noise” to switch to remote work. This will of course be a limited, subjective assessment, but such people have also coped very well in the new reality. A bigger problem may be work organization and motivation. For those who rely only on external motivation, orders coming from above, remote work can be difficult: the lack of direct stimuli, contact and discipline can make it impossible to perform duties.

How do you think remote work should be organized? That is, how to work effectively and not go crazy?

Remote work requires self-discipline first of all. If someone imagines it as a work with a laptop in bed or on the couch, such a vision will quickly fall when confronted with reality. It is impossible to work in such a way, because we will not feel like working and everything will come to us with much more difficulty. Procrastination or Parkinson’s law – these elements appear very quickly without introducing at least a bit of a plan and routine. A good solution is to have a separate room to work in, and to stick to some rigid hours. Even an element such as dress is important: dressing a little more formally makes it feel like you’re moving from a home role to a corporate one.

As an industry worker and IT enthusiast at the same time, I see a lot of problems that are either barely talked about or completely ignored, even though they have a devastating effect on work. For me, the biggest problem was overwork – most often identified with e.g. social networks, but also taking place at work. Trying to make remote work synchronized doesn’t make sense: constant notifications from the company’s messenger, countless online meetings and checking email too often makes it impossible to focus and, as a result, to perform one’s duties well – entering the so called “flow state”, where we are focused on the task and simply realize the solution to a problem becomes basically impossible. Personally, I decided to take a more asynchronous approach and whenever possible I reserve time during the day to work in focus. If at that time someone else in the team needs my help, the world will not collapse if they receive it in an hour, not immediately. This is also where the phenomenon of FOMO comes into play – again, associated with social media, yet manifested in remote work where a lot of the same things happen.

In the case of companies where the calendar is important and solutions are used to observe and modify the calendars of other employees, it is extremely important to control our own: if we do not do it, someone else from the company will do it for us, e.g. by imposing on us online meetings that may not (yet) be necessary and individual matters could be pre-arranged in another way that will not interrupt our work.

Is it possible to maintain a balance between remote work and personal life?

Yes, although a lot depends on the specifics of the job itself. I’ve been working at a US-based startup for over five years now, and in retrospect I have to say that such work changes a person. I jokingly call it “post startup stress syndrome”, but if you take a closer look, you will stop laughing. When the company was in the period of looking for investors, fighting for them at all costs, being available all the time, not regular working hours were a standard. It often happened that we worked from morning till late evening “because there was a fire” or “because at the last moment we have to prepare something for a demo with a client”. I think, however, that it would be difficult to avoid such phenomena also in stationary work – it’s just the specificity of this market and this stage of company’s development. Today we are much bigger, we are “civilizing” and we can – if only we want to – change habits. There is now stability, normal working hours, clear vacation policy, long-term planning and no one is rushing around at the last minute. Unfortunately, this is not clear to everyone. Many people – including myself – are used to working in the form of “wild west” and consider the stabilization changes as a symptom of stagnation and growing bureaucracy. Without a change of mindset, this risks professional burnout. I thought several times about leaving the company, but did I have a guarantee that the “grass at my neighbor’s” is not just painted green? Besides, without changing my internal approach, it wouldn’t help.

In the context of separating remote work and private life, I will mention again the self-discipline and environment: a separate place is essential. Good, noise-cancelling headphones, if possible also separate company equipment, on which we use only company applications. Besides, it is definitely not a good idea to use company applications (mail, messengers) on a private phone – both for security reasons and due to the fact that the two worlds are mixed. If we have access to company’s mail on our own phone, it will be enough, for example, to take a second before going to sleep to have a look and, as a result, have a night full of work-related dilemmas. Instead, after a certain hour, we should completely disconnect from corporate matters: take care of our loved ones, go outside, play sports and take up a hobby. This allows us to maintain a healthy balance, although I would add that it is not something “to tick off”. It’s a process, requiring us to pay attention and respond, just like a growing plant.

Would you like to go back to a stationary job?

Despite some discomforts associated with remote work, I can’t imagine going back to a full-time job, at least not full-time. In the case of our team, we meet a few times a year at corporate headquarters for a few days and it’s a great time for face-to-face brainstorming and integration. If I had the opportunity, I would consider working in a hybrid model such as assuming one day a week in the office. I believe that such a combination of “both worlds” could positively affect both the psychological condition of employees and the efficiency of the entire company.

The disadvantages of minimalism

I can say that I am minimalist and I really like this idea: it allows me to make my life a lot simpler, I do not have to care about a lot of things and can focus mostly on experiences. Of course, it is like all things in the world, so it has its drawbacks. I do not want to see only advantages, and say that minimalism is great for everyone, because that would not be true. Some minimalists do not like to discuss about downsides, but I prefer to be open, it always good time to thing, how can I use this in my life in better way: such ideas are not to use them in 100% to be super strict, but to be flexible and use what you really need. So, let’s discuss minimalist downsides. 

Long decision making 

It is a real issue. Because I do not want many things, I prefer less, but with higher quality, I usually spend more and more time choosing the best option before I buy something. In theory, it is fine, because we want focus on quality, but unfortunately, it has a lot of negative effects. First of all, we have to spend more time choosing things… Things! So, it may be a bit strange, because with minimalism, we want to free ourselves from things. Never-ending comparisons, advantages/disadvantages lists, quality/price ratios etc. It is just tiring and sometimes after a few days (or even a few weeks) I just reject the purchase plan, because I feel totally exhausted and think “no, I do not want this crap anymore!”.  

Second option: I use very consumer-friendly rules in Poland and buy, check something and return to shop if I decide it will not cover all my requirements. Such law allows customers to try things (of course in limited way) and then decide and I think it is fine in current situation. I used that when I looked for a new sports watch, I tried a few options and finally chose Garmin – before that I was not a big fan of that company, because I saw a lot of complaints. After a few months of usage, I am still fully satisfied and think it was a good choice. How to deal with long decision making? I think the basic thing is to really deep investigation and question “do I really need that thing?”. It is possible that if we will hold off on a purchase decision, for let’s say a month, we come to the conclusion that we do not really need it. 

It is possible we will try to convince other people  

 If we are minimalist, we will see “a lot of unnecessary things” in many situations and there is always risk, that maybe we will want to discuss that with other people, also try to convince them to change their mind and their lives. Discussing interesting things is always good, but pushiness is very, very bad. Maybe we transformed our life to minimalist-style, because we felt bad with tons of things, but what if different people do not have any problem with that and they just like what they have? It is super important to not try convince others, it is better “to be a good example”, but nothing more. If they are interested in our approach, they will ask us – and it is a good time to talk about minimalism, not before that. 

It is a big problem especially in relationships. People are different and it is of course possible that both of you will like minimalism, but it is also possible that the second side will prefer something completely different. What then? Nothing, do not try to change second person! Never! It is the best way to break a relationship, not to build a beautiful pair. If you have some usual problems like too many clothes out, just discuss about that and set some boundaries, but do not try to be “the only one source of truth”, because you are not: you have your opinion, second side has her own and it is fine.  

Always too much  

If you are a minimalist, you can always think that you have too many things. It is a never-ending story, especially if you decided to go to the minimalist “step by step”, removing one thing, then another, then another etc. I think such an approach is fine, but in reality, there is no something like “breakthrough”, there is no real time when you said “I cleaned up my things”. It may be problematic, because we can remove some things only for ideas, but without real reason. I can say that I made some decisions and after some time I regretted them – because in reality, I did not need some things only in a specific period, and when I needed them again, there was nothing.  

We can see similar problems with a lot of ideas: it is because we want to be very strict with someone’s idea and we completely forget about our life. Once again, as I mentioned in the beginning: minimalism is for the people, not the people for minimalism, so think about your decisions and be as flexible as possible. Use only some rules if you prefer them, abandon assumptions which do not fit your situation and your life. You can sleep on a mattress in an empty apartment and if you think it is fine for you, then ok, but doing something like that only for minimalism idea? It is absurd, nothing good.  

A minimalist can be stingy 

Yep, it is true. A minimalist can be stingy, because as I mentioned above, such a person will think a few times before will buy something. It means, there is a greater likelihood that such a person will also think about the real price of a new thing i.e., not only money, but also time required to earn that money, time to maintenance that thing and all others. In many situations minimalists can decide that they will not buy things because all advantages are not worth such price. Is it bad? I think not, I we do not go to extremes: sometimes we should definitely buy something (new clothes), also sometimes we should have some spare parts, not buy new things under time pressure, when something is really missing. Overall, it can be an advantage, especially now, on very interesting times.  

Gifts 

Maybe it is not a huge problem specific for minimalists, but definitely for their families and friends who are not minimalists. In the past I received some nice gifts, but after just a short period I realized that I do not need them at all. What then? It is a problem, I can give it to others, I can sell them (and maybe buy something more relevant for me), but from a sentimental viewpoint, it is always a problem – we often do not want to do it because we think it is wrong and not fair. It is a big problem especially when we receive a gift from very close people.  

How to handle that? I think the best thing is to tell others that we do not need all these things, and maybe a better gift will be something like discount coupon, carnet for a massage or something like that: something we can use, experience, not thing. If our family and friends know that we prefer minimalism, it will be better for both sides: them (always simpler to choose the best gift) and also us, because we will not receive unnecessary things anymore.