Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: how many chess programs have more than one author?

Author: Peter McKenzie

Date: 02:23:59 07/03/03

Go up one level in this thread



Sounds great in theory, but in practice it seems unlikely to succeed.  What
you're basically saying is that one person (the designer) will come up with all
the clever ideas and the other person (the implementer) will translate it into
code.  Possible problems with this approach:

1) the designer will often overlook important details, and in chess programming
details are everything.  When the implementer is told 'go implement A,B,C' he
will go and try to do it and discover issues X,Y,Z.  At this point he can go
back to the designer and discuss the issues, the designer will come up with a
bunch of extra suggestions, and off the implementer goes again.  This cycle can
go through quite a few iterations and will be quite time consuming.

At some point the implementer will have to just cut the code and be done with
it.  But if he does so too 'early' in the cycle he'll end up making his own
design decisions, so the designer will start to lose touch with what is actually
going on in the program. If the implementer cuts the code too 'late' in the
cycle then he floods the designer with way too much detail slowing down the
whole process so that it would have been faster for the designer to write the
code himself.

2) the implementer gets sick of doing all the donkey work!  If the implementer
is a highly skilled programmer (and if he isn't it defeats the purpose somewhat)
then odds are they have quite a few of their own ideas they'd like to try.

3) the designer might not have a good enough grasp of what is feasable and what
is not.  If they really understand things that well, then they'd probably be
better off just writing the code themselves

So I don't think the chances of this approach working are very good, although it
might be possible if you get exactly the right combination of people.

A much better approach, in my opinion, is to divide the chess program up into
pieces and give each programmer ownership of one or more pieces.  For example
one programmer could be responsible for the book, UI, and learning code.
Another programmer could handle the search & eval etc.

Empowerment and responsibility are the keys to effective teamwork.




This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.