Reliable Software Logo
Home > Code Co-op> Extreme Programming

Co-op IconCode Co-op and Extreme Programming


If you follow the practice of Agile Development, in particular the Extreme Programming methodology, you'll find Code Co-op a perfect fit for your needs. Let's just see what Robert C. Martin says in his excellent book Agile Software Development and how Code Co-op can help.


  • The programmers check in their code and integrate several times per day. The rule is simple. The first one wins, everybody else merges.
     

    This is exactly how Code Co-op works. It encourages frequent incremental check-ins. Each check-in represents a cohesive, multi-file unit of development and is checked in atomically (Code Co-op is a change-based system).

    Code Co-op follows the push model, so all check-ins are quickly delivered to all developers. Since each developer knows about all the check ins and can peek at them at any time, he has the opportunity to perform quick merges at his convenience.

    It's worth noticing that a lot of version control systems (in particular all distributed systems, except for Code Co-op) encourage the creation of branches rather than continuous merging.

    Private branches are incompatible with Extreme Programming!


  • XP teams use non-blocking source control. That means that programmers are allowed to check any module out at any time, regardless of who else may have it checked out
     

    Code Co-op is such a non-blocking system. There are no file locks, and merging is easy.


  • When the programmer checks the module back in after modifying it, he must be prepared to merge it with any changes made by anyone who checked the module in ahead of him. To avoid long merge sessions, the members of the team check in their modules very frequently.
     

    Here Code Co-op is very helpful by pushing the check-ins to all developers, so in most cases the merge is naturally done before a check-in.


- Bartosz Milewski
  President of Reliable Software
  Author of C++ In Action, Industrial Strength Programming Techniques, Addison-Wesley, 2001