[Objective-C]
Do you still use Styrofoam balls to model your systems, where each ball represents a class?
Tom Love: We do, actually. We've also done a 3D animation version of it, which we found to be nowhere near as useful as the Styrofoam balls. There's something about a physical, conspicuous structure hanging from the ceiling right in the middle of a development project that's regularly updated to provide not only the structure of the system that you're building, but also the current status of each one of the classes.
We've done it on 19 projects the last time I've counted. One of them was 1,856 classes, which is big - actually, probably bigger than it should be. It was a big commercial project, so it needed to be somewhat big.
Masterminds of Programming
It is the first time I've read or heard about using styrofoam balls to model classes.
Is that a commonly used technique? And, how does that sort of modeling help us to design better the system?
If you have any photos to share which can show us how the classes are represented it'd be great!
Update: So, it seems that the material most people use is the paper. Styrofoam balls are actually oddballs, not a commonly used technique.
Noticeable techniques:
Thank you all for the very good answers.
Styrofoam™ balls are just one type of Styrofoam™ product, which are mostly used for craft projects. Styrofoam™ balls are spherical forms of polystyrene foam that come in sizes from one inch (2.54 cm) to eight inches (20.3 cm) in diameter. The crafting purposes of Styrofoam™ balls are largely varied.
Water based paints or acrylic craft paints are the best to use on Styrofoam. Water based paints, specifically poster paints, work well with younger kids as they can get a really good and thick coverage of paint on the polystyrene shape. They will need a little longer to dry though.
I found a couple of styrofoam models for:
Windows 95
and
Lotus Notes
(if that helps)
Actually, here's a Tom Love case study that shows a couple of his models.
This model may represent the least expensive CASE tool on the market -- materials cost $20.35. It was more useful than any CASE tools I have ever used.
We used it in three important ways.
It fixed the number of classes that we would deliver in the finished application and we did not allow new ones to be added, unless existing ones could be removed.
It was a very useful way to publicly document which classes had been code reviewed (blue ribbons) and tested (green ribbons).
It helped everyone understand what was being built and how much time and effort it takes to do testing, documentation and code reviews.
Edit: photo of object model
alt text http://img686.imageshack.us/img686/82/stryrofoamobjectmodel.jpg
The styrofoam ball model appears to date back to the mid 1990's - a time when CASE (Computer Aided Systems Analysis) systems were all the rage.
At that time CASE systems promised significant benefits but were dismally slow, buggy, unstable, overextended and downright awkward to use. Basically, long on potential but short on delivery.
I remember having a conversation with an analyst working on a different project from mine. Her team had become so frustrated with their CASE system that they trashed it and resorted to "paper plates and string" modeling. They reserved a meeting room, removed all the furniture, and laid out their process model using labeled paper plates with strings (representing data flows) connecting them. She claimed it was much more useful than the CASE system it replaced.
I suspect that the styrofoam ball model had similar roots.
Using styrofoam balls or paper plates fostered design "buy-in". If a team finds something to rally around it naturally creates a common design focus. It is simple, concrete and minimal - using it requires a lot of face to face interaction and discussion. And that is where the value comes from. I suspect if you brought a new person into the project and told them to bring themselves up-to-speed by reviewing the "model" they would be "dead in the water". However, walk them through the "model" and a real conversation would occur where all the required information need to perform on the project would be imparted very quickly and efficiently.
Do I think styrofoam balls could become a sustainable modeling tool? No, I don't. They would be a real pain to keep up to date in a changing environment. They convey little information. There are better tools available today. And most importantly, if the team you are working with don't "buy" it, and they probably won't, it will look really stupid - kind of like a sports team mascot, a rallying point only if the team "buys it".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With