This is well worth reading for any developer once you get past the first page or so. At first the complaints about existing software seem overblown because it's not obvious where the shortcomings are, but once you get into it it's an interesting study in how multiple small flaws can be seriously aggravating to the trained eye...and the dangers of unthinking abstraction that works fine in simple cases but falls apart when applied to more complex problems.