« Aardvark and Bandicoot, Chapte... | Home | Aardvark and Bandicoot, Chapte... »

Aardvark and Bandicoot, Chapter 8

Sun 8 May 2016 by mskala Tags used: , , , ,

In which a Post-Mortem Offers Valuable Insight

[first chapter] | [all in this series]

Aardvark: Good afternoon, Friend Bandicoot. I'm sorry to be late for this meeting.

Bandicoot: That's quite all right, Friend Aardvark. Is your head feeling better?

A: No. But we need to get this module out the door anyway, so I'll go be sick some other day. I spent most of this morning going through the test suite trying to figure out what's wrong with your code, and I think I've at least got some idea -

B: But there's nothing wrong with the code. You saw me demo it yesterday.

A: Yesterday I saw your code fail the entire test suite.

B: Test 6 passed.

A: That turned out to be due to a bug in the test harness. The test was actually failing, and incorrectly reported as a pass.

B: Well, that's not my fault.

A: But it... wait, what? Why not?

B: I didn't write the test harness.

A: So, it's not your fault that the test harness incorrectly reported your code failed all but one of the tests, when your code really failed every single one of the tests?

B: That's right, Friend Aardvark. I think it was Friend Panda in Quality Control who wrote that test harness. Not to make trouble for him.

A: I suppose it is a true statement that you are not responsible for incorrect reports by the test harness, Friend Bandicoot.

B: Indeed.

A: So.

B: Was that what you wanted to tell me today?

A: No! We have a module that you were supposed to demo, completed and working, yesterday, and instead it failed all the tests.

B: Only after you started asking for extra optional features that weren't in the spec.

A: The only extra feature here is the symbolic differentiation, which you added.

B: And that works perfectly.

A: Addition is more important.

B: But I demoed addition and that was fine, too.

A: But it - look, we're getting off track. Want to see what I discovered?

B: Of course!

A: The first test that fails is Test 1. That's a very simple test, what we call a sanity check. It just adds "2+2".

B: We did agree that extra optional features are optional.

A: Well, there are no optional features mentioned in the spec; the only thing that we could possibly call an extra is the differentiation you added.

B: Yes, I added it on my own initiative!

A: Addition is a core, absolutely essential feature.

B: Initiative is one of my areas of personal strength, identified in the last round of the animal resources development process.

A: It's very weird, and I haven't been able to track down just why this happens, but addition fails on some inputs and not others. And two plus two is one of the bad ones.

B: I don't understand why you even think we need an extra optional double-double feature.

A: Addition is not an extra and not optional.

B: But we have addition.

A: Not when both operands are "2," we don't.

B: Yes, which of our customers are going to need that extra optional feature?

A: Well, some of our customers use our software to control nuclear reactors. It's sort of important to get the numbers right.

B: Oh, I do like nuclear reactors! What's an example of the kind of calculation the operators do?

A: Well, I don't know, maybe stuff like "We have 421.36 litres of radioactive liquid sodium, and we're about to add 86.30 litres, how many litres will overflow the 500-litre tank and end up in the river?" So they enter "421.36+86.30-500" and it's important that the result should be 7.66. Neither more nor less.

B: So, these are smart people, right?

A: I do hope so.

B: And they're doing calculations with decimal fractions, or even symbolic calculus.

A: Frequently.

B: They're not doing double-double, and if they wanted to, they could do it in their heads without using our product. They don't need an extra optional feature for that.

A: Oh. Oh! Wow.

B: What?

A: When you keep saying "double-double," is that what you mean? Do you mean adding two plus two?

B: Of course.

A: You mean the specific case of the numbers two and two, considered as distinct from adding any other numbers in particular?

B: Sure.

A: Do you think adding two and two is a separate feature in itself, and that it somehow makes any kind of sense at all to say we have "addition" when we don't have that case of addition?

B: The extra double-double feature isn't in the spec.

A: I think now I'm beginning to understand.

B: You're never too old to learn!

Continue to Chapter 9.

0 comments



(optional field)
(optional field)
Answer "bonobo" here to fight spam. ここに「bonobo」を答えてください。SPAMを退治しましょう!
I reserve the right to delete or edit comments in any way and for any reason. New comments are held for a period of time before being shown to other users.