Hi,

the recent discussions about the import interface revealed a conflict between 
two goals of open source software development, that split the developers in two 
types:
- enhance the codebase to make it maintainable, extendable and state-of-the-art
- add new domain specific functionality that users need

(The purpose of this mail is to clearly state that I'm more interested in the 
latter, and also make clear that both is extremely important, I don't want to 
judge over which one is more important.)

About the second goal first: developers working on that tend to not care about 
the internals too much. They are often users of the software and have a clear 
idea of new features they would like to see. They just implement them, trying 
to follow the coding guidelines and existing interfaces, but they are also 
willing to introduce dirty hacks for the sake of their desired functionality. I 
must admit that I'm of that type. When I look on the activities in the ArgoUML 
project, then I get the impression that we're weak here. But the main intention 
behind open source project is that users add needed features and share them 
with others!

About the first goal: it is extremely important, because it provides the basis 
on which new features could be integrated. Developers working on that have a 
clear understanding of software engineering and carefully watch about used 
patterns, interfaces, processes and such. They prevent the project from chaos 
and the death of unmaintainable monster code. Their goal also is (or should be) 
to provide a framework on which extensions by the other type of developers can 
safely and easily be coded. I think ArgoUML concentrated on that for a long 
time.

There are common interest and goals of both developer groups for sure, like 
moving to UML2. But sometimes there arise conflicts which must be handled: the 
"user" developers introduce dirty code that makes the life of the "framework" 
developers hard. On the other hand, the "framework" developers always 
restructure the code base that sometimes can prevent the "user" developers to 
code something usable within their limited time. I'm a "user" developer, as 
stated before, and had to postpone my feature ideas for YEARS for several 
reasons, sometimes I even had to abandon plans. First there was the breaking of 
sequence diagrams, then the move from NSUML to MDR, then multiple reworks of 
whatever event mechanism, now we will have sequence diagram 2 or 3 and 
UML2/EUML/AMOF/DI/... and so on. Back then there was Thierry, then Jaap, and I 
thought "ok let them finish their work, then I'll continue", but now I see this 
is a neverending story. (BTW, now we have good old Tom that follows that 
tradition, hey Tom, don't misunderstand me, I appreciate your work VERY MUCH!)

I don't know if there's any solution to the conflicts beside just being aware 
of the differences and respecting each others work. Maybe ArgoUML someday WILL 
reach a state where new features can easily be added (there was made HUGE 
progress towards this!), maybe by a powerful scripting mechanism without even 
changing the code, or maybe even some graphically feature builder, ... I'm 
still hoping for the KILLER features that no other UML tool  has, like this was 
the case for the critics mechanism. I try to work towards such a killer feature 
by providing functions that will get you from source code (or huge model) to 
useful eye-opening static and dynamic diagrams in no-time, others might have 
other ideas. If we have such killer features, then users will come and even 
forgive us the absense of things like undo or diagram interchange or 
completeness of UML2 support (who really needs that?).

I'm starting to drift away, so I better stop... :)

Regards,
Thomas
-- 
GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen!
Jetzt dabei sein: http://www.shortview.de/[EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to