The Artima Developer Community
Sponsored Link

Weblogs Forum
Things I Learned at QCon

16 replies on 2 pages. Most recent reply: Dec 10, 2008 1:41 PM by Elizabeth Wiethoff

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 16 replies on 2 pages [ 1 2 | » ]
Bruce Eckel

Posts: 875
Nickname: beckel
Registered: Jun, 2003

Things I Learned at QCon (View in Weblogs)
Posted: Nov 21, 2008 7:26 PM
Reply to this message Reply
Summary
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.
Advertisement

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.


Ling Wang

Posts: 3
Nickname: one0
Registered: Nov, 2007

Re: Things I Learned at QCon Posted: Nov 22, 2008 12:08 AM
Reply to this message Reply
To Eric Evans:
YES, YES, YES ... You are absolutely right about this ridiculous triumph of garbage makers over cleaners.
I'm one of such unfortunate cleaners; what's worse, I thought myself one of the "heros"(maybe the only one "hero") in my company for doing all the rearchitecture and refactoring, but only to realize at last that I'm nobody here. It is those garbage makers that make critical decisions, which of course will almost always result in more more splendid spaghettish design, code, UI, functionalities ... Never miss one. What a grand workload for me!
Every time a miserable prediction by me came true, they would never say they were sorry or they regretted for their stubborn resistance against my argument and advice back then. They just admitted "it is a good time to for us to make improvement, for we now have a better sense of the application."
So, it is time the move my butt from infrastructure to domains, core or peripheral.

Kay Schluehr

Posts: 302
Nickname: schluehk
Registered: Jan, 2005

Re: Things I Learned at QCon Posted: Nov 22, 2008 6:23 AM
Reply to this message Reply
> The quality of a software team is set to the second worst
> programmer on the team.

That's evidence enough for building teams of at most two programmers.

I made quite good experiences in this respect. The quality wasn't overall exceptional but the architecture and the libs were quite good and the damage the worst programmer could make was limited after he grasped that there was an architecture and there were libs at all.

Terry Roe

Posts: 3
Nickname: tr
Registered: Nov, 2003

Re: Things I Learned at QCon Posted: Nov 22, 2008 12:52 PM
Reply to this message Reply
Could we see some examples of these new kinds of databases?

Thanks,

TR

Bruce Eckel

Posts: 875
Nickname: beckel
Registered: Jun, 2003

Re: Things I Learned at QCon Posted: Nov 23, 2008 8:38 AM
Reply to this message Reply
CouchDB, the database in Google App Engine, Hypertable, Neo4j

Florin Jurcovici

Posts: 66
Nickname: a0flj0
Registered: Feb, 2005

Re: Things I Learned at QCon Posted: Nov 23, 2008 11:54 AM
Reply to this message Reply
> To Eric Evans:
> YES, YES, YES ... You are absolutely right about this
> ridiculous triumph of garbage makers over cleaners.

Unfortunately, those garbage makers are reality. I mean, your company doesn't hire garbage makers because it likes to do so, but because cleaners are in a too short supply, or too expensive for the type of projects you do, so your company, like many others, is bound to use garbage makers along with cleaners. This, unfortunately, is one aspect of software development almost always ignored. And (IMO) the reason why many of the things demonstrated to work in exceptional cleaners-only teams cannot possibly work in most other teams, which also contain a significant amount of garbage makers.

Terry Roe

Posts: 3
Nickname: tr
Registered: Nov, 2003

Re: Things I Learned at QCon Posted: Nov 23, 2008 12:55 PM
Reply to this message Reply
> CouchDB, the database in Google App Engine, Hypertable,
> Neo4j

Thanks Bruce.

TR

Peter O'Connor

Posts: 3
Nickname: peteroc
Registered: Mar, 2007

Re: Things I Learned at QCon Posted: Nov 24, 2008 8:12 AM
Reply to this message Reply
"I mean, your company doesn't hire garbage makers because it likes to do so, but because cleaners are in a too short supply, or too expensive for the type of projects you do"

No. That is exactly the point that Wong and Eric Evans are making. The company actually value the garbage makers more because the people at the top are not able (or don't bother) to distinguish garbage from something clean. They see both as progress except the garbage appears to be delivered faster. They don't see the exponential costs that it generates as the system starts to fall over under under its own weight. Is there any way to win here apart from leaving the company or carve out your own area and keeping that clean? Is it possible to do a marketing job on "clean code" in a place where the culture just doesn't get it?

Michael Hobbs

Posts: 51
Nickname: hobb0001
Registered: Dec, 2004

Re: Things I Learned at QCon Posted: Nov 24, 2008 11:14 AM
Reply to this message Reply
I realize that I can easily search for the answer to this question, but I think it's something that should have been the first thing addressed in the article:

What's QCon?

Florin Jurcovici

Posts: 66
Nickname: a0flj0
Registered: Feb, 2005

Re: Things I Learned at QCon Posted: Nov 24, 2008 1:59 PM
Reply to this message Reply
> They see both as progress except the garbage appears to
> be delivered faster.

Not from what I have seen so far. What I have seen is that management gets a pretty accurate picture of who is and who isn't really good at what he's doing. Only it hire only the best programmers, either for cost reasons or simply because the merchandise isn't on the market.

Management isn't always stupid. (In fact, my experience is that in most large enteprises management _is_ stupid, but can't afford to be stupid in smaller ones, except for a very short period of time, since smaller companies die out a lot quicker.) Only, what drives management decisions is a different set of facts than what drives programmer assessment of management decisions.

