The big rewrite
I remember once having two back-to-back clients who had just rewritten significant systems in their environment. I asked why they’d chosen to rewrite the system from scratch rather than just fixing them as they were.
Scouting rule
We often talk about the scouting rule of “always leave the campsite cleaner than you found it”, or in a software context “always leave the code a little bit better than you found it”.
Quality
The theme for this week seems to be quality so let’s look at some different aspects of that.
SpecFlow becomes Reqnroll
A number of my clients use SpecFlow and this will be relevant to them. SpecFlow has been end-of-lifed and replaced by ReqNRoll.
Ensemble work feels slower, but that’s deceptive
It’s interesting that when a team tries ensemble work (also called mob programming), it feels really slow. Slower than it actually is.
YAGNI (You Aren’t Going to Need It)
YAGNI (You Aren’t Going to Need It) is a principle that keeps us from over-engineering the system. Build today only those things that you need today. Things that we need tomorrow, we can build tomorrow.
Hot-fixes
It used to be common that we would have two different ways to deploy something to a production environment.
Mocking frameworks
I’ve recently noticed a number of posts criticizing mocking frameworks, where half the responses are defending the idea of mocking rather than talking about the frameworks that had been called out1. Let’s be clear that those are two completely different things.
-
This is an example of a psychological phenonomenon called Attribute Substitution where we are faced with a computationally difficult decision, we will often substitute a more easily calculated decision in it’s place and answer that instead, without even realizing that we did this. ↩
“Everything that’s old is new again”
When we look at the agile technical practices, there’s a tendency to believe that these things are new and unproven and nothing could be further from the truth.
Ability to deliver quickly
I was talking to a team that maintained a year-end batch process. Their code only ran once a year, on the first day of the new fiscal year.