Software Craftsmanship Series
The practices that keep code changeable: TDD, refactoring, clean design, and the habits around them.
13 parts
- 1
A great engineer is not just a great coder
Coding is not just another job. In the right environment it is fun, and even a hobby. On levelling up your craft on purpose.
- 2
Some thoughts about software quality among your team
What to do when working on "bad software" and you can't improve it because it is against the beliefs of your peers? Should you change the company?
- 3
From a software developer's point of view
Why you should consider testing as part of your daily development habit and how it's directly linked to the software quality.
- 4
What is challenging about it?
TDD is a design practice, not just a testing technique. Writing tests first changes how you think about code and shape its structure.
- 5
Design or Workflow?
These are two different techniques. The key to each of them is about the mindset and context of what you want to achieve.
- 6
It's an integration, not a choice
There are two known schools in TDD: the mockist school (aka Outside-in) and the classicist school (aka Inside-out).
- 7
How to escape the mocking hell
Mocking is useful, but 'what to mock' usually turns out to be a more complicated than expected if you don't treat this carefully.
- 8
Testing private methods. When and how?
From time to time I have had to face this question: how to test private methods? I have put together in an article the techniques that I usually use.
- 9
When, how, and why
If you see something, in the scope of your current task, that can be easily improved, improve it. And if you have any questions about it, ask.
- 10
How to write proper tests to already written code
How to write characterization tests for legacy code to safely refactor without breaking existing behavior.
- 11
Embracing quality practices in your engineering culture
A practical guide to pair programming that works: roles, rotation, when to pair, common pitfalls, and how to make sessions productive.
- 12
Why choosing when you can have both?
Let's talk about the benefits of Pull Requests and Pair Programming, and my thoughts on these after some years of experience with them.
- 13
How does it fit a dedicated QA person in your agile team?
Let's talk about the QA position. The hidden truth behind poor software quality, and why it concerns you if you write code.












