By the way how does
TheSourceCodeIsTheDesign stand up in the light of
TimBernersLee's design of the World Wide Web - or
WardCunningham's design of Wiki for that matter? Were these examples of good design? Did the design exist in any sense before the source code? Does it exist now in any sense outside the various bodies of source code concerned?
What I'm really asking is what is
GreatDesign and how can we nurture better designers. (And putting in my nomination for Tim and Ward of course.) --
RichardDrake
I think the meaning of "design" changed some above from externals to internals.
The design for the web is independent of the source code of the servers and
clients that implement it.
--
DickBotting
The design of the externals and the internals have both been part of the challenge for every system that I've ever tried - and the external aspect is often more the make or break success factor (after the finance and closely tied to the marketing).
My concern (and
TomGilb's) expressed briefly in
ExtremeProgrammingExplainedEmbraceChange is that some XP programming teams (like many other programmers in the past) may limit the idea of 'design' only to source code, not leaving place for the sorts of question below.
--
RichardDrake
See
DesignStyleAndCreativityBookList which is awesomely helpful. As usual Wiki hasn't ignored the issue. If you've had time to read all or even some of these tomes can you help with any of the following
Questions
What is
GreatDesign?
HowCanTeamsDesignBetter
Is
ExternalDesign simply about the quality of the
UserStories provided in XP or is it more subtle than that?
What is the relationship between
DoTheSimplestThingThatCouldPossiblyWork and the quality of external design?
How can we learn from examples of great design in the software field rather than just abstract principles? What are the best examples?
Is the
SecondGenerationProgrammer effect going to help with the integration of external and internal design?
Great External Design describes an optimized user experience. It describes user interactions with the system and a look-and-feel that draws the shortest lines between what a user wants from the system and satisfaction. It is expressed in the appropriate media and in sufficient detail and clarity that no one--user, project manager, programmer, tester, help writer--could possibly misunderstand what needs to be built. This is distinct from the internal design that programmers do to realize the external design. What works for me is Big External Design Up Front and Internal Design whichever way the programmers want--as long as they produce. This also lets me do one of those weird things real engineers do: risk manage the project by doing the hardest things first. --
MarcThibault
See also
InternalAndExternalQuality
CategoryPlanning