An idea mentioned almost in passing on HowFastCanYouWriteCode. The process of producing a working system clearly contains many stages, not all of which are easily separated. There's time taken to grok the problem, time to think of ways to solve it, experiments to run (SpikeSolution), and so forth. We might be able to split things into ThinkingTime and TypingTime, though. AnalysisTime is then one component of ThinkingTime, the other being EmittingTime. ---- AnalysisTime is easily seen as unproductive when the thinker is just sitting there. To the casual viewer, a coder sitting at their desk, perhaps making a note or two here or there, is deemed much less productive than some cowboy plowing away at the keyboard making oodles of errors due to lack of planning. In the end, the coder who spent more AnalysisTime will likely have spent less CodingTime and less RepairTime, and have a better product. ---- CategoryTime CategorySolutions