5 Sep 2000 eskimoses   » (Journeyer)

deekayen: I sympathize with your plight (lack of cooperation between developers / projects; a general aimlessness in development). Most of what I've worked on has (generally) been a solo operation; when it hasn't, I've usually held the reins so I've been comfortable with its direction. But I can identify with where you're coming from.

Something that I think the average OSS "me too" hacker overlooks is a good design process. The attitude of most budding developers is, hey, I've got a cool idea, why don't I go bang it out on the keyboard and hack it into something workable? The hacker approach doesn't always cut it, though, and I think the more mature elements of the OSS community need to do more to emphasize this. The larger OSS projects, such as KDE, GNOME, and Mozilla, [seem to -- correct me if I'm wrong] embrace this approach. I think that more should be seen of it at the freshmeat level, however.

Eager as one may be to code, it is usually far more fruitful to step back a tad and contemplate the design of a project. Carefully think through those ER / SO models for your database! If you're doing it in some OO language, read up on object-oriented design and carefully work out your object model. If not, you should still carefully ponder program flow, etc. The rewards will be significant. I've also found that often it is more fun designing than coding (personal opinion).

This, I think, is where cooperation between developers can shine: people can discuss and debate elements of the design. (Prototypes can be whipped up, but the urge to code something "real" must be suppressed! I'm a member of the open-qubit development list, and have seen a bit of confusion result from a rush to code before design had been carefully considered.) After the design has been okayed by most of the serious participants, development can proceed. Since the design will be finalized, parallel development will be easier (one hopes). Only when divergent [acceptable] designs come to light should development efforts fork.

None of my college classes emphasized this approach (alas!). My real world experience, however, which has varied from ad hoc hacking to detailed process, taught me this: a careful approach to requirements, design, implementation, and testing will usually pay off in the end.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!