[Pharo-project] Visualizing Legacy at SPA conference

Stephan Eggermont stephan at stack.nl
Wed Jul 11 12:57:08 EDT 2012


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
decide.

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
like MOOSE.

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)
http://ss3.gemstone.com/ss/SpaTutorial

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. 
http://chatley.com/posts/06-20-2011/spa-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
https://github.com/StephanEggermont/repodepot-ruby

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



More information about the Pharo-dev mailing list