Using Meta-Meta Data to Beat Deadlines

Meta programming power is not only a language feature, but opens the door to creative solutions for the end users. The Smalltalk community knows that dynamic languages lead to more dynamic applications. In this experience report, meta levels were used to beat impossible deadlines. In fact, data schemas were still unknown just a few weeks before going to production. The application implemented in GemStone/S controls appliance manufacturers’ compliance certifications. An early design choice to implement a meta-meta data level was made possible thanks to Smalltalk dynamic properties. Most of the application specifications ended up being represented in a spreadsheet defining everything from certification templates, to energy efficiency calculation, to reporting format. With the focus on the meta data itself, rather than the actual data schema, we were still able to follow a weekly Scrum-like sprint iteration. This presentation will summarize the different challenges and lessons learned.