it’s valuable to write an entire feature within a test, work out its intricacies and interface and only then refactor it into the rest of the code
why?