October 11, 2016 at 5:16 pm #29673
This is about a flash of insight I had regarding ATDD while cherry-picking some content to move to the Portal. I wouldn’t call it an epiphany because I think of those as big realizations.
I’ve always rankled at the idea of using tables to describe things (sorry, Ken) until I watched part of the analysis matrix webinar. The idea that two dimensions is somehow better than one seemed like magical thinking to me. Why two? Sometimes there’s one. Sometimes there are two. Sometimes there are nine.
What occurred to me while I was reviewing that webinar, and actually was touched on in a glancing way when talking about dealing with extra complexity, is that there is something special about two-dimensional descriptions: that’s the minimum number of dimensions required to specify a relationship between two kinds of variation. I think that part is obvious, so I won’t go any deeper.
What struck me is that two is also the maximum number of dimensions required. You can always map two dimensions with a finite set of elements into a new, abstract dimension. So, if you have to cross-reference, say, nine dimensions in a domain, you can still depict that relationship using only two dimensions.
The analysis matrix is a special case of the fact that you can always represent problems like this in terms of some set of tables cross-referencing related-but-varying concepts. So are the kinds of tables we talk about in the Ken-style ATDD deck.
I might add a little write up to this discussion with pictures and samples. Is this worth discussing?October 11, 2016 at 5:34 pm #29674James TrottKeymaster
Yes. I set up a very large program to use 2-dimensional tables for about 70% of its requirements. There was a special model of reality behind the 2 dimensions (Parnas), and it worked incredibly well…facilitated massive automation, easily validated with customers, etc.
I am convinced that tables with a sound mathematical model beneath are one of the most powerful tools we have available. For the 1/2 to 2/3 of the time they work.October 11, 2016 at 5:39 pm #29675
What I’m thinking about writing about is that they actually work 3/3 of the time when there are kinds of variation you need to relate because you can just unfold the portion of the time they don’t look like they work into more 2-dimensional cases.October 11, 2016 at 5:56 pm #29676James TrottKeymaster
I still found textual requirements useful at times, like for special one-off functionality. And where constructing an underlying model for the table format was not justified by the gains from using it for multiple times from that point forward.
I’m intrigued by 3/3 however. If there’s a way to overcome the above “overhead,” then there are undoubted advantages to the table format from that point forward…October 11, 2016 at 6:20 pm #29677
The scope I suggested was…
specify a relationship between two kinds of variation
So a textual spec when, for instance, there are zero forms of variation would make sense. A textual spec might always make sense. I’m not talking about which is better, just about what a two-dimensional table cross-referencing two different kinds of variation can do.
As for overcoming the other form of overhead you mentioned, I’d need to understand it better. You said…
where constructing an underlying model for the table format
The first problem is that I don’t think there is always a mathematical model required. Take, for instance, a table where you need to cross reference two different factors and choose a rule that best approximates something. The following is like a cartoon of the real domain based on the scraps I picked up from SMEs…
Let us say we need to decide how to guess two molecules will interact. There are three things that can vary:
- Left side structure
- Right side structure
To make that into two dimensional tables, I would combine the first two into an axis. I’ll call it a reaction category because I don’t know any better.
Reaction Category from Kind of Molecules Involved Small Protein Small Small Small-Bio Protein Small-Bio Bio-Bio
There are all kinds of structures so that table would have more entries and be a little more flavorful but it’s good enough for this example.
Next, I can take the new axis I’ve created by cross referencing two “primary” axes in this domain and relate it to the third axis: distance.
Interaction Model by Category and Distance Small-Small Small-Bio Bio-Bio Near Algebraic Waveform Biological Far Algebraic Particle Particle
I don’t think there is an underlying mathematical model required to understand or implement the specified rules. I know enough to know that the shape of those tables are correct but the content are, like I said, a cartoonish representation. If a SME filled out the content, I could implement the rules without any further understanding – somewhere else, we can explain how small molecule algebra works, how (we guess) objects interact on a quantum level, and how they interact as particles.
All I need to know is how to pick the right one of those.
It’s difficult for me to envision a scenario where you need to build an underlying mathematical model. If there is a mathematical model that matters and is part of the domain, it ought to be defined explicitly as part of the specification. In such a case, it would be hard for me to see that as overhead. If there isn’t a mathematical model required, then there’s no need to define one and therefore no risk of overhead.
That’s a dichotomy, which don’t exist in nature nearly as often as people act like they do. Is there some weird third thing I don’t see?
- You must be logged in to reply to this topic.