In the past week I've been much more aware when I use or hear the phrase "Can't you just ...". I never really connected my negative reaction in hearing it to the positive helpful intent I have when using it. Andy Lester's blog entry Can't you just ...?redux has helped clarify this for me.
Andy also links to Piers Cawley's essay The Fine Art of Complexity Management. Cawley presents a wonderful example of two different descriptions of a single cooking technique. The first is a brief description of what the expected result is and the second is a more complete description that would be required if you were to actual want to produce the result. The details for implementation are necessarily different than the details for specification.
Interestingly enough, in describing how to manage complexity, the essay ends up describing test driven development and commenting on this unexpected connection. He ends with this.
Next time your boss comes to you and asks “Can’t you just…?” Stop. Think about what he just asked. Your boss is managing complexity and he doesn’t even know it, and he’s just described the interface he wants. Before you dismiss him as asking for the impossible, at least consider whether or not you could arrange things so that it looks like you’re doing the really simple thing he’s asking for, rather than making it obvious to all your users that you’re doing the really complex thing that you have to do to achieve what he asked for. You know that’s what you’re doing, but you don’t have to share your pain with people who don’t know or care about the underlying complexity.
By the way, some of the comments that were added to articles and blog entries last week on java.net are, ummm, unattached. If yours isn't showing up where you expect it to, please drop me a line at email@example.com with a short description of your comment and the item your were hoping to attach it to. I know -- "can't we just ..."
The featured Weblogs includes a post from three new bloggers. Daniel Brookshier starts with The Riddle of the Spinx, in which he talks about the JXTA-Remote Desktop (JRD) project hosted here on java.net. He also suggests that we could create much richer and cooler applications "just by reading the manual.
A little knowledge, creativity and some imagination and you can change the way people think. I have just recently done just that. I do it a lot because I have a habit of reading the manual and exploring how I can apply what I have read in ways the authors have not expected."
New blogger Chet Haase also weighs in with Patterns, Shmatterns. After years of writing new code that includes the same old bugs, Chet calls for reusable components called BugPatterns and Bug Objects. He imagines a debugging scenario where a helpful set of eyes might suggest "I see you have a BadLoopVariableIncrementor pattern at work here. Let's try taking that out and see if the code works." In Computer Science is Philosophy N. Alan Rupp states that "a new generation of philosophers has risen out of nowhere, grown to maturity unannounced and are working to change history as we carry out our daily lives."
In the Also Today section, we link a Learning Path on MIDP Application Security from the java.sun.com Wireless Home. The article includes sections on the application security models for both MIDP 1.0 and for MIDP 2.0. A Learning Path is a collection of articles that together give a comprehensive introduction to a particular area.
From the Java Today News Page, news editor Steve Mallett, has gathered the following News Headlines .
Aiming to Improve Java, Open Source Scripting Ties Sparking Some
Claims .Net Usage has Surpassed Java, Offers no Proof.
JMeter 1.9 Final Version Released
Web Services Plan Targets Java
IRC Client 0.5 Released
This blog is delivered weekdays as the Java Today RSS feed. Once this page is no longer featured as the front page of
href="http://today.java.net"> Java Today it will be archived at
http://today.java.net/today/archive/index_08112003.html. You can
access other past issues by changing the address appropriately.