The Trend Towards Increasing Globalization
One of the increasing trends is globalization as discussed in several interesting books. The challenges of dealing with globally distributed development teams are going to be an even bigger focus for organizations. This is particularly true for the "agile principles" of collaboration and people & interaction, and frequent feedback over global boundaries. How can we ensure our development and SCM processes are up to the task?
The first book is Thomas Friedman's "The World is Flat" :
The world is moving from a place where value was created in vertical silos of command and control to a world where value is increasingly going to be created horizontally by how you connect and collaborate.
Another thought-provoking tome on the subject is Peter Fingar's "Extreme Competition: Innovation and the Great 21st Century Business Reformation" (see the provocatively illustrated Executive Summary ). With the coming of the "wired world", how can companies compete?
Operational innovation-where you forge new relationships across to globe to form extreme supply chains, pursue extreme innovation and collaborate with extreme specialists-is the next true source of competitive advantage.
A related article by Fingar called "The Coming IT Flip-Flop" (also available in a BPM Trends article ) builds on the same trend, and talks of the increasing need for human interaction management, and tools that try to facilitate that INSTEAD of trying to do more workflow/process automation (see related book of the same name ). These are subjects near and dear to agility (supporting "people and interactions over processes and tools"). Some relevant excerpts:
It won't be just the satellite/fiber networks that drive the continued globalization of highly skilled white-collar workers, it will be the ability to create virtual work spaces where far flung teams can work together in real time. As globalization continues, the demand for a new generation of technology support for work accomplished by geographically dispersed teams becomes clear.
What's needed is dedicated support for dynamic human-to-human interactions that cannot be preordained or pre-programmed the way system-to-system interactions are. Further, it's the human-driven business processes that are the very heart of business process management and project management. A New Category of Business Technology.
- The centralized model has one repository and seeks to make remote use as fast as possible. This includes efficient protocols and using caching mechanisms such as repository proxies. Example tools in this category include MKS, Perforce, Accurev, SpectrumSCM and others.
- The decentralized model provides writeable remote repositories (in various forms) with obvious performance advantages for people at the other end. Example tools include ClearCase Multi-site, BitKeeper, Neuma CM+ and Wandisco.
For Open Source solutions in both spaces, see David Wheeler's excellent review .
The advantages of the decentralized approach include better performance which can be useful with an offshore site with potentially unreliable comms links. However, if both sites are working on the same files in real time, it is often simpler to have them working in the same repository since conflicts will be more readily visible and resolvable by the people involved, automatic merging has its limits). Note that CM+ and Wandisco have a slightly different distributed model to ClearCase which may make their approaches easier to use. David Wheeler quotes Bastiaan Veelo :
[In decentralized development, merging] of your code with the main branch has to be done by the one project maintainer, [whereas] centralized in the sense that there is just one repository, is actually more decentralized in a social sense since there are as many code integrators as there are developers with write access to the repository.