Subversion and online code libraries!

Richard Gaskin ambassador at fourthworld.com
Tue Aug 15 19:20:26 EDT 2006


Frank D. Engel wrote:

> The problem with using SVN (or any other modern version control  
> system, for that matter) with Revolution is the fact that the "source  
> code" (stacks) are binary files.  That's okay for simple versioning,  
> but it is somewhat impossible to "merge" changes of multiple developers.

Fortunately, in my experience it's rarely needed.

Admittedly that experience may be limited:  the largest team I've 
managed in an xTalk had only 20 developers, and most commonly the teams 
I work with have only 3 or 4.

But with an average of about 12 product releases a year here, in each of 
these cases we've needed no finer granularity than the stack level.

In fact, since both library stacks and UI stacks tend to deal with 
specific areas of functionality, from a project management standpoint 
there are many benefits to keeping the team member ownership tied to 
that level of the object model.

If multiple developers need to work on a stack, it often makes sense to 
let one finish before sharing it with another.  If the stack is large 
enough to warrant multiple concurrent programmers, perhaps that's really 
a sign to think about breaking the stack up into more easily managed parts.

As Steven McConnell reminds us, adding programmers adds overhead, so 
that a second programmer only results in a net gain of about 50% 
additional productivity on average, with the rest being taken up with 
the overhead of coordination.  Each additional programmer adds a smaller 
net gain, with coordination overhead increasing with team size. The rate 
of these diminishing returns vary from project to project, but for every 
project there is a point where the coordination overhead exceeds the 
productivity gained -- truly a suboptimal team size. :)

Coordination overhead can be minimized to the degree that each 
programmer is working in a discrete section of the program; the fewer 
dependencies between modules assigned to different programmers, the 
lower the overhead.

If a project is complex enough to warrant multiple programers, it's 
probably complex enough to give some serious thought to how the code is 
factored.  If you're developing with an xTalk, chances are you'll find 
that stacks make a natural dividing line that not only goes with the 
grain of the object model, but also with effective use of that object 
model in applying good team management practices which not only 
facilitate team member communication but code maintenance as well.

The only downside is that the nature of Rev's unique 
binary-objects-bound-with-code often means that off-the-shelf systems 
for text-only languages don't work as well here.

The upside is that it's dirt simple to roll your own check-in/check-out 
mechanism -- and Chipp already has a handy one available if you're 
crunched for time: 
<http://www.altuit.com/webs/altuit2/MagicCarpetCover/default.htm>

--
  Richard Gaskin
  Managing Editor, revJournal
  _______________________________________________________
  Rev tips, tutorials and more: http://www.revJournal.com



More information about the use-livecode mailing list