Runtime - The Software Outsourcing Newsletter
for Executives and Investors
from Accelerance and Steve MezakIn this issue: How to specify your software to gain complete control of your offshore outsourcing. And a special offer for a free review of your software requirements.
Control Your Outsourcing with Complete Requirements
Let's face it. You can never completely specify your software. And if you did, you would never have time to write it. At the same time, you have to describe your software well enough so software engineers can write it and quality engineers can test it. This is even more important when you use offshore outsourcing to create your software.
How can you create complete requirements for your software? The overall product definition process is divided into two steps: a Marketing Requirements Document (MRD) and a Functional Design Specification.
Sometimes you can combine the two and define your requirements as a single document that covers marketing issues as well as a complete description of software functionality. Or your marketing issues may be negligible and safely ignored in a requirements document that jumps right into a description of your software’s features.
At this early stage you are in the Fuzzy Front End - that fuzzy zone between when a market opportunity is known and when serious software development can begin. You may think you need to slog through the Fuzzy Front End by coding a prototype of your product. This can be a dangerous waste of time.
For example, I know a company that was very focused on their software features. The engineering team designed their supply chain software without considering potential partners in the marketplace. They implemented a sophisticated user interface for entry of information about shipments.
Later, after most of the software was written, they realized more powerful functionality could have been implemented with an interface to FedEx and UPS systems. Furthermore, an alliance with one of these big companies would have been more important than any set of features their own engineering team could have dreamed up.
How you write your MRD depends on what you consider your most important innovation. Is the product by itself so new and cool, that customers will beat a path to your door? If so, a feature-centered MRD may be sufficient.
Or will you need to include specific features your competitors do not have? Is your innovation the use of a different sales channel that will work only if your product is easily self-installed by the customer? Market requirements like these must be in your MRD.
Here are the major sections you need in your MRD for most software projects:
- Introduction or Executive Summary - the purpose of the software and the problem it solves, the market opportunity, and a general plan for product releases and revenue. The introduction describes your vision for the success after your software is released.
- Functional Requirements - the major features and functions that must be in the software. It should include a definition of user roles and high level use cases.
- Performance - the required speed of the product in terms of number of users, page views per second, etc. Also includes the disk space & memory requirements or restrictions of the product.
- Technology - requirements such as system architecture, databases and computer languages. It can be combined with Environment in some MRDs.
- Hardware - supported computers, network equipment, etc.
- Environment & Integration - the software environment or context in where the product will be used. Usually this means specifying sources of data the product must tap and other existing software packages the product must integrate with.
Optional sections you may include in your MRD:
- Market Opportunity - market size, segments and competitor & partner information
- Schedule Requirements - if your software must be released for an industry show, customer specified date or other date that defines your window of market opportunity
- Assumptions & Dependencies - dependence on other company’s software or your own technical breakthroughs.
- Glossary - the specific terms unique to your software category that may not be familiar to the development team, investors and other stakeholders.
It is critical NOT to get hung up in an overly formal process when it comes to requirements and specifications. Requirements change. They evolve. You must not churn in your efforts to create a perfect MRD. Set a time limit on the process. For many companies, the process of creating a useful MRD should take no longer than a week or two.
Most of your writing time should be spent in the Functional Requirements section. It can be expanded to include more detailed use cases, a sketch of your user interface, definition of internal objects used to model information in your product, and many other details.
And don’t just create a long-winded description of the software in your MRD. Illustrate your major use cases with sketches of your user interface. Many experts warn against designing your user interface when documenting your requirements. But I say a picture is worth a thousand words! Use Dreamweaver or Visio to show how the major features of your software will look. You can even link the diagrams together and create a mini-demo to simulate how your software will be used.
***
Believe me, using this approach to describe your software is an important first step to achieve complete control of outsourcing your software development process.
Vision Resources
![]()
How will you control your offshore outsourcing team?For a limited time, Accelerance will review your software development requirements and specifications for free to make sure you get reliable results with your outsourcing.
In most cases, your use of the Accelerance Vision Resources outsourced team selection service is free. Now you also get a free review of your requirements to get your outsourcing started on the right foot.
Vision Resources leverages 17 expert Accelerance teams in 14
countries around the world.Click here to learn more about Vision Resources and how to get
started with outsourcing quickly and safely: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 Outsourcing
213 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."