XpdWiki

FrontPage
RecentChanges
FindPage
PageIndex
UnusedPages
UndefinedPages
XpApprentices

Set your name in
UserPreferences

Edit this page



Referenced by
WhereIsTheJoy
Xp2002Stories




JSPWiki v2.0.52


DavidParnasKeynoteSpeech


Prof Parnas began his speech by saying that he had been invited to several conferences in his time where he had gone and said unpopular things. Such as telling the formal methods people that they were barking up the wrong tree. An infinite recursion tree, (cue nervous laughter). So then he started talking about XP.

He began by softening us up a little, explaining that he had read TheWhiteBook? and liked several things about XP, for instance the focus on producing code and testing. All very well, says he, but if you're driving your project without paying sufficient attention to long term issues, you can easily take a wrong turn and end up in a swamp.

So, what XP needs is documentation. Design documentation. But wait, not your usual waffly UML that is out of date as soon as it's been printed out, what you need is MathematicalTables. Concise, precise formulae, that enable test specification and conversation with the customer. Obvious, isn't it?

Prof Parnas cited a defense project he had been involved in that had used these tables as design documentation that would drive the coding effort. The end user would be highly trained aircraft pilots, and by looking at the tables, the pilots found over 500 errors.

So there it is. The obvious question of course, was "are programmers as smart as pilots?" (When presented with squiggles and numbers neatly arranged in boxes?) We can only hope so...

After overrunning his alloted time by about half, and having criticised XP pretty much to its face, David Parnas was understandably ebullient. He commented on how much he was looking forward to the forthcoming panel session, soon to be subtitled "Kent strikes back".

The interesting thing is, that "Kent strikes back" didn't turn out that way at all. I think it speaks volumes about the maturity of XP as a discipline that Kent could stand up at the end of the conference and remind us that XP is about more than the practices, and that it is not set in stone. How can we know that MathematicalTables isn't the way forward if we havn't tried it?

Of course, the subtle strikeback to David Parnas, ever so politely veiled was "how can you criticize XP if you havn't tried it?".

-- EmilyBache

back to Xp2002Stories

"are programmers as smart as pilots?" The answer was that they weren't presented with squiggles, but with equivalents to the squiggles that they could understand. And furthermore, someone pointed out that a better question is, "are the users of your system as smart about what they want to do, as pilots are about flying" -- KeithB

Thanks for the extra info on MathematicalTables, KeithB. (I hope you don't mind my outlining your comments) I actually wanted to put one up here as an example of what they look like, (instead of resorting to describing them as "squiggles and numbers neatly arranged in boxes", it would be much better for people to be able to see for themselves). Prof Parnas' slides are PDF and I didn't know how to copy one onto here.

Also, maybe it wasn't clear from the story, but I'm not taking up a position against MathematicalTables - they are undoubtedly valuable, especially in the pilot's case. I'm just trying to point out that at least one member of the audience was having trouble understanding them, and that he probably wasn't alone. Kent is right, though, dismissing them due to lack of comprehension isn't the way forward. -- EmilyBache

There used to be a research program doing TabularDocumentationAtSwansea. I got to see some of the documentation that the Naval Research Labs turned out. When I picked it up for the first time and opened it at a random page, it reminded me of perl... --DafyddRees

I do Perl for a living. One of the things that we try to strive for is http://xp.c2.com/ExtremeNormalForm.html, which we call declarative programming. Often our code looks like tables which a simple interpreter implements. An example is available online at [1]. I don't believe we could come up with the tabular from the start unless the problem were trivial. We end up refactoring into the "Interpreter Pattern". To me, it's a natural result in Perl, and not so natural result in statically-typed languages like Java. See [2] for a discussion of lightweight languages as engineering tools and also http://ll1.mit.edu for a conference on dynamic, lightweight languages. -- RobNagler

³DavidParnasKeynoteSpeec? ³


Edit this page   More info...   Attach file...
This page last changed on 23-Sep-2002 18:45:11 BST by unknown.