We had a bit of fun using Lego as an analysis tool a while back – I’ve only just now got round to posting the pics.
When we were trying to kick start the requirements gathering for a project we found it difficult to get everyone on the same page. If we talked about it ideas would fly thick and fast but nothing concrete came out of these sessions.
I decided to use Lego as a means to give the domain model ‘pointability’. Even better, using Lego gave the whole experience a tactile dimension.. you could manipulate the interactions between parts of the application model in a physical way. Plus it was great fun.
Bob (middle) the BA with two of our ‘customers’ – Sam and Davide
This was actually a really good session. Using Lego sort of broke down the walls and allowed people to play with the ideas that had previously been in their heads – or at best on a white board. We pretty well nutted out the entire user model in a few hours, and then had something we could keep a record of.
Roles in the application
The minifigs ended up being used to represent roles in the system, whereas the baseplates represented areas of function. You’ll see little ‘bridges’ between baseplates, indicating where we’d need to build ‘gateway’ interfaces.
This is one small part of the analysis – possibly a third of the baseplates we ended up with. I left the model around for a few days so other people in the office could see what we’d been up to and make their own mods if they wished. It was a very transparent way to do the requirements gathering.
I don’t do this any more, mainly because I became a bit of a selfish prick and took all my toys home. But using Lego to tease out the domain model like this was really handy. I wish we’d done more of it.
Word of warning – and this goes for all analysis models. What we ended up building was very similar to the model laid out in the Lego, formalized of course in more traditional requirements documents. I wished we’d built something simpler.. as I’m fond of saying: if the complexity of your solution is the same order of magnitude as the problem you may as well as well done nothing. If I had my time over again I’d play the same sort of Lego games with the design team (devs + BA), seeing how we could have translated this model into a simpler implementation.
