Distributed Multi-Source Development

  • roughly translating to $400B of aggregate value.

Open source has its challenges - licensing issues, provenance, and spotty documentation come to mind - and one huge advantage: an abundance of available code. Managing the abundance of open source requires robust governance policies to ensure compliance, process to ensure selection of appropriate code, and collaboration.

A growing list of enterprises, including SAP, is deploying tools to ensure open source re-use is managed and complies with policy and procedure. While SAP and companies like it are in the vanguard, more organizations are looking for tools to automate and manage their OSS processes.

Once companies are ready to accept multi-source and Agile development methods, they must deal with complexity: how to make good code choices from external sources, how to manage collaboration in distributed development teams, and how to adhere to Agile methods - all at enterprise scale.

Challenges: Multi-Source Development at-Scale

Instituting multisource development with a geographically distributed team presents challenges, particularly if the process isn’t managed well.

What can go wrong? Individual developers may maintain different versions of the same component within the organization (code creep).They may be incorporating software with conflicting licenses into the code base. It may be unclear where the original code came from. As many a developer knows, it’s not always easy to find the right code.

Interdependencies between code elements can also present challenges, especially when you, as the software integrator, are responsible for ensuring support. But you’ve got to have an idea of what the support model is behind components that were sourced externally, so making good choices early in the development process is important.

Add to the list of challenges governance processes, which may involve many approval boards and legal overhead. This can be both time consuming, slow and bureaucratic.

Redefining Software Development:Agile ALM

As a result of the market trends, ALM has moved from the waterfall model to a distributed Agile development methodology. Distributed teams are collaborating around a shared set of tools and data, utilizing shorter, iterative development cycles to incorporate user feedback into the development process.

As it stands today, according to a recent Forrester study [1], approximately 45 percent of development organizations are using Agile methodologies. Of the many Agile methodologies, Scrum is still the most adopted, while 35 percent of development teams mix Agile with other methodologies. Regardless, waterfall and iterative approaches are becoming less popular as Agile use increases.

Agile development, by definition, uses an iterative cycle employing commonly used techniques and continuous integration. For example, it’s not uncommon for CollabNet (a leading SaaS-based Agile ALM tool provider and a Black Duck customer) servers to get millions of transactions a day as more and more teams adopt the use of advanced Agile ALM tools.

The use of Agile ALM is driving a developer centric viewpoint with complete lifecycle awareness that scales from workgroups to the enterprise. .

Integrating Agile ALM with Multi-Source

In today’s multi-location, multi-partner, and community development model, code comes from various sources outside of your own project team. As part of this development process, virtually every company:

  • Uses captive offshore and partner outsourced development
  • Engages and collaborates with commercial ISVs and development partners
  • Integrates FOSS code
  • Has implemented a component re-use and code search strategy.

The pros of this multi-source strategy are that it’s:

  • Flexible –a team can choose the best component for the task
  • Innovative – the best talent and resources can be utilized from a vast pool of choices
  • Works well with Agile methods –large portions of code can be rapidly integrated into a typical Agile sprint.

Development managers in this scenario

AgileConnection is a TechWell community.

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