Navigating with Intent, Typing Syntax

When working in an ensemble, the Navigator should try to speak at a higher level of abstraction. The typist should be able to take care of syntax without the navigator dictating keystrokes.

Session Outline

Connect: Match high level statements of intent with syntax

Connect to what they already know about the names of programming constructs and how to describe them in English. Use the exercise Navigating without syntax details

Concept: Intention, Location, Details

Explain that the Navigator should communicate to the Typist using words, so the whole ensemble hears the Intention. This should make it easier for the next person to take over navigation, since they understand the direction.

If the typist doesn’t understand well enough from just the intention, the navigator can prompt them by Location on the screen. For example the line number or name of the menu item.

If the typist still doesn’t get it, you can dictate the Details of the keystrokes or mouse clicks. At this point you start telling them the syntax of the programming language or how to use the IDE. Ideally your typist wouldn’t need this long term, we want to raise the competence of the typist over time. The typist should be a very intelligent keyboard who learns how to do things the Navigator describes without detailed directions.

Concrete: do some TDD

Pick a problem where the code snippets you looked at in the Connect part will be useful. For example CalcStats or ClosestToZero. If the navigator resorts to dictating details, prompt the group to address this. Can you add some more code snippets to the ‘cheat sheet’ from the beginning of the session? Write up some keyboard shortcuts? Agree some words to use to describe the intent at a higher level?

Conclusions: Did the Navigator dictate Details?

Review your ‘cheat sheet’. What kinds of things did the Navigator need to dictate? How can you use this in your normal work?