-
Dysfunctional Teams
I recently finished a book titled The Five Dysfunctions Of A Team, by Patrick Lencioni, and I found that the concepts it presents are so interesting that I should write about them. This article is not intended as a substitute for the book. I hope that after reading this article you get a copy and…
-
The Fallacy of “No Time”: Embracing Decision-Making for Better Productivity
I have frequently heard someone say they wish they had more time to do all the things they have or want to. If we were talking about reading every book ever written, then yeah, that’s life. There’s just not enough time in a lifetime to do that. Instead, today I’ll discuss the case when we…
-
SOLID Design Principles For Object Oriented Software Development
Writing good software is not just about having it working with all tests passing. This is not enough. We also need to ensure that what we write can be easily changed. Many systems fail because they can’t be changed. I know of a company that acquired a system to complement its offering. Although the system…
-
The Right Way To Use Story Points
When working in software projects, it’s usually a good idea to estimate the overall effort, as it helps coordinate and plan initiatives across a company. Although there are different ways of estimating software tasks, in this article I will discuss Story Points, and what to do and not to do when using them. Story Points…
-
Project Triangle And Software Quality
The project triangle says that the quality of a project is determined by three factors: Cost, Scope, and Time. We can choose two of them, but not all. There are three possible combinations: In a concrete example, let’s pretend that certain features of a project (Scope) are planned to be completed in two months (Time)…
-
Working across timezones
Working with people is difficult. Working with people across different timezones is a challenge. Working with people in opposite timezones requires commitment from all parties. One of my first experiences collaborating with someone on the other side of the planet was the best example of how things should not be done. My worst experience Sometimes…
-
Debunking Myths in Back-End Software Testing
In today’s article I want to debunk what I believe are some myths and misconceptions about testing, based on a broad experience of writing automated tests for back-end applications for nearly two decades. I will start by explaining key concepts about automated testing that will serve as a foundation, before discussing these myths. If you…
-
Blameless Culture
A few years ago I watched a very interesting documentary about World War 2. Amongst the new facts I learnt, what surprised me the most was all the chances that Hitler had to win the war, and how the Nazis’ blame culture was one of the factors that contributed to their defeat. Hitler’s generals were…
-
Coding with AI
AI is not leaving us anytime soon. Learning how to use it properly is a must-have skill for software developers. I do not consider myself an expert, but I have experimented with this tool long enough so I could share some insights into how to make the best of them, and when it’s best to…
-
Work/Life Balance
What is really Work/Life balance? When I started my career, I thought it was very simple: respect working hours, don’t answer calls or messages outside of these hours, don’t think about work, and don’t do anything work-related during my personal time. It took me many years to realise that not everything was truly black and…