[om-list] meeting
Luke Call
lacall at onemodel.org
Mon Sep 4 11:39:07 EDT 2000
Long experience has shown me over and over again that choosing a
language and divvying out tasks before an architecture is done, is going
to result in inflexibility and will lead to a product far short of our
goals. I want to get the design right, above all, then the class
structure we create will have headroom to grow or adapt without constant
painful redesign. I have seen this time & time again. We may find that
we want to use CORBA as a comm layer between modules, or we may find
that our needs require a different distribution of responsibilities
among components than any one person could come up with on their own.
These things matter. If we get a design right, it can lead to an API
where multiple front ends, in multiple languages, can access it--whether
a GUI, text-mode interface, multiple-user, external software systems,
etc. It is essential to get our core model good enough to scale up to
the kinds of requirements we have defined. Or at least I thought we
did--maybe the lack of feedback I got on the requirements list and
development outline was really a lack of support or interest in the
direction, but nobody said so?
I'm really not trying to be a king here. But a design process, guided by
experience (which is why I like Rational's--there is so much wisdom in
it from so many people, but others are good too), is the only way to get
it right. And the creation of design and module specifications has to be
a group effort, because no one of us is smart enough to do what we can
all do together.
I realize things have been slow. But let's not rush it to the point
where we skip the foundation and rush to the product phase. I will not
be able to participate in that, because I have to be able to envision
the whole before creating the separate parts.
Would someone other than me like to propose how we will design? Maybe we
can get some discussions going that way.
The tone above is more frustrated sounding than I wanted. But I feel
something is missing.
And, this product should be multiplatform!! C++ won't be adequate for
that--what GUI toolkit will we use? GTk? X--Is it available on NT, or
the Mac? We are creating something here that is supposed to affect the
whole world. Also, we are at a prototyping phase. C/C++ is not for
prototyping but for optimizing. Have you tried writing and debugging a
multithreaded engine in C++ vs. doing it in some other language? I have,
in both. Yes, performance matters, but we are developing such an early
version that performance can't be allowed to displace our development
speed and our ability to be flexible as we create initial systems that
help us learn about the consequences of our design choices. We can
rewrite sections for performance later, once higher-priority
requirements are in place.
I beg you to get a copy of The Rational Unified Process, or UML
Distilled, or the one by Craig Larman with title like Applying UML and
Patterns (recommended). Or propose a design path that I can understand
and envision the whole--I have a hard time functioning without
envisioning the whole.
At least that's my opinion. Please tell me yours. In detail.
Or--really--put me in my place. :) Thanks.
Luke
More information about the om-list
mailing list