Tech debt is a term that’s used quite a bit in software development, and I recently realised a new way of thinking about it: the risk of future friction. I’ll explain what I mean below, starting with a brief discussion of what I mean about risk in general. Risk Before I get into risk as … Continue reading Tech debt as risk of friction
Category: Quality
Commentate on your code
Sometimes a method mixes levels of abstraction, where one section goes into more detail than the rest of the method. This can make it hard to understand – code can be hard to understand when it’s on only one abstraction level, and introducing an extra level only makes things worse. One way to detect whether … Continue reading Commentate on your code
Chaos engineering and the relationship between code and teams
This article is about a few things – chaos engineering, an analogy that explains it, then digging a bit deeper into the relationship between software and the team that produced it. It was sparked by a conversation with Stuart Day, for which I’m very grateful. Chaos engineering Chaos engineering is a technique to improve the … Continue reading Chaos engineering and the relationship between code and teams
Generative AI and skills
There has been a lot in tech news and opinion recently about what generative AI will or won’t do, such as take away jobs from programmers and testers. I’ve had a long enough career in software to be able to put generative AI in a bigger context, which I think helps to understand some of … Continue reading Generative AI and skills
You’re probably wrong
In this article I make a suggestion that might sound absurd: when developing software, you should assume that you’re wrong. Once you make this assumption, it can influence quite a lot of what we do and how we do it in ways that I think help us to deliver better software. Why do I think … Continue reading You’re probably wrong
Is this a bug, a missing feature, or neither?
Software makers have this question a lot. They get some feedback from a user, and they must decide if it’s a bug, a missing feature, or neither. In this article I will explore this question using the analogy of a car. The simple answer is that there’s a lot of nuance – i.e. ‘it depends’ … Continue reading Is this a bug, a missing feature, or neither?
Reviewing requirements
Ministry of Testing kindly published an article I wrote for them on reviewing requirements. It gives some tips for doing it, and also looks a bit at the human side of things. I hope it's useful for non-testers as well as testers, whether your requirements are big documents full of UML or something much briefer … Continue reading Reviewing requirements
Feedback loops for quality
This is the second part of my response to the Ministry of Testing’s latest blog challenge: What three things have helped you in your testing career? As I’m not a tester, I’m choosing to re-word this as: What three things have helped you in the quality aspects of your career as a programmer? Culture and … Continue reading Feedback loops for quality
Culture and people for quality
This article and the next are my response to the Ministry of Testing’s latest blog challenge: What three things have helped you in your testing career? As I’m not a tester, I’m choosing to re-word this as: What three things have helped you in the quality aspects of your career as a programmer? It was … Continue reading Culture and people for quality
Exceptions 4: Finishing up
This is the last article in a series about exceptions: BasicsTypes and filteringWhere to put catch blocks and handle exceptionsFinishing up Exceptions are an example of the Chain of Responsibility pattern.Image credit Finally If the code in the try block needs tidying up (e.g. it opens files, that will need closing at some point), then … Continue reading Exceptions 4: Finishing up