Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Design

Think Globally, Code Locally


Agile Development Practices

There are many well-publicized benefits to Agile development (www.agilealliance.org). In the context of a global team, there are a number of practices that scale well to a global team. One of the most applicable practices is short iterations, a central practice of Agile development. One of the useful side-effects is that you can get information more quickly from teams that are far away.

Let's say you have just added an offshore development team that you haven't worked with before. In a traditional project, you may get frequent status reports saying that everything is going well, but how can you really tell? With the short iterations of an Agile project, you can expect to get working software on a regular basis. If you don't, or if it has less functionality than promised, that's another indication of trouble. In a more positive light, getting working code on a regular basis that is demonstrated to have the promised functionality provides confidence that you can focus your attention elsewhere.

Open-Source Development Practices

You don't have to release your software under an open-source license to benefit from the open-source development process. I believe there is a great deal of benefit from adopting practices from this model for any development project. The open-source development model has been used by very large distributed projects, including Apache and Linux, with great success.

A key concept of the open-source process is a practice that the Apache Group calls "Meritocracy" (www.apache.org/foundation/how-it-works.html). Basically, you start out with read-only access to the project. You can propose changes via patches, and if you propose a change that is approved, your credibility increases in the area that you contributed. Over time, you can earn write access to more and more of the system and become one of the people doing the approvals.

In a global environment where you are incorporating new team members into an existing project, this is an excellent way to mitigate risk. If you are using an SCM system, you can leverage the SCM system itself to facilitate this process. Instead of mailing around patches, proposed changes can be made on branches and then merged into the project when approved.

Putting It All Together

Each of the recommended practices was originally designed primarily for either a collocated team or a global team, but all of them have proven to work well for both. While they can all be applied independently, they all complement each other as well.

Take the first step in putting an end to code churn today. Pick a practice that resonates with a problem you are currently facing and advocate for it. The best candidate is a problem that many people agree is a problem, there is enough pain to motivate a change, and a sufficiently small scope such that the change can be made in a relatively short amount of time. Once you've established the idea that process improvement is worthwhile, doable, and worth doing on a regular basis, you'll be well on your way towards thinking globally and coding locally!


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.