Agility and Testing
I'm studying Ruby. One measure of how much I've been influence by the agile software movement is that, when thinking about Ruby on the way to work this morning, one of the major credits in its favor seems to be its openness to refactoring and pervasive testing.
Journalists and pundits often regard bugs and design errors -- and any design decision with which they disagree -- as signs of programmer laziness or stupidity or bad attitude. The bad attitude is the pundit's: these are incredibly complex objects, fine programming continuously requires myriad little decisions and small choices, some of which will have large and unforeseen consequences. And it's all done on the cheap.
How, incidentally, can IEEE even think about promulgating a "Book of Knowledge" about software engineering that doesn't include Design Patterns among its recommended books?