Recently I read (don't remember where, probably on the XP list) of someone who used to keep a failed unit test at the end of the day. The next day, it's obvious where you stopped the previous day, and it's obvious where you need to start working.
Usually I leave everything checked in and the tests at 100%, but Monday afternoon I tried the "failing" approach. After a complete day away from the code (project management training) it actually worked according to plan this morning. And after the first problem was solved and the tests back at 100%, I was up to speed on the coding and the problem domain.
Cool!
Now I can perhaps stop writing myself post-it notes for the next day
Having a break (Score:2, Insightful)
You come in the next morning and can approach the code with a fresher outlook. And can often solve it instantly =)
---ict / Spoon
Not Sure (Score:2, Informative)
Allowing known failures is a very slippery slope. Like bugs, test failures should be an exceptional thing.
If you're doing XP, your engineering tasks should be short enough that you don't have to leave them overnight. If they're that large or that complex or things are going that poorly one afternoon, split them or just start over in the morning. The further you stray from a checkin, the less feedback the rest of the team has from your code.
If you're not doing (or aren't trying to do) full-blown XP
Re:Not Sure (Score:2)
Re:Not Sure (Score:1)
Great minds -- that occurred to me right after posting. :) Since getting started is the hardest part, fixing a simple, failing test might have jump-start the day.
Starting with a failing test (Score:2, Interesting)
Re:Starting with a failing test (Score:1)
Re:Starting with a failing test (Score:2)
GNU screen (Score:1)
This way, when I come back to the problem, I've still got all my editors and shells set up, with their histories intact.