
Your system architecture could make or break your new initiative
The decisions you make at the start of a software initiative are some of the hardest to undo later. Here are two architecture mistakes we frequently see – and what actually work...
From military to civilian use
A few months ago I wrote a text called “Dual-use” about how civilian concepts and thinking is being utilised with great success by the militaries. The example was DOT-Chain Defe...
Tips for developers on improving collaboration with domain experts
According to Domain-Driven Design (DDD) and real life experience, good collaboration with the domain experts is of crucial importance when developing software. It’s amazingly po...
Why is it so hard to optimise software delivery under stress?
There's a particular kind of pressure that engineering leaders know well. A deadline is approaching, the team is working hard – everyone can see that – and yet the amount of wor...
Why is my software development team slow despite having more people?
It just doesn't make any sense! Your software team has been getting slower and slower up to a point where every new feature is painfully forced through the system, wrecking ever...
What is flow for you?
Earlier in my career, I’d automatically have said something like: being in a weightless state, without time and space, completely zoned in on what I’m doing. Someone even compar...
Expert generalists
When I started my first large project as an independent consultant 33 years ago, I remember how I was welcomed by one of the most senior developers in the team I was hired to wo...
Need an outside perspective on your architecture?
One thing we do at factor10 is software architecture reviews. We honestly can’t recall a single review that didn’t uncover valuable insights, reveal hidden opportunities, or giv...
Katharina's experiences with Domain Primitives
Domain Primitives are described as the smallest building blocks in a domain model. A Domain Primitive is a small Value Object, a type that is primarily defined by its attributes...
A TDD mindset
In the beginning of my career, I discovered that having automated tests is invaluable when making changes to any non-trivial software system. Or, put differently, I realized tha...
Why do we deploy on Fridays?
In the team I work with, we have a sort of tradition of deploying on Friday afternoons. Why on earth are we doing this? A lot of teams have the opposite tradition to never deplo...
AI thoughts, June 2025
It’s been over 1.5 years since I last posted anything about “AI” so I felt it was time to share a few more thoughts. That last post explored how LLMs can be used in customer sol...
Some thoughts about trust
It’s been interesting (depressing) to see how a superpower nation we used to trust now makes it impossible to trust them. Lying, betraying and exploiting have that effect. Maybe...
Why tech agnostic?
When working with Suzi Edwards-Alexander and trying to find out what is good (and bad) about factor10, I've realised there are a few unconventional things about us that I'm prou...
An old story I want to share
This is me repeating a story from memory I read 30 years ago in a magazine. I’m afraid I have no references, but I like the story a lot so I’d like it to live on.
Continuous Integration and development flow
Continuous Integration, sometimes referred to as Trunk Based Development, is a development methodology where everyone integrates their work into the main branch at least daily.
Developing technology-agnostic services
We (at factor10) have been discussing the EU's Digital Operational Resilience Act lately, what it means, and what impact it might have.
About pair programming
When I first heard about pair programming I didn't like the concept. I'm much faster on my own without someone else slowing me down.
Five Principles for a World-class Development Organization
We’ve had the privilege to work with many great development organizations. So, we thought it would be nice to share a few of the insights we’ve gathered over the years on what s...
The benefits of TDD
I have always liked this quote because I think it embodies an issue I see a lot in the software industry: We are in a hurry, so we take shortcuts. And then we pay the price of t...
Who tests your tests?
Can we learn anything about testing from Sam Vimes of the Discworld novels?
Return on Investment for Test-Driven-Development
I recently came across a thread discussing Test-Driven Development (TDD) on one of the major social networks. The discussion revolved around when to use TDD and when it can be s...
Test-Driven Development - looking back
For the last five years I have been test driving pretty much all the code I have written. This is a retrospective on why it took so long to get started, where I see the greatest...
The fear of releasing
The fear of releasing is real, it is the fear of failure.
Not cornerstones; it's a stack
Ever since the start of factor10, I have considered Extreme Programming (XP) to be one of our cornerstones. So, as part of the onboarding for newcomers, we thought it would be f...
Technical debt
What is technical debt, who owns it and when is it due? Post #2 in a series of post about obstacles around software development.
Your obstacles are YOUR obstacles
Why do we have obstacles in software development when software is almost free from constraints?