Quality

Naming Tests

Recently, I received an email from a former student assistant of mine, who observed that I name tests different today, compared to when we were working toget...

Legacy Code Retreat

Where does legacy code come from? What is legacy code, anyway? Why should we care about it? Can we make it go away? How? Can we prevent it from coming back, ...

Reuse

Did you ever find yourself facing a problem, wishing you had a program to solve it for you? I certainly did. Repeatedly.

Inadvertent Prudent Technical Debt

I recently stumbled upon a great talk by Martin Flower about Technical Debt.1 In the talk, he first classifies technical debt according to whether you are aw...

Being Bad With Names

I’m bad with names. Sometimes, when somebody tells me his name, I catch myself having forgotten about it literally in the next sentence. I’ve tried some tech...

To Agile or To(o) Lean

Research is agile. Not only in its software development, but in its entirety. Simply because one rarely knows where it’s going next. Research is, by its very...

Adam and the Tests

A strong set of tests gives me confidence that the tools I devise do what I want them to do and that my experiments test what I intend them to test. This is ...

How I Came to Test

As you might remember, academics code, too. And that’s not even only computer scientists: The first of my friends who needed to program in university were ph...

Is TDD Just Unit-Test Waste?

In early 2014, Cope published an article titled “Why Most Unit Testing Is Waste” and little later a follow up. In these articles, Cope states that unit testi...

TDD vs. Architecture

In 2007, Robert C. Martin (Uncle Bob) and James O. Coplien (Cope) had a discussion about TDD at the JAOO Conference. Uncle Bob opened the discussion proclaim...