Productivity Improvement: No Pain, No Gain

Cutter Consortium, January 25, 2001 By Eric Buel
(http://www.cutter.com/freestuff/src010125.html)

“Let’s outsource everything; they’ve got to be able to do it better than us.” This type of all-encompassing comment may have been believable during the early 1990s, but few companies would embrace it now. The fact is, there are numerous opportunities to improve software development efficiency and effectiveness through outsourcing, but you’ve got to know where to look, and you’ve got to know whether or not the improvements are real.

All real improvement comes through change, and the world of outsourcing is no different. To achieve the promised benefits of outsourcing, you’ve got to improve on one or more of the components of the software development process. Unless you are simply paying less for outsourcing services, either the people, processes, or tools must be changed to obtain improved performance. Fortunately, outsourcing software development suggests changes to all aspects of the software development process, and therefore opportunities to have positive impacts abound.

People

Industry experts such as Howard Rubin and Cutter Consortium Senior Consultant Tom DeMarco state that having highly skilled people can influence the productivity of a software development project by as much as 400%. Two of the key selling points for outsourcing providers are that they claim to have “the most highly skilled labor force in the industry” and “world-class recruiting and training programs” that make their work force the envy of the IT industry and one that can deliver high-quality and high-productivity solutions. Sometimes this is true; sometimes it isn’t. The key questions for you as a customer of outsourcing services are:

  • Has the provider and the staff assigned to the project performed the exact type of work that you are requesting?
  • Are the assigned personnel skilled and going to remain on the project through the completion of their assignments?
  • Is there an effective means to reallocate personnel if necessary?

Verification of these capabilities (at a minimum) will help to ensure improvements in project productivity based on the resources assigned.

Processes

One of the biggest risk factors on internally developed projects is a lack of rigor. This may be due to a project team’s familiarity with the internal software development process, lack of discipline, or other factors. On internal projects, customers may want to cut corners on requirements definition or acceptance testing, or developers may want to shortchange inspections or unit testing, simply because they don’t think it’s necessary or don’t have the time. These omissions drastically increase the likelihood of project failure and unplanned rework.

One of the best things about outsourcing is that, contractually, this (usually) isn’t allowed to happen. Outsourced projects must go through these additional steps (which should be present on all projects), otherwise one of the parties will be out of compliance with the terms of the agreement. Try withholding payment to a vendor to whom you haven’t given complete and accurate requirements.

As a customer of outsourcing services, you can leverage the benefits of standard, repeatable processes by:

  • Using software process maturity as a key vendor evaluation criteria
  • Clearly defining and institutionalizing the appropriate quality assurance and quality control processes for each project in advance
  • Assigning knowledgeable project managers to outsourced projects

It’s going to take time to institute increased levels of discipline in the software development process, but, in the long run, it’s going to result in productivity improvement by reducing rework and project failures.

Technology

More than ever, the use of technology has become an integral part of the decision to outsource. Technical capabilities have even become the building blocks for entire industries (reference the e-business revolution). Sometimes it is only through the use of outsourcing partners that the benefits of technology advancements can be achieved. When looking for evidence of return-on-investment (ROI) based in technical solutions, the following principles should be applied:

  • All claims of performance improvement through technology should be backed by a business case or cost model illustrating the proposed benefits, even if there’s some conjecture involved.
  • ROI models should be configured and managed much like a standard software deliverable. Changes to the cost-benefit premise for any technology change should be monitored and changes to technical direction made, if appropriate.
  • A corporate history of productivity improvements made through technology should be kept and referenced on future projects.

The use of these types of disciplines will decrease the learning curve and increase the success rate associated with technological advancements on all projects, including those that are outsourced.

Offshore

I would be remiss if I didn’t reference the proposed benefits of offshore programming. Offshore software development and support offers the reduced cost of offshore labor, often as much as 50% less than equivalent domestic resources. In return, however, customers must deal with issues such as:

  • Language and cultural differences
  • Geography and time zones
  • The additional infrastructure required to manage an offshore contract

There is tremendous potential to reduce costs through the use of offshore development. More companies are moving in this direction all the time. Generally, it takes an ongoing commitment to the process to begin to see the benefits, however, sometimes it can take as long as three years before everything’s in place and the positive returns can be justified.

Conclusion

I’ve seen contracts where the customer was promised tangible productivity improvements using existing staff (transferred to the outsource provider), existing processes, and most of the existing tools. Guess what? It probably isn’t going to happen. To obtain real productivity improvement through outsourcing, the individual sources of improvement must be understood by all parties involved, measurement models should be created to verify the significance of each improvement, and change management should be used to chart future direction based on what you’re learning as you go. This will provide the ability to say with confidence that outsourcing has worked for you.

— Eric Buel

Eric Buel has more than 15 years in the IT field, specializing in the areas of software measurement, outsourcing, and IT process improvement. Mr. Buel is the president of Eric Buel and Associates, Inc., a Tampa, Florida, USA-based consulting firm and also serves as a senior consultant for The David Consulting Group, Inc. Mr. Buel has implemented software measurement programs and negotiated outsourcing relationships within a number of Fortune 500 firms. He is a Certified Function Point Specialist, served as the conference chairman for the International Function Point Users Group from 1997-1999, and has presented nationally on topics ranging from software measurement to enterprise resource planning implementation.