I listen to a lot of Daft Punk lately—especially while I’m running. On one of my recent runs, my mind’s reflections upon the day’s work merged with my mental impressions of the music blaring from my earbuds, which happened to be the Daft Punk song, “Technologic.” For those of you unfamiliar with the song, here are the deceptively simplistic lyrics:
“Buy it, use it, break it, fix it,
Trash it, change it, mail – upgrade it,
Charge it, point it, zoom it, press it,
Snap it, work it, quick – erase it,
Write it, cut it, paste it, save it,
Load it, check it, quick – rewrite it,
Plug it, play it, burn it, rip it,
Drag and drop it, zip – unzip it,
Lock it, fill it, call it, find it,
View it, code it, jam – unlock it,
Surf it, scroll it, pause it, click it,
Cross it, crack it, switch – update it,
Name it, rate it, tune it, print it,
Scan it, send it, fax – rename it,
Touch it, bring it, pay it, watch it,
Turn it, leave it, start – format it.
Some may interpret the lyrics as a commentary on modern consumerism and planned obsolescence, or an ironic statement about our obsession with technology, but in a moment of clarity ignited by sustained physical exertion coupled with electronic music, I realized that Daft Punk are covert requirements experts posing as electronic music superstars (why else would they conceal their identities?). My realization led me to conclude that the lyrics to “Technologic” are actually about the various possible use cases or process flows which correspond to each entity in a Business Data Diagram (BDD). I’ve previously written about how we use BDDs to identify all the possible actions one could perform with a piece of data. Here is an example of a simple Business Data Diagram which depicts the relationships between business entities:
Briefly, for each object in a BDD, there is likely at least one use case for Creating, Updating, Using, Deleting, Moving, and Copying (CUUDMC) each business data object or entity. (Some of you may already know the mnemonic CRUD for Create, Read, Update, and Delete. CUUDMC is an extension of CRUD). By looking at each entity in a BDD, and thinking about the CUUDMC for each object, you can immediately understand a vast majority of the use cases or process flows you need to create for each entity. And if you examine the lyrics to “Technologic” closely, you can see that the song describes CUUDMC-like actions that one might perform on a piece of data. I’ve categorized each phrase in the song by the mnemonic below:
Create– write it, load it
Update– fix it, change it, upgrade it, fill it, code it, cross it, crack it, switch – update it, name it, rate it, tune it, rename it, touch it, pay it
Use– buy it, use it, charge it, point it, zoom it, press it, snap it, work it, check it, plug it, play it, lock it, call it, find it, view it, jam – unlock it, surf it, scroll it, pause it, click it, watch it
Delete– break it, trash it, quick – erase it, quick – rewrite it, start – format it.
Move– cut it, drag and drop it (could also be “Copy”), turn it, leave it, mail it, bring it
Copy– paste it, save it, burn it, rip it, zip – unzip it (could also be “Move”); print it, scan it, send it, fax it
Some of these categorizations are a little tenuous, and there are probably some actions which don’t quite fit any of the categories, but you get the idea.
So, the next time you’re creating or reviewing a BDD, just crank up some Daft Punk around the office. When your coworkers protest, just tell them that you are designing the use cases and process flows for your project. At the very least, it might prompt others to think about some use cases or process flows they might not have otherwise considered (for example, printing, faxing, emailing). I’m not responsible for any impromptu dancing which occurs, though.
In a follow-up post, I will explain how Joy Division was actually a front for a dev shop responsible for creating the first ERP platform.