are busy people, and they are
getting busier. In today’s world designers must deal with three
A relentless avalanche of new knowledge about rapidly evolving applications domains and platforms, everything
from smart phones, tablets and social networking to finance and defense systems,
An insatiable marketplace demanding and rewarding innovative products and services delivered at an accelerating
A parade of
improvements in implementation technologies, such as new programming
code generation tools and
prototyping environments, drawing the designer into the vortex of a mad
cycle of collaboration and
job of design is becoming more frantic. Can we really think that
fast? Today, software
designers are facing a kind of Attention Deficit Disorder: all of
the demands to design
faster are making us lose our focus.
How do we stay focused? Maybe
we need to pick a set of core design principles. Maybe we need to have a way
to drive our design work based on something other than customers’ demands
and managers’ whims.
At the OOPSLA 2008 conference, Rebecca Wirfs-Brock presented an interesting
talk titled “What Drives Design?” The talk gave a survey of several
popular ways of organizing design work - “driven” by:
responsibilities, features, tests
models, behavior, domains, contracts
This workshop will explore how we can profit from using some of the proposed
design principles. The workshop participants are invited to share their experiences:
Positive and negative experiences with one of the xDD methods (RDD, FDD, TDD, MDD, BDD, and so on)
Design experiences where the designers “borrowed some ideas” from one or more of the xDD methods
This workshop will also try to address some questions about modern challenges
How do new
languages and development environments affect the design process?
For example, do scripting
promote design or “non-design?” Is Eclipse-based Java development
another video game?
Should we do our design thinking in pictures or words? MDD is mostly driven by pictures (UML diagrams),
whereas DDD tries to do design in linguistic terms (ubiquitous language).
Are there some key architecture requirements areas (such as security or reliability) that are mostly ignored
by the xDD methods?
How should we teach design to junior staff members?
One criticism of
many of the xDD design approaches is that they “drive out” much of the
innovation, and fun. What are
some design principles and practices that we should consider using to
reinforce and reward
There is an ongoing battle over what is the right volume of design documentation. Can xDD principles
help designers find the balance between anarchy and process obsession?
Who should participate? Methodologists:
industry and academic
experts who are formulating the
practices and processes to be used by others in developing software
developers in industry: technical professionals who are “learning ahead of their teammates.” Academic
experts: researchers who have some ideas for new tools and practices that could improve the speed, effectiveness,
and quality of software product development.
this workshop, methodologists and academics will get an opportunity to
get some feedback on how their ideas
may be received by everyday practitioners. Lead developers will
also get a chance
to share experiences and learn some
from their peers in other companies.
How to join the workshop
are your experiences in doing software design? Have you used one
or more of the "xDD" methods?
You can join in on the discussion. Here is how you can
become part of the workshop:
- Contact one of the workshop organizers listed below.
- Prepare an optional one-page
"position paper" -- containing
your ideas, questions, and
experiences. Send your position paper to mancl - AT -
You can still participate in the workshop, even if you haven't
submitted a position paper. Please send an
email to Dennis Mancl at mancl -AT-
alcatel-lucent.com to let us know you are interested. (The initial
deadline for position
papers was August 27.)
- If you still want to send in a workshop position paper (to help us plan the discussion), here are some tips:
- Your position paper might explain some of your personal experiences
(positive and/or negative) with some experimental design practices.
- Or, you could describe some of your own philosophy of design -- what
things make design hard and how to make things simpler.
- Finally, you could use your position paper to ask some questions --
some of the things that puzzle you about software design.
workshop is organized as a set of interactive brainstorming and
sessions. The workshop
participants will prepare a poster to present at the SPLASH poster
session on Monday afternoon.
Dennis Mancl (mancl -AT- alcatel-lucent.com)
Bill Opdyke (opdyke -AT- acm.org)
Steve Fraser (sdfraser -AT- acm.org)
Gail Harris (gharris -AT- tvo.org)
Position papers received as of August 30:
Extra material (useful readings, links to books and articles on xDD practices,
experience reports, and other supplementary information) will be posted here.