What’s I love of Kent’s notes is the fact that he indirectly did a list of the top priorities / skills (/ errors) of a good programmer. Ok probably Kent would argue that this is the list of his priorities but… I like to think is more general than that 🙂
[…] I’m sad […] because now I need to hire new techniques to help me solve many of my problems during programming:
- Over-engineering. I have a tendency to “throw in” functionality I “know” I’m “going to need”. Making one red test green (along with the list of future tests) helps me implement just enough. I need to find a new way to stay focused.
- API feedback. I need to find a new way to get quick feedback about my API decisions.
- Logic errors. I need to find a new way to catch those pesky sense-of-test errors I’m so prone to making.
- Documentation. I need to find a new way to communicate how I expect APIs to be used and to record what I was thinking during development.
- Feeling overwhelmed. I’m really going to miss how, using TDD, even if I couldn’t imagine an implementation I could almost always figure out how to write a test. I need to find a new way to take that next step up the mountain.
- Separate interface from implementation thinking. I have a tendency to pollute API design decisions with implementation speculation. I need to find a new way to separate the two levels of thinking while still providing rapid feedback between them.
- Agreement. I need to find a new way to be precise with a programming partner about what problem I’m solving.
- Anxiety. Perhaps what I’ll miss most is the way TDD gives me an instantaneous “Is Everything Okay?” button.
I’m sure I’ll find other ways to solve all these problems. In time. The pain will fade. Farewell TDD, old friend.