Alright, I had over 250 messages this morning. I think it's time we stoped
so much talking amongst ourselves and started getting organized. To that
end, I have
three
suggestions. Hopefully I'm not getting to system-engineering anal-retentive
here.. :-) [hopefully, also, my cheap fixed-font formatting works]
1 Organize into sub-groups of interest.
I said the other day that I think there are really four or
five parts to this project. I suggest we split into the
following groups (with associated mailing lists):
* Database (cdin-db) - focuses on the database, its content,
and its storage issues. Selects hashing algorithm.
* Server (cdin-server) - focuses on the server software, and
interfaces to clients, database, other servers
* Client Protocol (cdin-protocol) - focuses on server/client
data protocols (the XML crowd)
* Distribution Protcol (cdin-distro) - focuses on server to
server communication, db synchronization, etc.
* Reference Client (cdin-client) - focuses on creating a new
(or modifying an existing) app for major (windows, linux, etc.)
platforms to demonstrate all features of new system. Develops
standard local storage system (so compliant apps can share
local data). [can we work with Notify CD, that's my fav... :-)]
2 Develop a timeline or plan of attack
It seems to me that we can probably knock something out in very
short order, so a deadline, in the traditional sense, doesn't
seem necessary. On the other hand, I think we need to try and
force ourselves to take things slowly, so we can ensure we get
all issues covered and the best possible system developed.
Here's a proposed outline for the project, in roughly 2-week phases:
* Phase I - design - end 19 March
+ DB - finalize features, develop schema, storage format
+ Protocol - finalize features, mechanism, protocol
+ Distro - same goals as client protocol
+ Server - develop structure of system, identify interfaces
+ Client - Select a couple clients (working with authors) and
learn them inside and out for modification
* Phase II - Prototyping - end 2 April
+ DB - install simple server interface (web, etc.) and begin
collecting and converting data.
+ Protocol, Distro - Develop prototype reference
library implementations for inclusion in both server and client
+ Server, Client - Incorporate libraries, alpha test systems
* Phase III - Beta Deployment - end 16 April
+ All -- Deploy on 3+ servers, begin using clients on daily
basis, work to repopulate and exercise systems, features
* Phase IV - Review/Readiness - end 30 April
+ All -- Tweak/correct problems or suggestions from beta. If
serious problems occur, re-start process from Phase I, building
on previous progress.
3 Select coordinators for each group
Someone should coordinate efforts for all the groups. The wouldn't
be "in charge" or "moderators" per se, but rather someone to try
and collect ideas, sort through them, make sure the specs are
written in a clear, concise manner, and that nobody's contributions
are lost in the chaos.
Ideally, they would produce a summary of work, maybe every few days,
for posting to the main devel groups (cdin, etc.), and posting
on the web page.
I re-volunteer, as I did Monday (or tuesday, I forget) to be the
stuckee--er, coordinator--for the DB group.
Does this make sense? Anyone have additions, deletions, changes? Obviously
I'm not in charge here, everyone is, but I really do think we need to take a
step back and organize our thoughts. I don't want to see something cobbled
together at warp speed when we have a pretty good opportunity here to build
a really great system.
Thanks!
david.