Emil Eifrem

Posts: 2
Nickname: emileifrem
Registered: Nov, 2008

Re: Things I Learned at QCon Posted: Nov 24, 2008 6:53 PM
Reply to this message Reply
I participated in the open spaces discussion on dynamic languages. (Unfortunately the only one I could attend! I agree that it would've been great to have spread them out. Now, even worse, they collided with the speakers' dinner on Thu night which I think might have removed a lot of brain power potential from the sessions.)

An important point in Bruce's writeup on dynamic languages is the word "Possible" in "Possible Reasons." I had to leave early but when I left we hadn't converged on any of the underlying reasons as to why it's potentially easier to experiment with and why intent is allegedly expressed more clearly with a dynamically typed language. Some people made the point (which I happen to agree with) that it is not the dynamic nature of e.g. Python that makes it powerful but rather its syntactic brevity. I hear reports of the same kinds of productivity improvements for statically typed Scala, for example.

(As a counter point to this statement, however, see Alex Payne's comment here: http://neopythonic.blogspot.com/2008/11/scala.html?showComment=1227308100000#c5197307638516677912. He seems to have noted that compared to Scala, initial development is indeed faster with Python but maintenance is more burdensome. So that does indicate that dynamic typing gives an initial boost. Yet more anecdotal evidence.)

Unfortunately, I didn't partake in the wrapup of the session: I only had time to be provocative and say that I love Java and head out before any conclusions were made. But it's certainly fascinating that so many super smart people anecdotally say that dynamic languages are more powerful, yet I've heard very few being able to rationalize it. That of course doesn't mean that it's wrong. But figuring this out I think is something the community really should chew on,

-EE

Emil Eifrem

Posts: 2
Nickname: emileifrem
Registered: Nov, 2008

Re: Things I Learned at QCon Posted: Nov 24, 2008 6:54 PM
Reply to this message Reply
> I realize that I can easily search for the answer to this
> question, but I think it's something that should have been
> the first thing addressed in the article:
>
> What's QCon?

http://www.letmegooglethatforyou.com/?q=qcon

:)

-EE

George Sakkis

Posts: 14
Nickname: gsakkis
Registered: Jun, 2007

Re: Things I Learned at QCon Posted: Nov 24, 2008 7:50 PM
Reply to this message Reply
> > I realize that I can easily search for the answer to
> this
> > question, but I think it's something that should have
> been
> > the first thing addressed in the article:
> >
> > What's QCon?
>
> http://www.letmegooglethatforyou.com/?q=qcon
>
> :)

LOL.. thanks for the link :) Still even after skimming over the Qcon site, I can't tell what kind of conference is this; does the "Q" stand for something ?

Michael Hobbs

Posts: 51
Nickname: hobb0001
Registered: Dec, 2004

Re: Things I Learned at QCon Posted: Nov 25, 2008 1:18 PM
Reply to this message Reply
> > I realize that I can easily search for the answer to
> this
> > question, but I think it's something that should have
> been
> > the first thing addressed in the article:
> >
> > What's QCon?
>
> http://www.letmegooglethatforyou.com/?q=qcon
>
> :)

Nice. I'll have to remember that site. But like I said, I can easily search for it. My point is that if the author is going to put the name "QCon" in the title of his article, it'd be nice if he then told us what QCon is.

(not to mention that, as another commenter pointed out, the http://qcon.infoq.com/ site consists of marketing verbiage that provides no information about what actually differentiates it from XCon, YCon, or ZCon.)

Kay Schluehr

Posts: 302
Nickname: schluehk
Registered: Jan, 2005

Re: Things I Learned at QCon Posted: Nov 26, 2008 12:41 AM
Reply to this message Reply
> Some people made the point (which I happen to agree with)
> that it is not the dynamic nature of e.g. Python that makes > it powerful but rather its syntactic brevity.

It is really dynamic typing + reflection + metaprogramming + multiparadigm that produces conciseness in the first place. One wants to overwrite all kinds of __special__ methods to create new types that feel just "native" or "builtin". Furthermore one wants to let them fail by means of available/unavailable attributes mostly and not by the presence of type names.

As far as maintenance goes I agree it's harder to maintain the same LOC in Python but for the exact same reason. The code is of greater density and the way different types interact is less predictable due to various customizations.

Flat View: This topic has 16 replies on 2 pages [ 1  2 | » ]
Topic: JavaPosse Roundup 2009 Dates Set Previous Topic   Next Topic Topic: Speaking at a Castle in Denmark


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us