Own the vocabulary

Last week I gave an invited lecture on software assessment at the University of Bern. It's always great to interact with students. My favorite time is when I incite them to define terms relevant for the topic using their own words. When introducing software assessment, "what is a model?" is on the top of my list because this is the foundation for everything related to assessment.

Me: What is a model?
Them: A representation of a system.
Me: What does that mean?
... puzzled pause …
Me: What is a representation?
Them: It's an abstraction.
Me: Again, what is that?
... frustrated pause ...
Me: Ok, let's look at it from another perspective. Why do you need the abstraction?
Them: Because the system is too big.
Me: And?
Them: And we need to find what is important.
Me: So?
Them: So, we remove details?
Me: Any details?
Them: No, just the unimportant ones.
Me: Bingo!

This summary does not make the dialog justice. It usually lasts for some 5 minutes, and in the middle there is quite a bit of puzzlement and frustration. I could almost feel their exasperation: This is pointless! We are not in preschool. Why do we waste time with this?

It can well be that the anxiety was related to the way I asked the questions. But, I choose to believe that the real issue is that defining terms requires to rethink what looks like self explanatory.

Let's get back to our model definition. Once we understand that the goal of a model is to strip away details that are not relevant for the problem at hand, the next question is which details are actually not relevant. And if we continue along this path, we will see that all details are relevant to some problem.

For example, considering a 500'000 lines of code software system, we do not need to know what all lines of code do in order to understand the dependencies between coarse grained components. However, if we remove any of those lines (assuming it's not dead code), the program will fail at some point. So, there exist at least one problem for which every line of code is relevant.

Building on the observation that any detail is relevant at some point, we can easily see why an off-the-shelf solution that strips away the "standard unimportant" details is doomed to fail for most scenarios. Hence, the need for customized analyses, and voila, the very existence of humane assessment just became rooted in a solid argument.

Vocabulary is important not just for communicating with our peers. It is important for shaping our own thoughts as well. For this reason, we have to internalize the meaning of the terms. This is critical for providing a solid foundations for further reasonings.

Posted by Tudor Girba at 31 October 2011, 11:40 pm link
|