The Artima Developer Community
Sponsored Link

Computing Thoughts
Things I Learned at QCon
by Bruce Eckel
November 22, 2008
Floyd Marinescu asked me to organize an open-spaces session at the QCon Conference in San Francisco. I learned interesting things at both open spaces and regular sessions.


From Open Spaces

  1. Design Storms: a way to bring a group of people to consensus in 1/2 hour.

  2. Possible Reasons Dynamic Languages are Helpful:

    • They lower the barriers to experimentation
    • They express clarity of intent

If you are going to shoehorn open spaces into the evening of a regular "eyes forward" conference, it might be better to have multiple shorter open spaces events spread over several evenings rather than putting them all in one evening. This might also raise the buzz level about open spaces for subsequent evenings.

Kent Beck on Design

Kent Beck talked about exploring the techniques he used during design, which he defined as "Beneficially Relating Elements."

  1. Leap (take small (safe) steps that you know will work)
  2. Parallel (operate two designs in parallel for awhile)
  3. Stepping Stone (if I had a ... I could do that)
  4. Simplification (Start with the simplest case, and expand on that once it's working). Art in knowing when to trim features for simplification, and when to re-add them.

Eric Evans

The quality of a software team is set to the second worst programmer on the team (everyone is carefully watching the worst programmer).

Bad programmers can be far more productive in producing bad code than good programmers can be in cleaning up after them.

Programming "heroes" are people who provide business value by working in the core domain. Unfortunately, such "heroes" are often bad programmers who are smart enough to put themselves in the right place. Good programmers often have to clean up after them.

Instead of trying to rearchitect the whole system to begin providing business value in the third year (which never happens because you spend two years costing the company money while not providing any visible business value), you should situate yourself in the core domain. Create a facade to the underlying (bad) architecture and begin adding business value. Over time, you can change aspects of the underlying architecture when the benefits are clear.

New Databases

Because of the demands of the web, we are seeing new kinds of databases and data storage techniques that are very focused on web issues -- distribution, speed, size. These are not relational because, for the web, the cost of the full flexibility of a relational system is too high.

Talk Back!

Have an opinion? Readers have already posted 16 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Bruce Eckel adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Bruce Eckel ( provides development assistance in Python with user interfaces in Flex. He is the author of Thinking in Java (Prentice-Hall, 1998, 2nd Edition, 2000, 3rd Edition, 2003, 4th Edition, 2005), the Hands-On Java Seminar CD ROM (available on the Web site), Thinking in C++ (PH 1995; 2nd edition 2000, Volume 2 with Chuck Allison, 2003), C++ Inside & Out (Osborne/McGraw-Hill 1993), among others. He's given hundreds of presentations throughout the world, published over 150 articles in numerous magazines, was a founding member of the ANSI/ISO C++ committee and speaks regularly at conferences.

This weblog entry is Copyright © 2008 Bruce Eckel. All rights reserved.

Sponsored Links


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use