|
Classical OO
|
The habit of being overly class model centric when using OOAD, and not thinking at higher levels.
In the Classical OO syndrome, you tend to have a warm and fuzzy that you're doing good work, but you're really not. OOAD is the current accepted Best Practice for the main way to approach software development. It is hard to learn, and fails to "take" at about 50% of the organizations that try. Failure is often due to the negative impact of Classical OO.
Essentialy, Classical OO is the understanding one aspect of OOAD (modeling) and overdoing that in one's zeal to "do" OOAD.
Perhaps the most common example of the fuddy duddyness of Classical OO is the large models produced by whiz bang modeling tools, some printed on large sheets of paper, hung on the wall, and used to direct a project. Impressive, but the problem is they are hard to deeply understand quickly and usually depict a system that tends to degrade into immalleability. Better is one model per page, starting with a single high level model and drilling down into subsystems with narrow entry points. Each page is a component. But alas, the temptation to build monuments to oneself has always be overwhelming. Just look at the pyramids. :-)
This sad syndrome is not limited to class models. It occurs frequently with huge ER diagrams, organizational charts, gaming layouts, process simulation and "whiteboard madness".
You can spot the Classical OO syndrome by walking around a software shop and seeing what's on the walls. If it's lots of low level models, and hardly any process, architecture, customer input or other such higher level artifacts, you are in Classical OO wonderland.... :-)
Psssst, here's a secret. Sometimes it's necessary to introduce this "fever" in order to get programmers out of procedural habits. It's quite exciting to gaze upon the wide sweeping vistas of OO, the Better Way with a yellow brick road paved with objects. A wave of Classical OO fever can revive a group in the procedural doldrums.
Classical OO is slowly yielding to higher levels like Process Centric, but we expect this to speed up soon.
![]() |
Don't use this unless it's a planned step to a higher level. |