Collaborative management of software subcontractors

How management with Jazz-based software reduces risks of subcontracting

Although the practice of software development subcontracting is starting to be very common today, there is not yet a clear definition of different standards and tools used, and there is not a specific identification of new risks that might arise when changing to this development model. This article analyzes business motivators and new concerns that companies face when they move to this model, and then explains how software that runs on top of IBM® Rational® Jazz™ technology can help to implement a collaborative framework to manage work with external providers of services.

Ana López-Mancisidor (ana.lopez@es.ibm.com), Rational Specialty Architect, IBM

Ana is a Certified Consulting IT Specialist in Software Application Development, with 15 years of experience in the software development area. Today, she develops her career at IBM as a Rational Specialty Architect, leading the Collaborative Lifecycle Management (CLM) IBM TechWorks group in southwest Europe. As part of the Spanish Rational Technical Sales Team, she has extensive experience in the deployment and adaptation of IBM Rational Jazz collaborative solutions for different clients.



12 July 2011

Also available in Chinese Russian

Business motivators for subcontracting

In the last 20 years, there have been two important IT-related trends:

First, organizations that use IT technologies intensively have recognized that these are a key factor for their business and that, if IT is properly managed, it can provide great value to the organization.
Second, complete or partial subcontracting of IT infrastructure services and processes has become common. Software development is one of the IT processes that have been subcontracted more often in recent years.

Software development subcontracting can be defined as the process of assigning, totally or partially, the software development functions to an external service provider or subcontractor. The subcontractor is an external organizational that develops and maintains applications for its clients (contractors) to help them to reduce costs and get access to more appropriate skilled resources, based on their experience and knowledge. The company that subcontracts work is still responsible for the final product and, therefore, still owns and manages the development.

For Sahay et al. (see Resources), software subcontracting has features that are distinct from other IT subcontracting types, because software development involves physically intangible artifacts with value derived from subjective properties, such as efficiency of algorithms, look and feel of the user interface, and performance and scalability ("software design and development is never really 'finished").

There are quite a few subcontracting situations that we could identify. The simplest subcontracting model is to have subcontracted developers working at the contractor's site. In more complex situations, subcontractors could be overseas (China or India, for instance) in a cost reduction effort. In some other cases, the subcontracting activity is just a particular area of the software development life cycle, because the subcontractor has a unique or highly specialized skill (such as testing services) or, as an extreme case, the contractor company delegates the development and management of the whole product to one or more subcontractors which would be "outsourcing" the development and management of the project.

As Figure 1 shows, companies can manage their software subcontracting models differently, along this continuum.

Figure 1. The continuum of different subcontracting situations
Software development subcontracting evolution

Authors have unified these model types and classified them, considering several variables (for example, location of the subcontracted resources, areas of software development subcontracted, duration of contracts, size of subcontracting companies). Location is the most common way to differentiate subcontracting types, and the industry uses the following terms to distinguish among the different models:

In-house employee developers
When all developers are working in-house. This model is the most expensive one, requiring cash for salaries, office space, and equipment. This model is not within the scope of this article.
 
Onshore subcontracting
Subcontracting contracts between companies within a country.
 
Nearshore subcontracting
Subcontracting work in countries with a close cultural and geographical relationship to the contracting company's country, for example, USA and Canada or the UK and Ireland.
 
Offshore subcontracting
When an overseas, external organization is hired to perform some or all business functions.

The offshore model can offer a substantial economic advantage (for example, working with Indian companies might decrease labor costs between 40 to 60 percent, and the Indian IT market has very skilled professionals). But the entire project must be studied to determine real cost savings, because communication issues can diminish the theoretical gain.

Many companies still use a hybrid model to reduce costs and to leverage skills available in external locations, with in-house developers to reduce risk through the presence of an onsite team for some key activities. Offshore development is currently the biggest trend in the software industry.

Different terms are used to refer to subcontractors. Some authors introduce the term "software factory" when software development is subcontracted to independent and high-productivity companies.

Rapid increase of software subcontracting responds mainly to following business and technical needs:

  • Reduce cost and increase flexibility to adapt resources to demand
  • Get appropriate skill sets that are not available internally
  • Increase process effectiveness to focus on core activities
  • Continuous evolution of technologies, which forces companies to change constantly

An agile response to the market is crucial for companies to succeed. Subcontracting has become one of the key factors for companies to bring the required flexibility into their development activities.

Even if there is not a rule or policy to decide when a company should subcontract software development to external companies, subcontracting should be considered only in medium-sized enterprises, because it is important to plan for the additional time and resources that are required to negotiate and control the relationship with subcontractors. There might be exceptions, such as when a small company needs to subcontract highly skilled resources not available in-house.

