Specification vs. Implementation



I hate to offend you software engineers out there by stating the obvious
(and, indeed, Gnome hackers are some of the best software engineers I've
seen), but I wanted to make some suggestions on specification.

It's been not even 48 hours since Miguel's original posting and already we
have several hackers volunteering and enormous feedback in suggestions.  This
is an exciting project, and judging by the response there's definitely enough
interest to make it fly.

Miguel has already said that the mail client should be modular so we can
parallelize as much as possible.  But in my own projects, I find that I have a
clear vision of what I want to do (and how it should be done), and when
co-workers begin adding to the code base, I find myself always modifying what
they have done so that it fits into what I'd originally planned.  This is
almost always my fault for not clearly specifying what needs to be done.

So, it seems to me that there should be the job of one or two hackers to create
a specification.  They should have a clear understanding of the problems and
how each module should interact.  I think Miguel and Bertrand would be two very
good candidates. ;)  A specification written by the same one or two people will
ensure a consistant interface (by interface I mean not only CORBA interfaces,
but the API in general), will reduce or hopefully eliminate duplication of
effort (i.e. stepping on other people's toes).  It should also be their job
to delegate responsibility of certain tasks.

I know that someone has now begun collecting what has been said in the lists
and writing a draft of features and other implementation suggestions.  I think
once we have a good grasp of the foundations (for instance, if and what
database methods we should use to store/index/retreive messages), it would be
a good time to start a specification.  And then it could be posted to the list
for suggestions, modifications, and let iterative development takes its course.

I'll admit I don't have a lot of experience in bazaar development, which
clearly has disproven many things we read in software engineering text books.
Maybe in fact a semi-formal specification will hinder us somehow.  But,
speaking for myself, I know I'd feel a lot better designing some module that's
specified and knowing I wouldn't be duplicating someone else's efforts.

Comments? 

Jason.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]