|
|
|
|
|
by evilneanderthal
6197 days ago
|
|
I'm not sure I fully understood everything you were saying here. But I would mention that unit tests give you a nice picture of what will break when you DO change your interfaces. The list of broken tests is your new task set. This is a significant benefit. |
|
mjd explains it well. Here's my attempt at elaboration:
It's only in a particular kind of project, at a particular stage: Imagine you are designing a project, in which you change the interfaces at the drop of a hat. Daily (or oftener). In this scenario, the "new task set" of the list of broken tests is extra work that increases the viscosity of your code. It's a distraction from your actual exploratory task, of trying out different interfaces. You are setting out to change interfaces, because you are experimenting with what they should be: that's your actual task. This only applies when you need extremely fluid code, and when it doesn't really matter if there are lots of bugs. Think of a poet daydreaming, or an artist sketching out a very rough outline, or the first prototype of an inventor (made with wax and strings).