Subcontracting software development is an irreversible trend. Companies are realizing the need to focus on software as a strategic part of their businesses, and subcontracting allows them to focus on business objectives, rather than technical activities, and to dramatically reduce labor costs.


Pros and cons of subcontracting

Different forms of software development subcontracting will continue to gain ground within enterprises during coming years as an attempt to reduce costs. However, a great amount of subcontracting contracts still fails to create the expected value and leads to trouble for both contractors and providers. Studies have shown that more than half of subcontracted work fails to meet financial goals and that subcontracting saves less money than claimed. Only companies that have set the appropriate and efficient processes to manage the subcontracting will achieve competitive advantages and be successful in adopting this model.

The main advantages of software development subcontracting are cost reduction, flexibility, engineering specialization, and faster time to market. But subcontracting adds new risks and hidden costs not present in traditional, in-house software development. These are among the most serious risks:

  • Inadequate planning and change management procedures that might delay deliverables.
  • Lack of governance to control project progress
  • Lack of public standards to interchange software development assets between contractor and subcontractor
  • Infrastructure connection issues from remote locations to access a common asset repository
  • Intellectual property confidentiality
  • Poor communication due to different time zones, location, cultural and political differences
  • Additional costs due to travel and remote conference calls
  • Mismatches between expectations and real outcomes

Existing literature on software development subcontracting suggests the use of different techniques and frameworks (some of them already used in standard in-house software development) for managing and solving these new challenges and risks. Software subcontracting work needs to be continually disciplined and formalized, but rapid changes in technology and the associated lack of skills in these new domains do not facilitate this and increase the risk of failure.

Many authors state that companies should follow the classical Capability Maturity Model (CMM), the more comprehensive Software Acquisition Capability Maturity Model (SA-CMM)), Project Management Institute (PMI) processes, International Standards Organization (ISO) 9000, or Six Sigma to improve their processes of acquiring software. SA-CMM is the most prevalent process used by companies today, but there is not a clear standard in the market to guide organizations to work efficiently with external software development services providers.

Alignment between the company's (or contractor's) and subcontractor's processes can also be an important issue. If these follow different standards or use a different infrastructure or tools, there might be a negative impact in productivity. Processes and tools must be adapted to each company or project.

Because of these challenges, there is a need to establish a common business and operating environment to govern work with external subcontractors and to reduce hidden costs and mitigate risks.


Benefits of the Jazz foundation for collaboration

A clear governance infrastructure and process in the performance of subcontracting is an important success factor to increase profit. Otherwise, the subcontracting benefits will be reduced, and it could be a potential disadvantage, instead.

Both contractors and subcontractors must change and adapt their current processes and tools to synchronize effectively. You need to implement a common development environment to improve:

  • Collaboration and communication between contractors and subcontractors
  • Automation of tasks and deliveries from different locations at a lower cost, with less need for resources than before, while enabling you to efficiently and quickly adapt to new demands and technologies
  • Reporting through shared dashboards and common metrics to comply with standards and correct deviations in development

The IBM® Rational® Jazz™ technology platform for collaborative software delivery can help you improve software development subcontracting and address these issues.

Uniquely attuned to global and distributed teams, Jazz transforms how people work together to build software, making software delivery more collaborative, productive, and transparent. You can think of Jazz as an extensible framework that dynamically integrates and synchronizes people, processes, and assets associated with software development projects.

The Jazz platform enables collaboration among business stakeholders, subject matter experts, and anyone who plays a role in the successful delivery of software, not just software developer professionals. This represents a transformational leap in the value of software development subcontracting, because it improves collaboration within the context of development, automates software development tasks, and improves reporting and governance of teams working in different locations, as shown in Figure 2.

Figure 2. Jazz platform objectives
Collaboration, automation, reporting

Jazz is built on architectural principles that represent a key departure from approaches taken in the past. Unlike monolithic, closed products of the past, Jazz has an innovative approach to integration based on open, flexible services and Internet architecture. Product offerings that are built on the Jazz platform can leverage a rich set of capabilities for team-based software development and delivery. For more information about Jazz platform go to jazz.net web site.

Jazz technology provides a four-layer framework to manage and improve software development work with external providers, as shown in Figure 3 and described in the sections that follow.

Figure 3. Jazz platform layer model
Jazz layers for a subcontracting model

Layer 1: Infrastructure

IBM Rational Jazz provides the basic infrastructure principles to communicate remote locations using http/https connections, Web 2.0 technologies, and instant collaboration services.

As Figure 4 shows, all communications between the contractor and subcontractors will be established using standard http/https connections.

Figure 4. Layer 1, Jazz infrastructure
Diagram: server to subcontractors

