Command the Machine
One of the reasons I love using computers is that, as a developer, the computer performs my wishes.
For most people, it wasn’t until the spreadsheet that the idea of a personal computer became really powerful. It was VisiCalc (and later Lotus 123) that gave business a reason to buy PCs.
And it’s no surprise that Excel is so heavily used today, even far outside of financial or arithmetical projections. Excel allows non-developers to “have the computer do what they want.” Excel allows people to command. They, not the machine, can choose what to enter, where to put it, what math (if any) to perform, and so forth.
The machine obeys them.
This is rarely the case in the software most IT subjects us to.
In a prior article I mentioned a convention of using Excel in a way that ensures a programmer can implement what the spreadsheet represents.
Since a spreadsheet is a program, obviously being interpreted (the XLSX file is being processed by Excel for instance) it doesn’t make sense that a spreadsheet can be created that can’t have its computation implemented in a language like Python.
So, how does a spreadsheet do what can’t be done in software? How is that even possible?
A video game company wants a bedside lamp simulation where the player can:
- Plug it in (plug-in)
- Unplug it (unplug)
- Click the switch (switch)
The lamp may turn on or turn off the light based on these inputs.
Clarifying the User Story
The user story sounds simple enough. I bought a lamp in the real world to use as my basis and discovered that the real lamp didn’t work so simply as the story implied.
I could just assume I understand what the user wants. I’ve got a very good chance of being wrong, but technical people know better, right? No, actually, we don’t.
Instead, I’m going to need to show the customer enough that they can give me a decision on what behavior they want for the lamp in their game. And I may actually need to show a few different kinds of lamp.
The question becomes, then, how do I capture their intention in such a way that all stakeholders understand the same thing? The text didn’t do it … I’ll need to do something better.
A Strange Question
I was going to write about the next stage of using Excel for modeling events as well as states during requirements.
I wrote the Excel, Python, and such already, before I discovered that the lamp I bought didn’t obey any of my expectations (see Easy and Simple Isn’t if you haven’t already). Modifying what I did already as my understanding of the problem improved isn’t a challenge, but I started to ponder my premises.
- is an executable requirement a PoC?
- is a PoC a tool?