[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