When one of the above types of prototypes is selected, a certain kind of information and rationale is sought. During prototype development, further rationale is created (why to do it that way?). During development, the flow state [5] may be reached, and an interruption will hamper the creation process. However, as soon as the prototype is presented to other people, developers will use this opportunity to talk about their findings and successes. Observers have a chance to ask questions. This is a good opportunity to capture and record rationale. We have experimented with separate tape recorders and with computer-based audio and on- screen video recording. FOCUS now uses the Camtasia commercial tool to record both a screen video and audio of the explanations.
There is very little extra effort from their perspective: The recording soft-ware is integrated in the FOCUS panel (see Fig. 4.1). Experts giving the demonstrations just follow the lines from top to bottom and press a few buttons, in order to start or stop recording.
A typical FOCUS use case follows the buttons in the FOCUS panel: (1) a learner or expert has marked the code to be discussed. After pushing the “instrument” button, all methods within that piece of code will be traced when executed. (2) A demo is started and recorded as both a Camtasia (video) file and as a sequence of executed methods (specific path). (3) The path may remote-control the code browser to guide follow-up explanations. In that case, method by method is displayed that was previously executed. During this second part of the demo, experts explain how the demoed features were implemented. (4) This explanation is again recorded via Camtasia into an “explanation path,” which is a sequence of methods visited.
This original implementation was carried out in Smalltalk (Fig. 4.1). It is important to use an integrated environment that is used for writing, running, and explaining code. Smalltalkk was such an environment. How-ever, FOCUS as an instance of the By-Product Approach is not restricted to any single language. To demonstrate this, we recently completed an Eclipse/Java version of FOCUS (see Fig. 4.2). Eclipse is a widely used Java development platform. Four Eclipse plug-ins (integrated platform extensions) were implemented to allow instrumentation and tracing of selected methods, linking and replay of different recorded paths and videos in an integrated way.