Agile SCM January 2006: Looking Ahead

[article]
Summary:
This month, in common with our fellow columnists, we are looking ahead at things related to SCM (and particularly the Agile flavour) that we either think will happen in 2006 or that we hope for progress during the new year.

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.

 
Centralized vs. Decentralized Tools?
There is a fundamental divide in architecture between tools supporting the  distributed model: centralized or decentralized.   
    • 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!

About the author

About the author

About the author

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.