This post originated from an RSS feed registered with Agile Buzz
by Keith Ray.
Original Post: Cognitive Overload and TDD.
Feed Title: MemoRanda
Feed URL: http://homepage.mac.com/1/homepage404ErrorPage.html
Feed Description: Keith Ray's notes to be remembered on agile software development, project management, oo programming, and other topics.
Eric Benson's quicklinks are almost always very interesting. Today he linked to this paper on Cognitive Overload. One footnote says:
Multi-tasking is a term drawn from computer science to refer to systems which handle many tasks seemingly at once. An operating system multi-tasks by rapidly switching between tasks and placing in an intermediate store all state knowledge required by each task. It therefore interrupts each task at a stable moment, and then later swaps back the state it was in before the interruption and carries on from where it was. Humans need to be able to stabilize their state knowledge when they are interrupted or they risk losing their place when they attempt to pick up the task later.
One thing that Kent Beck mentioned in Test Driven Development was that if he's not finished test-driving a chunk of code, but has to leave it for a while, he'll leave one test failing. When he gets back to pick up where he left off, he runs the tests, sees the failing one, and by making that test pass, gets back into the mindset needed for that design problem.
Of course, when working in a team, checking in a failing test is the height of bad manners.