-
Why Skipping Unit Tests Is A Bad Idea

Unit tests were introduced about twenty years ago with the intent of improving software quality. They can be tedious, so developers (especially junior developers) tend to avoid them. It is well known that there is a learning curve associated with writing unit tests, and mentoring is essential to build this skill. While working in a…
-
Why Avoid Decision Paralysis

Sometimes we struggle with very minor decisions in different settings. A common example of this is when we want to watch a movie and we have not picked one after one hour of scrolling. When we don’t make a decision, we’re deciding not to decide. Sometimes, this is the worst decision we can make. Decision…
-
Making Decisions

Sometimes making decisions becomes difficult due to information overload. We have so many criteria to ponder that it’s hard to decide which option is best, and we end up making suboptimal decisions, or worse, no decision at all. One way to address this problem is through the use of a Decision Matrix (a.k.a. Selection Matrix).…
-
Writing A Blog

If you’ve never considered writing a blog before, you’re not alone. About a year ago, there was no way on earth for me to be writing one, and yet here I am. My main concern was not finding a topic or the time to write, but rather, why I should spend my valuable time doing…
-
Play For The Team

During my career I’ve seen many teams of different shapes and sizes, and I’ve noticed that the most effective teams are those where people actually care more about their teammates than themselves. Takehiko Inoue shows this very clearly in his best seller manga Slam Dunk, which also happens to be my favourite. This manga follows…
-
Proficient vs Senior

I recently read a post in LinkedIn claiming that the difference between junior and senior developers is how we check if a number is even or odd (I was unable to find that post again to share the link). According to this post, junior developers would do something like: And that instead, senior developers (like…
-
De-risking A Rebuild

My team recently started working on a product rebuild from the ground up. All software development projects have some inherent risks. In my opinion, the main risks of this project are: To manage these kinds of risks, teams often turn to frameworks like the Project Triangle, as I explained in this article. However, that doesn’t…
-
Premature Code Optimisation

When trying to solve a complex technical problem, it’s easy to get caught up in concerns about performance before anything’s even running. I want to share a story about a time when I introduced what seemed a reasonable idea to solve a transformation problem, but ended up in the middle of a long-running debate about…
-
Reducing Uncertainty With Genetic Algorithms

Recently, I needed to find a formula that predicted how often an event happens based on a percentage value. The challenge was to make sure the formula worked well for all reasonable inputs, without giving unrealistic results. In his book “How to Measure Anything: Finding the Value of Intangibles in Business”, Douglas Hubbard explains how…
-
The Time Management Matrix

Time is our most valuable resource because it is limited, and we cannot get more of it. If we manage our money, we should certainly manage our time. In The 7 Habits of Highly Effective People, Stephen Covey presents a key framework for understanding how to use our time effectively: the Time Management Matrix, also…
