Agile and Tools

Kent Beck has written a great white paper talking about the importance of tooling in the Agile process. He discusses the importance to transparency during the process and how tools can help with that, but he raises a very interesting point about the need for tools to support rapid transitions between activities:

Rather than single-activity efficiency, tools need to support frequent transitions between activities. <snip>

Teams looking to apply the principle of flow need tools that support rapid transitions between activities. For example, using cards on a wall for planning has many disadvantages—the cards can’t be easily distributed to multiple locations, they are impermanent, and spatial information is easily lost. However, the one thing well supported by cards on a wall is transitions. A pair can be in the middle of coding(/analyzing/designing/testing), discover a new requirement out of scope for the current cycle, jot it on a card, and get back to coding without interrupting their development flow—elapsed time ten seconds. Even the quickest switch to another application is likely to take long enough to break their concentration

This resonated with me on a number of levels. Frequently, we discuss the need and desire to shorten release cycles, and talk about how Agile processes can help on that front, but rarely do we talk about the need to shorten the time during transition between tasks or activities. The obvious side effect of managing your transitions is more focused and concentrated time-on-task. Taken in the aggregate, this increase in time-on-task can be an enormous and positive gain to development productivity, both in speed to delivery and quality of that deliverable.

From a tooling and tool developer point of view, keeping this concept top of mind can lead to great results, from User Experience of various features sets to the feature sets themselves, and then of course to the act of creating and delivering those features.