From: Rob Sacks (editor_at_realization.org)
Date: 2001-05-18 17:14:19
Are there any other programmers here besides me
who are interested in working on the open source
PC software? Well, I hope so, because I'd like to
throw out a few preliminary ideas about how to
organize the project.
Obviously we can't just all start writing code or
we'll end up with an incompatible mess. On the
other hand, we can't simply adopt some kind of
formal text-book methodology that was designed
for corporations where everybody is paid to sit
in the same building. We have to come up with a
plan that suits our circumstances.
It seems to me that at a minimum, our organizing
plan has to provide the following:
1. A good overall design. It should probably
be highly modular so people can work on the
pieces independently. It should probably allow
for pieces to be added or subtracted pretty easily.
It should be designed so it's easy to add a module
so people can add features to the program without
having esoteric programming skills. Ideally,
people with modest programming abilities should be
able to add to the program without breaking it.
2. Good specs that help everybody work toward
a consistent body of source code. The specs
should not only describe the program's behavior
and structure, but also coding practices like how to
name things, etc.
3. Some method for judging which new pieces
of programming are added to the program. In other
words, somebody, or several somebodies, has to
review new code and decide whether it's ready
(or good enough) to become part of the overall
source code. This implies authority. It implies
a departure from pure democracy. I think Linus
Torvald filled this role himself in the early evolution
of Linux, but maybe this is wrong. Maybe there's
some other way to handle this issue.
4. A list of tasks that has to be completed for each
chunk of code. For example, I think we should decide
that each programmer has to write automated unit tests
for the code that he or she writes.
5. All output should be validated. One of the things
that strikes me about some of the existing neurofeedback
software on the market (I'm not going to name names)
is that I'm pretty sure the programmers never verified
the output. In other words, for example, they were too
unsophisticated to make sure that when the program
purports to test a 15 Hz threshhold, the filter is really
looking at 15 Hz. To me this is inexcusable. Part of
writing a program like this is to write test code that
ensures that the program is really doing what it's
intended to do.
This archive was generated by hypermail 2.1.4 : 2002-07-27 12:28:29 BST