Phil Suh wrote: > an interesting interview with kent beck of XP(extreme programming) fame, > and alan cooper, the father of interaction design. > > http://www.fawcette.com/interviews/beck_cooper/
I think both Beck and Cooper have good ideas, but I really have to say, Beck gets the worse of this argument. I really liked Extreme Programming Explained the first time I read it, but after talking to a bunch of XP people and reading a bunch of commentaries on it, the attitude that they have The Answer has started to really annoy me. Here's my critique of the two approaches - XP - there's one central, good idea in XP, which is that it's possible to keep the cost of changing a piece of software under control. At least, that's what the first chapter of XP explained says, the rest of it is mostly about completely unrelated things which it claims are part of The Process but are actually completely irrelevant. The ideas which *are* correct are simple design, unit tests, and merciless refactoring. Merciless refactoring I do all the time, for the same reason that I flush every time I take a shit - maybe I could save some water by waiting till later, but I do it anyway - http://advogato.com/article/215.html Unit tests, and particularly the suggestion that unit tests should be pass/fail, have been an invaluable suggestion to me, but unfortunately I've never seen any concrete advice about how to actually write tests, and my impression is that no two people do it in quite the same way. http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/bittorrent/BitTorrent/BitTorrent/bencode.py?rev=1.3&content-type=text/vnd.viewcvs-markup http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/bittorrent/BitTorrent/BitTorrent/PublisherChoker.py?rev=1.8&content-type=text/vnd.viewcvs-markup (scroll down in those two urls and you'll see lots of functions which start with 'test', that's test code) Simple design is a good start, but is far from the end-all and be-all of writing maintainable code that Beck makes it out to be - http://advogato.com/article/258.html In particular, the book Refactoring displays a complete lack of the concept of getting preconditions under control, and it's concepts of encapsulation are very weak - there's a ton of inheritance and repeated implicit assuming that there must be a 1-1 correlation between classes and units, which is wrong. Interaction design, laudably, does not claim to be The Answer, but does claim to be an important part of hopefully someday making software not suck, and that claim I believe is correct. The basic premise that most software has a 'UI designer' thrown on at the end after all fundamental concepts in the user interaction have been ossified is completely correct. The claim of Cooper's which I disagree with is that it's impossible for programmers to do interaction design. Predictably, I say this because *I* can do it :-). Seriously, if you read _The Inmates are Running The Asylum_ it makes a very good argument for how programmers love complexity and hence are completely unsuited to the task of making interfaces simple. I'm anomalous in that I absolutely hate complexity, to the point where I won't even do basic system administration because I find it's unnecessary difficulty revolting. I mention this not to brag, but because this attitude is not only something which programmers generally should be ashamed of, but is actively harmful to their programming is well. Programmers design APIs the same way they design UIs - complicated, quirky, and they call the users winers when reasonable objections are raised. Well, that's my $2 anyway (seems a bit long for just two cents). -Bram Cohen _______________________________________________ Bits mailing list [EMAIL PROTECTED] http://www.sugoi.org/mailman/listinfo/bits
