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 will control all aspects of their offshore software development, collaboration, project management, and IT governance. And, when pushed the right way and the right number of times, the button produces perfect results every time.
With today’s extensive use of offshoring, the effects of pushing such a mythical management button would reverberate across time zones and continents. Of course, most software tools aren’t designed to manage offshore projects, but some can be successfully adapted to address specific, temporal, geographical, and cultural challenges. Some global-sourcing customers insist that their IT or business-process outsourcing services provider use these tools to help monitor and manage projects. The newest reason to try these tools is one of the most compelling considerations: establishing audit trails.
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 that it would be difficult to list them all.
Several categories of tools have emerged to serve key areas of the management of offshore projects: software development; collaboration; project schedule and cost management; and IT governance.
So what can these tools do for your company? 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.
Four Categories Of Software Products For Offshore Management
- Software Development—the nuts and bolts of requirements capture, software design, source-code control, and defect tracking
- Collaboration—messaging, issue resolution, knowledge management, and knowledge transfer
- Project Management—the creation of tasks and milestones and tracking their completion using people and resources
- IT Governance—formalized process of offshoring, especially when multiple projects are run concurrently and performance metrics are gathered
Breaking the tools into logical categories isn’t always “clean,” as there are overlapping features and functions in the tools that spread them across more than one category. In some cases, there are product suites that cover, or attempt to cover, the entire spectrum of these categories. Other tools are point solutions and do one or two things well but may require integration with other tools used in your software-development process.
We will examine the hallmarks of each functional category and look at how these tools can be applied to more effectively manage globally delivered projects.
1. Software Development
Outsourcing software development is a complex human activity with a bidirectional 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.
Attempts to reduce software development to a strict engineering discipline have not always met with success. Clever and creative engineers, onshore and offshore, bristle at the thought of someone controlling their activities.
Yet it is critical for everyone to share the proper understanding of success when outsourcing. Managers need an objective view of project progress; it’s a matter of accountability and assuring a return on investment. Development engineers need some direction and the freedom to innovate at a technical level. They must also be willing to commit to achieving project milestones. Onshore/offshore teams need efficient communication tools to resolve issues and deliver results.
Software-Development Management Tools
Requirements Management And 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 that things don’t “fall through the cracks” before the project is completed.
There are many techniques defined in the Unified Modeling Language 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 after the software is written. To begin defining software requirements, a powerful approach is needed to collect “stories” of how the software will be used.
For example, suppose the software is an order-management system where buyers can place and sellers can receive orders. I worked on one such system where we named these mythical users Mary Byer and Peter Sellers. Besides being cute names, programmers and prospective customers had no doubt about what roles these two users played when using the software. We created stories describing the steps Mary would go through to place and change orders. Stories about Peter described what he did when an order came in.
Stories like this can be combined and illustrated in a storyboard. A low-cost storyboard can be created as a sequence of HTML pages linked together. Any HTML editor such as Macromedia Dreamweaver, Microsoft FrontPage or Adobe Page Mill can serve as a tool for creating these pages.
You can also write a script that describes the buttons and fields to click on to show how the story is told. A more common name for these scripts is “use case.” Screen shots of the HTML pages serve as excellent illustrations of the use cases that quickly communicate the functionality of your software.
Sophisticated tools are available that will link your use cases and other design elements to the source code.
Software Requirements Tools