E.M. Forster and Agile Programming

From E.M. Forster’s Aspects of the Novel:

Another distinguished critic has agreed with Gide — that old lady in the anecdote who was accused by her nieces of being illogical. For some time she could not be brought to understand what logic was, and when she grasped its true nature she was not so much angry as contemptuous. ‘Logic! Good gracious! What rubbish!’ she exclaimed. ‘How can I tell what I think till I see what I say?’ Her nieces, educated young women, thought she was passée; she was really more up to date than they were.

And Giles Bowkett’s Let the System Design Itself

And it literally happens like that. If you’re building design-first, you’re saying, “The system will do XYZ - I’ll put that here.” But just because you know it’ll do XYZ, you don’t necessarily know how or where, and deciding ahead of time imposes an arbitrary and unnecessary structure on your code. So then you have a file called XyzFile, which is supposed to do XYZ, and then you have other code elsewhere in the system which actually does XYZ, and it’s in some other file, because the design you imagined will always be different from the design which emerges. It’s like coding in Java. There’s the structure of your actual program, and the structure that Java requires you to accommodate. That second structure is just unnecessary mental overhead, and the bigger your system gets, the more wasteful that overhead is. You’ll have a structure that emerges naturally, whether you want to or not. It’s as inevitable as gravity. You might as well just let the macro follow the micro, like it’s supposed to, and get the good design which emerges naturally as a byproduct of that process.

Forster uses the anecdote to point out how the meaning of the work emerges from the act of writing, much in the same way that Bowkett illustrates how good design, if good design exists at all, naturally emerges from the act of writing the code.

And perhaps in this connection exists a new mantra for agile programming: how can we know the software’s design until we see how it’s coded?

By the Numbers: The del.icio.us/popular/toread Count

As previously discussed, many of the popular links on del.icio.us tagged toread contained numbers in the titles. Now this can be quantified:

del.icio.us Sparkline

The sparkline above (courtesy Joe Gregorio’s sparklines service) shows the trend of the sum of numbers found in the titles of links in the del.icio.us/popular/toread feed over the last 14 days. (From what I can tell, the popular lists are recalculated about every 4 hours, so each bar represents one sample from each four hour period.) The sum is calculated by a Ruby script that periodically grabs the RSS feed for the popular/toread tag, taking any representation of a number from a title in the feed (e.g.,10, Ten, 101, 2001) and adding it to the total.

The numbers for the last two weeks:

Min: 89.5
Max: 2324.5
Mean: 697.47
Mode: 380
Median: 379

Coming soon…a way you can make a game out of this.