Action Mutation

The WyCash (Smalltalk) serialization included mutations, a very cool feature of Smalltalk that made refactoring a breeze. Our serialization format supported mutation on read so old format data went out in the new format whenever it was updated. chat

digraph { node [shape=box style=filled fillcolor=gold] rankdir=LR 0 node [fillcolor=lightgreen] 0 [label="Ideal Beauty" ] 1 [label="Action Refactoring" ] 2 [label="Org WyCash" ] 3 [label="Person Ward" ] 4 [label="Action Mutation" penwidth=3] 1->0 [label="Serves" labeltooltip="beauty.graph.json"] 2->1 [label="Facilitates" labeltooltip="beauty.graph.json"] 3->2 [label="Serves" labeltooltip="beauty.graph.json"] 3->4 [label="Performs" labeltooltip="beauty.graph.json"] 3->0 [label="Holds" labeltooltip="beauty.graph.json"] }

I wrote about technical debt as a strategy that was enabled by refactoring (called consolidation in the paper) but didn't mention the degree that we were free to make improvements at will, send updates to our customers, and trust that their databases will catch up. One reason why folks can't understand technical debt is this sort of automation is beyond their imagination.

WyCash was my first commercial software development after ten years in research. I was well into my 15 years of Smalltalk zealotry and very much wanted to make WyCash beautiful as software which it was. In retrospect the product was just better than average but not a long term money maker.