Runtime - The Software Outsourcing Newsletter
for Executives and Investors
from Accelerance and Steve MezakPushbutton Outsourcing
An excerpt from Tool Talk, an article published in the Managing Offshore newsletter in November 2004. The full article is available on the Accelerance web site here.
Like a futuristic George Jetson, going to work and pushing a button all day, CIOs and IT project and program managers want a button of their own, too. The button they seek controls all aspects of their offshore software development — collaboration, project management and IT governance. When pushed the right way and the right number of times, the button produces perfect results every time.
Unfortunately, not even a NASA control room full of buttons, switches and monitors can encompass the variety of issues that surface in offshoring projects. Still, there is a vast array of software tools that can monitor the status of various aspects of the offshoring process. In fact, so many software tools have become available it would be difficult to even list them all.
Several categories of tools have emerged to serve key areas of the management of offshore projects: software development, collaboration, project schedule & cost management, and IT governance.
So what can these tools do for your organization? And must your organization change its approach to managing projects or outsourcers just to use them? We will take a look at some of the most popular and some lesser-known, high-value tools.
1. Software Development – the nuts and bolts of requirements capture, software design, source code control and defect tracking
Outsourcing software development is a complex human activity with a bi-directional flow of ideas, knowledge, and intellectual property. Some go so far as to compare modern day software development to a manufacturing process using a “supply chain” of programmers and assemblers that put together the final product. If software development has truly become a supply chain, then software tools are needed to organize and optimize this effort.
Requirements Management & Software Design
The single most important success factor for software development is defining and managing the requirements of what the software should do. You don’t necessarily need a software tool to do this. However, in large projects with many requirements and many programmers working to satisfy them, a tool is valuable to ensure things don’t “fall through the cracks” before the project is completed.There are many techniques defined in the Unified Modeling Language (UML) to define requirements. Most Marketing Requirements Documents (MRD) and software specifications use UML diagrams and descriptions to describe how the software should be written and behave. Therefore, most MRDs and design documents are written in Microsoft Word and illustrated with diagrams created in Visio and other drawing tools.
More advanced tools link the requirements to the source code and the test plans for performing Quality Assurance (QA) after the software is written. Sophisticated tools are now available that will link your use cases and other design elements to the source code.
Source Code Control
Any software development project with more than one engineer requires some sort of source code control system to help keep track of the multiple versions of each source file of computer code.A major decision to make when offshoring is where the central repository of the source code control system will reside, in the US or offshore. Your decision depends on the trust you have in the offshore team and the level of support you have here in the US to support a source code control system and keep it running. At a minimum you should obtain copies of the source code at each release.
The power of a commercial tool may be required for large bodies of source code and complex products. Many offshore vendors will adapt to the tool you choose. For most projects, free open source tools like CVS are sufficient and any offshore vendor should be familiar with them.
Defect Tracking
Once you start editing source code, introducing defects is inevitable. Defect or bug tracking software is used to enter, organize and close out bug reports. It is another critical tool for managing the software development process.Most defect tracking programs now have a web interface that enables secure use via the Internet. Most also support attaching documents of screen shots, lengthy error messages and other files to each bug report.
Bug tracking software is also used to assign bugs to programmers and for them to closeout bugs when they are fixed. In this sense it is a mini-project management tool for organizing the bug fixing process.
2. Collaboration – messaging, issue resolution, knowledge management and knowledge transfer
Collaborative software, also known as groupware, is software that integrates work on a single project by linking several concurrent users at separated locations.
Collaboration is also a necessary means of satisfying two important concerns of the offshoring process. In the beginning, it is important to clearly communicate the requirements of the software. Conversations by voice or email are often necessary to tell the user stories and clarify the use cases. Second, collaboration is used to resolve issues after development begins.
Groupware and collaboration tools can be divided into three categories:
1. Communications - email, faxing, voice mail, web publishing
2. Conferencing - telephone, instant messaging, electronic white boards, chat rooms, discussion forums, video conferencing
3. Collaborative management tools - electronic calendars, project management schedules, knowledge and document managementWhatever the communication technique used, it is ideal to have an audit trail to capture the knowledge that is exchanged. This is used to share with others that may not be available during the live session as well as to document changes and commitments.
3. Project Management – the creation of tasks and milestones and tracking their completion using people and resources
The wrong features, bugs and project delays are the three big dangers in software development. Project management helps you avoid the last of these. Delays can come from unexpected interrelationships and dependencies between tasks. Also, unexpected delays may be encountered when people and resources are assigned to too many tasks.
Project management tools enable you to assign people and resources to tasks and combine the results of those tasks to complete milestones. Resource leveling helps you avoid overextending resources that are assigned to multiple concurrent tasks. Finally, most project management tools enable you to track progress in terms of percentage completion and financial value of tasks. The critical path of tasks, which must be completed in time to meet a milestone, is also identified and monitored by the software.
Organizations are increasingly managing their activities and business processes as projects - to monitor performance more closely and make better business decisions. Part of the Microsoft Office suite of tools, Microsoft Project is the most widely used project management software. Although niche products exist to address specific market needs, Microsoft Project is the standard tool that satisfies most project management requirements – especially for scheduling. Microsoft Project is a suitable tool given that the management of offshore projects is often done by tracking high-level milestones and only drops down to the detailed task level if there is a problem.
A weakness of Microsoft Project is that the schedule exists in a file that must be shared. As versions of the project schedule change, it may be challenging to ensure that every team member has the correct version of the schedule file and even the correct version of Project. It also requires a certain amount of discipline to coordinate multiple people making updates to the schedule either to restructure tasks and assignments or to track progress at multiple sites.
Microsoft has designed solutions that enable you to share project documents over the Internet. A web-based interface using the Microsoft Sharepoint server provides controlled access to schedule documents for updates.
4. IT Governance & Portfolio Management – formalized process of offshoring, especially when multiple projects are run concurrently and performance metrics are gathered
There are good strategic and tactical reasons to use tools to track IT and outsourcing projects. Your company should have some way to measure if these projects are in line with your company’s business objectives. Many IT and line-of-business executives need to juggle multiple projects and make decisions about which ones are of highest priority and value. When a new project is proposed, executives need to determine whether to move resources from other projects already underway. This is all part of good corporate governance.
How can you compare one project to another in your portfolio? And how can you compare resources, like different offshore vendors, to make good choices of who should be working on your projects? (For instance, it may be possible to track which provider has the most available qualified resources?) Software tools that help managers rate projects and track resources promote good IT departmental governance.
Metrics & Risk Assessment
Using the right software tools, your organization’s managers should create a scorecard to evaluate and compare outsourcing providers based upon their actual performance. You can then eliminate those vendors that do not perform well and assign critical projects to those vendors with a good track record.Another aspect of IT governance software is risk assessment – evaluating and categorizing risks and devising strategies to mitigate those risks. And a large part of risk reduction is removing uncertainty. The risk of an event can be generally defined as the probability of event’s occurrence multiplied by some measurement of the possible impact of the event. Once you identify the risks associated with your projects, you can devise strategies for minimizing them.
Vision Resources
![]()
Are you wondering how you will select an expert offshore team
to develop your software?Use the Accelerance Vision Resources(sm) outsourced vendor
selection service and cut the time of your vendor selection
process by as much as 90%.Vision Resources leverages members of the Accelerance's 17
teams in 14 countries around the world.Click here to learn more about Vision Resources
Accelerance, Inc. delivers impartial & expert strategies and services
for risk-free outsourcing of your software development.
Visit our web site at www.Accelerance.com
Until next time,
Steve Mezak
Accelerance, Inc.
Risk-Free Outsourcing213 Garcia Avenue
Half Moon Bay, CA 94019
1-650-712-8990(c) 2005 Accelerance, Inc. All rights reserved. You are free to use material from the "Runtime" eZine in whole or in part, as long as you include complete attribution, including live web site link. Please also notify me where the material will appear.
The attribution should read:
"By Steve Mezak, CEO of Accelerance, Inc. Please visit the Accelerance web site at http://www.Accelerance.com for more information and resources on outsourcing and creating great software products."