Writing code is lonely work. Only rarely do you get feedback that what you’ve built is working. The distance between effort and positive feedback is large, and when you get negative feedback, it’s sometimes hard to know what to fix.
I want positive feedback AS I work. In some cases your editor or IDE can supply this. Syntax highlighting demonstrates that I’ve spelled / guessed command names correctly. The absence of underwaving lets me know that I’m on the right track (no typos, no basic structural concerns). This is tremendously useful–it lets me fix mistakes almost as soon as I commit them. And it makes me feel that the computer understands me as I write.
Continuous-testing systems (e.g., ct-eclipse or via a more complex toolchain) take this a step further, automatically testing the code in the background and highlighting code coverage and whether tests pass or fail. It’s still a bit slow, because of the complexity of the testing infrastructure, but for small code bases you can get feedback within a few seconds. That’s really useful, too.
So what’s the next step? The instant-deployment, instant-feedback design of the web lets big-site developers get nearly-real-time data on how people are using their websites. Google runs continuous experiments on its users, but there’s necessarily an interpretation step between getting the data and deciding product refinement. Is it worth trying to push this information back to the developer as they work? Or is that too much of a connection?
What forms of positive feedback do you use in your work?