Layer 2: Deliverables

Jazz establishes a central repository to facilitate asset interchanges between contractors and providers, thus creating a common communication mechanism, approval and review lifecycles, automatic notifications, and a way to standardize deliverable software development artifacts, as shown in Figure 5.

Figure 5. Layer 2, Jazz deliverables
Jazz manages and controls software artifacts

Layer 3: Automation of development activities

Different products built by IBM or by external providers on top of the Jazz platform, or integrated with it, help development teams automate construction of software development assets. For example, IBM® Rational® Requirements Composer will help analysts to define and manage requirements, IBM® Rational Team Concert™ will help developers build and deploy code assets, IBM® Rational® Quality Manager will help testers to build test artifacts as test cases and test scripts, and tools such as IBM® Rational® Software Architect or IBM® Rational® Developer for System Z® will help developers increase their efficiency and quality of code. Figure 6 represents different Jazz and product extension components that facilitate process automation across the software development lifecycle.

Figure 6. Layer 3, Process Automation
Jazz components and product extensions

Layer 4: Governance and metrics

The Rational Jazz technology and products built on this platform automatically provide very rich dashboards with reports and metrics updates in real time. This helps both contractors and subcontractors control the status and progress of the development projects in real time, as the example in Figure 7 shows.

Figure 7. Layer 4, Governance and metrics
Sample dashboard to control and evaluate providers

Based on these four layers, the following table describes a more detailed analysis of how this Jazz platform can help companies mitigate each of the subcontracting issues and hidden costs identified in previous section. The analysis also includes additional organizational and operative changes that companies have to modify to be able to succeed in using a subcontracted model.

Table 1. How Jazz mitigates risks and costs of subcontracting
Subcontracting risk or cost Rational Jazz platform mitigation
Inadequate planning and change management procedures Agile development, common planning, and change management processes
Contractors also have to adapt their traditional cascade software development process to iterative, more agile and open processes to be able to respond faster to change demands
Lack of governance to control project progress Automatic reporting and metrics to govern subcontracting
Contractors also have to adapt to this new development model by creating new departments in charge of managing work with subcontractors (a Subcontractors Project Office, for example)
Lack of public standards to interchange software development assets between contractor and subcontractors Use of Open Services for Lifecycle Collaboration, or OSLC (open-services.net), an industry initiative led by IBM to enable interoperability of tools and resources across vendors
Contractors have to adapt their software development methods to define a set of deliverables, to be interchanged with providers, and adopt the OSLC format.
Infrastructure connection issues from remote locations to access a common asset repository Easy connection to a central repository, using http/https and Web 2.0 technology
Contractors need to give access to the Jazz server from remote locations (reducing proxy access restrictions)
Intellectual property confidentiality A central repository with read/write permissions to the information
Contractors have to identify every critical secret element that the company has and isolate it from subcontractors, but also identify common assets to be shared with subcontractors (common architecture components, for example)
Poor communication due to different time zones, location, cultural and political differences Instant messaging services as RSS feeds, email, chat services, and translation to different languages to improve communication in real time, 24x7
Contractors must integrate their IT infrastructures to benefit from these services
Additional costs due to travels, remote conference calls… A central repository accessible in real time from remote locations to control project progress, without having to import/export information manually, thereby reducing project review meetings
Contractors need to adapt their project planning process to more agile processes
Mismatches between expectations and real outcomes A central repository to manage all software development assets and to communicate changes immediately (automatically stores history of all development assets for audit purposes)
Contractors have to use the common a Jazz repository to define and manage changes of all software development assets

Summary

Software development subcontracting is in a period of growth, but it is not yet mature. Economic advantages, such as reduction of labor costs and faster response to market, make it very attractive.

Subcontracting has grown very fast, from internal resource placement to very sophisticated delivery models, thus providing strategic advantages for companies. But this has also brought complex collaboration and management issues.

Without a common software development infrastructure and process, the expected benefit from subcontracting can backfire and immediately be converted into higher losses. This article described how the IBM Jazz technology platform can be the common framework to mitigate new risks arising from this new software development model.

Watch for future articles on these topics, which will explain in more detail how individual tools that run on the Jazz platform can be used and customized to improve work with subcontractors:

  • Rational Team Concert process template customization to manage the software development process with external providers
  • Rational Quality Manager to manage a test factory
  • Rational Requirements Composer to define and manage requirements in a subcontractor model
  • Business and operational metrics to monitor and evaluate software development subcontracting

Resources

Learn

Get products and technologies

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Rational software on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Rational
ArticleID=696952
ArticleTitle=Collaborative management of software subcontractors
publish-date=07122011