Last week Willem and I presented a workshop Visualizing Legacy,
using MOOSE, at SPA2012 in London. In a 150 minutes workshop
we showed how to use glamour and mondrian to visualize the
github repository data from 4 ruby projects and the code used
for these analysis and the workshop itself.
The exercises work toward the creation of a glamour browser with a mondrian
pane showing custom visualizations not achievable by more static tools like Sonar.
The answering of specific questions that arise during the analysis of the data
show the strengths of the MOOSE toolchain.
We started by showing some of the work Diego and I have done for
the conversion of the data of a cobol ERP system to a modern ERP system.
By creating (at least) one browser/visualization a day, we were able to make
the subject matter expert, a very busy senior executive of the company,
steer the conversion process to her satisfaction. By treating her as the
bottleneck, and making it as easy as possible for her to see where we were,
and what we still had to do/understand, she could effectively prioritize and
Then we asked the participants what they expected/wanted from visualizing
their legacy code. The answers were a mix of things that tools like Sonar
can easily provide, with very specific questions that need a programmable tool
As we expected, it took most of the about 14 participants quite a lot of effort and
time to get to grips with the smalltalk environment to work in. So much so,
that some asked for a separate smalltalk workshop to do before this one,
or a larger timeslot for this workshop. The few participants experienced with
Smalltalk had been using VW/VA and also had some problems finding their
way around. In the end, the participants who managed to just follow the
exercises achieved the goals without too much interventions needed.
Inspired by ProfStef, we build a custom glamour browser for the workshop.
The code can be found in the SpaTutorial project on ss3. (The ConfigurationOf…
is no Metacello)
It is split in a generic part, allowing you to create tutorials, and a specific
part for this workshop. We might want to extend it so the exercises can be
done entirely in the custom browser. That might help the smalltalk newbies.
Now the participants needed two class browsers in addition to the tutorial,
one to edit the exercise code, and one to look at the domain model.
We believe the learning curve can be flattened by extending the SpaTutorial
browser so it can save code, and extracting some methods so the tutorial browser
only shows the bits participants have to work on right now,
gradually expanding the scope as it progresses.
It uses the data collected for the SPA2011 great egg-race.
Git commit data was collected by Michael Feathers from four ruby projects,
a.o. active_merchant and diaspora. After my holidays I'll put the data in a zip in
For the 150 minute timeslot we focused on glamour and mondrian,
although we also prepared an eyesee exercise. Next time we might switch
the exercises around - mondrian looks more glamourous than glamour ;).
A longer version may also be in the works if we can run it somewhere.
It was only after the mondrian exercise that participants could start playing
with the data on their own. Participants indicated they associatied mondrian
more with visualization than glamour.
Stephan Eggermont & Willem van den Ende