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.
The focus on "the ability to create virtual work spaces where far flung teams can work together in real time", and indeed the ever increasing bandwidth around the worldwould perhaps leans towards the centralized approach to distributed development, and we will be interested to see how this evolves.
Application Lifecycle Management (ALM)
Marketing machines have been ramping up within vendors on the theme of ALM: the scope of CM is expanding to include activities even earlier in the product lifecycle, such as product management and marketing, portfolio management and planning, integrated systems engineering; as well as later in the product lifecycle to deployment/install/upgrade, and even run-time configuration management & monitoring of run-time components and web-based services. Vendors of integrated tool-suites (IBM/Rational, Telelogic, Borland, Microsoft, etc.) are expanding their offerings of integrated solutions to support development "from cradle to grave".
Globalization will underscore the desire for and increase the focus on enterprise-level CM/ALM.
Distributed Component-Based Development
Component based development requires component based SCM and continuous integration/staging. Distributed teams are increasingly likely to be split across "component" boundaries and/or feature boundaries making this more difficult. This is still an area where tool support needs to improve and we look for more progress here.
To some extent, component-based development is evolving into:
Service-oriented Architectures (SOA)
From an excellent article, Introduction to SOA:
SOA is an architectural style whose goal is to achieve loose coupling among interacting software agents. A service is a unit of work done by a service provider to achieve desired end results for a service consumer. Both provider and consumer are roles played by software agents on behalf of their owners.
There are two main styles of Web services: SOAP web services and REST web services.
The increasing emphasis on SOA will also fuel needs for component-based, as well as attempts at SOA-based integration for enterprise CM/ALM. If the component-based versioning problem is messy, just wait till the industry starts to tackle versioning at the service-level for SOA!
ALF (Application Lifecycle Framework)
As an alternative to vendor specific integrated suites, we have ALF (an "SOA for Developers") - quoting from the the Eclipse ALF project home page:
The Application Lifecycle Framework (ALF) Project is a subproject of the Eclipse Technology Project. Its purpose is to create a technology framework that will enable a diverse set of vendor tools, irrespective of architecture or platform, to exchange user data, manage business processes and collaborate in support of the chosen ALM (Application Lifecycle Management) infrastructure technologies in use by development communities.
It is designed to eliminate the proliferation of point-to-point integrations developed by software vendors and replace them with a single integration point and a common set of conventions for establishing universal interoperability amongst tools.
This is a very interesting initiative with a number of vendors (with Serena in the vanguard) providing effort and resources to move it forward. The web site lists various documents including drafts of the Architecture Design and Conformance Guidelines. The design is based around publish and subscribe mechanism with all interfaces and data described in XML schemas.
It is obviously early days yet, there are many challenges ahead in getting competing organisations to pull together, but with the experience of Eclipse project itself we hope it succeeds and we really want to encourage this initiative.If successful it may provide one way for best-of-breed tools to continue to survive and thrive in the face of the "all singing, all dancing" mega suites from the likes of IBM/Rational and Microsoft which promise to provide all you might ever need in the software lifecycle from requirements management through to deployment.
Visibility and Status Reporting
Increasing distribution will increase the need for "virtual" information radiators and visibility & status-reporting. An interesting project to keep an eye on in this space is BIRT (Business Intelligence and Reporting Tools) - another Eclipse-based way of extracting and reporting on all the CM data.
Distribution also raises issues of how to either unify (into a datamart) and/or gather data from multiple sites and/or distributed repositories to meet the needs of SOX and other compliance requirements.
The Rise of ITIL (BS15000 and now ISO20000)
In the world of IT Service Management, the IT Infrastructure Library (ITIL) has grown from something created by the UK Government which was rapidly adopted across Europe as the standard for best practice in the provision of IT Service, and has became a British and ISO Standard.
Although the ITIL covers a number of areas, its main focus is on IT Service Management (ITSM). The major ITIL disciplines are:
- Configuration Management (the CMDB is at the heart of ITIL)
- Problem Management
- Change Management
- Help Desk
- Software Control and Distribution
- Service Level Management
- Capacity Management
- Contingency Planning
- Availability Management
- Cost Management for IT Services
One of the things that ITIL has been doing very well is getting its message across to the business which has bought in in a big way. Business managers can see the resulting benefits. ITIL Certification is ramping up very quickly and becoming a requirement for sub-contractors in many areas. CMM certification has become a marketing weapon and competitive edge, particularly for off-shore development over the past few years, and ITIL is fast achieving a similar status.
The challenge ahead is to integrate ITIL with software development and ALM, particularly in distributed environments.
Microsoft's Team Foundation Server
Microsoft managed to release Visual Studio 2005 in November, although they pushed back the introduction of Team Foundation Server to Q1 of 2006. This is definitely an event that can't be ignored by both other vendors and the rest of the industry. It is part of Visual Studio Team System and includes tools for:
- Class/UML Design
- Unit Test Coverage
- Load Testing
- Performance Testing
- Defect Tracking
- Configuration Management
among others. In addition they include workflow support and fully customizable process frameworks including out of the box "Agile" flavours. It will be very interesting to see how it fares in the market. Microsoft's reputation for getting things right with version 1 of new product may not be too high, but they look like they are committed (whereas they have shown less commitment to Visual SourceSafe over the years) and thus it is bound to carve out a significant share. Various aspects may also "raise the bar" for other tools in terms of user interface and integration, areas where Microsoft is traditionally stronger.
Conclusion
An interesting year gone by: some new trends appearing but lots of old issues still to be addressed.
All in all, plenty of challenges to keep us busy and on our toes as Agile SCMers going forward - Happy New Year!