Skip to content

CodeMash Keynote: The World is Dynamic

Presented by: Bruce Eckel

Wow.  That was a good keynote.  The main idea was that the world is changing, paradigms are shifting, and we are finally realizing that software development is not the static, defined process talked about in many books or imagined by many managers.  Life is dymanic, the world is dymanic and experimentation is needed in order to learn.  Most of the time, you’ll be wrong, but you’ll learn and improve as the iterative process continues.

One interesting part of the talk concerned project estimation.  In PeopleWare, the most productive project situation is described as the one that has no schedule.  This counter-intuitive notion is probably impossible for many managers to understand, but it is something that I instantly recognized as being very true in my own experience.  In the session, it is pointed out that project estimation should really be considered a statistical process, not a static one (this also dovetails nicely with notions in many Agile methodologies, but that is another discussion).  We often complete projects that take longer than expected and have more problems than anticipated and we say to ourselves, “the next time will be different.”  But, we are wrong.

According to Eckel, the “mistakes and struggles are the real creative stuff.”  This doesn’t mean we have to always start at 0 when developing a new application.  An example in the presentation was that of a good designer, who can rapidly experiment within his/her own mind and go through many possible draft designs that are quickly discarded as unworkable or inappropriate before ending up with a concept that is not an obvious failure.  From that point, you struggle and work on the process until you get come to a consensus.  The point is that one needs to understand the medium and its limitations.

Anyway, there is a lot of stuff to think about in the keynote.  The main idea, I thought, was that people want to believe that software development can be controlled and duplicated.  But, this is simply untrue.  Managers are often forced to believe this because they are responsible for consistent, reliable results.  But, this doesn’t change the reality and as Bruce pointed out, this disconnect may be the reason why there are many successful small businesses that stay small and private, so they can avoid the constraints put on them (to attain shareholder profit each quarter) by becoming public.

On a technical level, it is the dynamic languages that let us rapidly prototype and come to a consensus about requirements and change features on the fly.  It is the dynamic languages that let us really experiment.  Unfortunately, often economics or politics end up choosing languages and technologies for us.

Ultimately, the most important thing one can do is create a productive environment  and attract the right people.  I’ll have more to say about how to do this at a later time.  We must remember that as software developers, our jobs are to, as Bruce put it, “learn, dream, [and] build.”  I think that’s pretty cool.

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*