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.
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