The presence of tests also change the nature of problem solving. I think one of the reasons we get blocked is that we tend to think of problems in terms of solutions which are right and wrong. This attitude is deeply ingrained in computing, and probably comes from mathematics and logic where solutions do tend to be right or wrong, rather than having relative levels of expediency and usefulness. It's so powerful that companies like Microsoft and Google famously use problems with no right solution to test candidates during interviews, as much for their ability to deal with stress and hazing that results from "no right answer" as their creativity. What a test often does is let us think of programming as a series of moves along the lines of a game. Moves in a game aren't right or wrong, they're better or worse . That can be enough to snap out of a blocked consciousness.