Geographically Distributed Development


Outsourcing follows a maturity lifecycle like much of software development. Initially, hesitant steps are followed by either retrenchment, or increased trust in the outsourcer. If outsourcing continues, the outsourced team may eventually garner the same trust as developers in the next cubicle.

Imagine then a company proceeding along the outsourcing maturity path. Its product has a client-server architecture, with a full Web interface. Initially, the company chooses to outsource their Web development work which it considers to be low-risk but time consuming. Figure 1 depicts this environment, where GUI, Server and Web represent sub-project integration streams that in turn propagate to a full project integration stream.


Figure 1: Before Outsourcing

After the code is transitioned to the outsourcer, the company decides to insert a thorough review step before accepting any changes from their new outsourcer. Even though the work is well-scoped, management plans to trust but verify. The release manager creates a new review stream, makes it a child of the Web integration stream and then re-parents the Web stream to be a child of the new review stream. He also sets up an AccuReplica Server (optional with AccuRev) to enable better performance. See Figure 2 for the new environment.


Figure 2: Outsource But Verified

Now when changes are propagated by the developers into the Web integration stream, it must be approved by a review team before being propagated to the project integration stream. This enforced review process stages insures that the outsourced team is developing to the specification.

Time passes. As the level of trust increases between the company and the outsourcer, the review step can be eliminated. With a stream-based branching architecture, the release manager simply re-parents the Web integration stream from the review stream back to the project integration stream, an operation that takes seconds to complete through a drag-and-drop interface in the AccuRev StreamBrowser.

Suppose the outsourcer then decides (with approval, of course) to engage a separate company, located in Russia, to perform a full QA of the Web work, thereby eliminating the danger of the fox watching the hen house (developers QA-ing their own work). The outsourced Web project leader creates a new stream for the QA work. The release manager then takes the new QA stream and sets up another AccuReplica Server to enable better performance. The resulting structure is captured by Figure 3.


Figure 3: Trusted Global Sourcing

Since AccuRev supports streams, a first-class generalization of branches, AccuRev handles the above scenario in full, with minimal administration work required on the part of the release engineer. Competitive SCM systems require much more work on the part of release engineers to support the above scenario. Moreover, unlike with AccuRev, the changes to support this outsourcing scenario in competitive SCM systems are non-transparent to the developer, negatively impacting team productivity dramatically.

AccuRev Solutions
Learn how AccuRev helps

Overview
Business Process
Distributed Development Scenario
Release Engineering
Project Management
Software Development
Multivendor ALM

SCM Resources

More Information - direct links to
resources and how to contact
AccuRev

SCM Resource Center

Events

Contact AccuRev