Designers are busy people, and they are getting busier. In today’s world designers must deal with three competing pressures:
- 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 pace, and
- A parade of improvements in implementation technologies, such as new programming languages, frameworks, code generation tools and prototyping environments, drawing the designer into the vortex of a mad cycle of collaboration and hacking.
The 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 in design:
- 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 creativity, innovation, and fun. What are some design principles and practices that we should consider using to reinforce and reward innovation?
- 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 products. Lead 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.
In 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
What 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.
- Prepare an optional one-page “position paper” – containing your ideas, questions, and experiences. Send your position paper to mancl - AT - alcatel-lucent.com.
- Note: 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.
The workshop is organized as a set of interactive brainstorming and discussion sessions. The workshop participants will prepare a poster to present at the SPLASH poster session on Monday afternoon.
Extra material (useful readings, links to books and articles on xDD practices, experience reports, and other supplementary information) will be posted here.
- Wirfs-Brock, Rebecca, “What Drives Design?” Video re-cording of an OOPSLA 2008 invited talk on the InfoQ site, http://www.infoq.com/presentations/What-Drives-Design-Rebecca-Wirfs-Brock.
- Feature Driven Development process by Jeff De Luca: http://www.nebulon.com/articles/fdd/latestfdd.html
- Driving Development With Tests: ATDD and TDD by Elisabeth Hendrickson: http://testobsessed.com/wp-content/uploads/2011/04/atddexample.pdf
- Eric Evans on Domain Driven Design: http://www.infoq.com/interviews/domain-driven-design-eric-evans
- Dan North on Behavior Driven Development: http://dannorth.net/introducing-bdd/
- A Brief Tour of Responsibility Driven Design by Rebecca Wirfs-Brock: http://www.wirfs-brock.com/PDFs/A_Brief-Tour-of-RDD.pdf
- Contract Driven Development paper from ETH (Leitner, Ciupa, Oriol, Meyer, and Fiva): http://se.inf.ethz.ch/old/people/ciupa/papers/esecfse07.pdf
- Steve Mellor on Model Driven Architecture: http://www.omg.org/news/meetings/workshops/RT_2004_Manual/00-T3_Mellor.pdf
- Scott Ambler on Agile Model Driven Development: http://www.agilemodeling.com/essays/amdd.htm
- John Carroll on Scenario-Based Design: http://learningspaces2008.pbworks.com/f/Carroll_Scenario.PDF
- Stephanie Kaiser on Metrics Driven Design: http://www.infoq.com/interviews/kaiser-metrics
- Jim Coplien and Bob Martin debate: TDD and CDD: http://www.infoq.com/interviews/coplien-martin-tdd