Only in my past couple of jobs have my employers been into this newfangled Object Oriented mindset. I don't claim to be a great designer myself, but I have yet to meet anyone in the corporate world whose design is anything better than mediocre. Most of them tend more toward hideous.
Does anyone work for a company where good OO Design is practised and can I have a job there? I promise I'll be very quiet and sit in the back and not bother anyone...
-- BruceIde
That good designs exist is trivially true. Recommended reading: StandardTemplateLibrary, TeX sources, and many other projects for which sources can be examined, and a lot of commercial products that do their job well, thus we have reasons to believe that their design is not so bad.
I think Eiffel would be a good thing to look at too.
Perhaps the question should be: CanAnyoneDoAnalysis? ;) Once you have understood the problem, you can design the solution; quite often people like to jump in too quickly with design and code before understanding the problem and end up with a mess. Getting people in the corporate world (and developer world) to spend time and effort on understanding the problem they are trying to solve is quite a tricky business. -- ChanningWalton
Robert Glass has an essay in Software Conflict (Yourdon Press) that might be of interest. He talks about what thought processes individuals and teams employ while doing design. He does not talk about OO design in particular here nor any particular representations --DaveParker
The essay referred to by DaveParker is called "The Cognitive View: A Different Look at Software Design," and was recently republished on the web in developer.* Magazine. As it relates to CanAnyoneDoDesign, Glass writes the following:
"There is one other key finding about design that enters into this. Other researchers, such as Willemien Visser of Institut National de Recherche en Informatique et en Automatique, France, have found that "designers rarely start from scratch." That is, they use an existing model from a prior solution of a similar problem, as that first cut at the model that begins the simulation process. In fact, in retrospect, I think that’s how the young man from Boeing ran such mental circles around me at the Ada class. He’d solved that class of problem before, and he had a tentative solution already lurking in his mind!"
Glass does not take a stance that only certain people can do design, but that certain people will be better than others depending on their past experience. I would expect also that since the research Glass cites points to pattern recognition and having had experience solving the same "class of problem" before, that we could also conclude that people whose brain is better wired for pattern recognition and abstract thinking might be better at design than even someone equally experienced.
http://www.developerdotstar.com/mag/articles/glass_cognitive_view.html
--DanielRead?
To me, one criteria for "good design" is being able to explain why you did it that way and how it is better than the alternatives, which one should also explore as a "good designer". If they can only quote authorities and magic principles out of habbit or BuzzwordBingo, dump 'em! --top