Practical outsourcing advice and case studies for IT and business process outsourcing.
  Home > Outsourcing Tactics  > Project Management Search:
 
 for    
 Highlights: Buy Books|Outsourcing Blog | Quality Events and Training Calendar | Quality Dictionary | Outsourcing Discussion Forum | Outsourcing Jobs | Outsourcing News and Press Releases | Free Outsourcing Newsletter
 Free Newsletter!  
Improve your
Outsourcing skills and knowledge


Sign up today!
  Manage Subscriptions
  What is Outsourcing?
  What is Offshoring?
  What is BPO?
  Offshoring to India
  Offshoring to China
  Glossary of Terms
 Sourcing Directory 
  Outsource by Function
  Outsource by Region
  Outsource by Industry
  Outsourcing Strategy
  Outsourcing Tactics
  Legal
  Research & Statistics
  Tools & Templates
  Vendors & Consultants
 Channels 
  Business Process Mgt
  Innovation
  Six Sigma
 Quick Access 
  Help
  Search
  Advertise Here
  Article Archives
  Newsletter Archives
  RSS/XML Feeds
 User Feedback 
  Please suggest site
  improvements.
 
  [ larger form ]

Requirements Management in Outsourcing Projects

Bookmark This Page Bookmark This Page
Email This Page Email This Page
Format for Printing Format for Printing
Submit an Article Submit an Article
Outsourcing Article Archive Read More Articles
Related Tools & Articles
  • Discussion Forum
    "We're in a rough spot. We are not meeting our bottom line goals with our offshoring efforts. My guess, we did not do the due diligence we should have in project selection. Can Six Sigma help us improve our processes for the future? If you have any examples you can point me to, I would appreciate the help."

    Contribute to this Discussion

    By Lynne Gent

    Incomplete, vague or inaccurate requirements are often the cause of failed software projects. Outsourcing can compound this problem if the project scope isn't carefully managed. However, the right tools and processes can dramatically improve your chances of success.

    Requirements form the basis of any project, whether in the form of specifications, use cases, statements of need, or just "wish lists" from the marketing department. The requirements define the problem to be solved and the solution to be provided. If the initial problem isn't analyzed carefully so that it can be described unambiguously, then you may find that the delivered solution doesn't actually perform the required task.

    User Requirements

    So, the first phase of requirements analysis -- that of the user (or stakeholder) requirements -- is almost invariably performed in-house. This phase defines the goals that the system must achieve. For example, "The customer shall be able to determine their account balance within two minutes of initiating contact with the online banking system." The "user" in user requirements isn't necessarily a person; it may be another system, whether software or hardware.

    The second phase of requirements analysis -- that of system requirements or system specification -- involves analysis of the user requirements and proposal of a solution. In other words, the system requirements specify, from the user's point of view, how the user requirements will be satisfied. This need not require a detailed design, but should describe how the user of the system can achieve their goal. For example, "The first page displayed to the customer after login shall include all account balances."

    Producing system requirements from user requirements often involves a process of clarification of the user requirements together with modeling of prospective solutions. For a project that is to be outsourced, this process could be part of the negotiations with the service provider, but will still require a great deal of input and review by your in-house team. Misunderstandings due to the outsourcing partner's lack of experience in the problem domain are common at this stage.

    A better solution would be to have the in-house team develop the system specification. If the requirements are well-written, then the scope for misunderstanding can be reduced, though it's inevitable that queries will arise throughout the project. You'll need to have someone with technical knowledge available to field these questions, preferably someone who was involved in the analysis that led to the system requirements. For a fairly small-scale software project lasting six months and employing an offshore team of about 10 people, we found dealing with technical queries required about 20% of an in-house senior engineer's time.

    The requirements for an outsourced project should also include any implicit requirements, such as conformance to company standard user interface standards. Such standards may be informal when development is performed by a single team; they must be made explicit for an external partner.

    Managing System Requirements

    The development of the system specification is crucial. Fortunately, a few simple rules can help ensure that the system requirements are complete and correct.

    First, each system requirement should be associated with some user requirement. Often any uncertainty about the meaning of a system requirement can be clarified by referring to the original problem the system requirement was intended to solve. You may discover that you need some clarification of the user requirements at this stage.

    Second, each requirement should be testable. Naturally, you should require your service provider to perform testing, but you should also develop your own acceptance tests. Your tests should be linked to the system requirements they verify, so that you can ensure the testing covers all requirements. Development of these tests should begin as soon as the system requirements have been approved, although details may have to wait until the design stage. The tests you develop can be a valuable tool for clarifying your intentions about the use of the system.

    Finally, each requirement should be feasible. Development of the system requirements will generally include modeling of potential solutions, whether in a formal UML tool or on a whiteboard in the engineers' lab. If possible, these models should be shared with your outsourcing partner, even if they don't turn out to be the basis for the eventual design. They will provide a common framework for the discussion of the system's behavior.

    The final system requirements should be reviewed by as many people as possible in your marketing, engineering and test departments. Reviewers should check that the requirements are clear, testable and feasible; that they satisfy the user requirements; and that they're coherent when taken as a whole.

    Plan for Change

    No matter how much effort you put into the user and system requirements, it's almost inevitable that changes will be necessary after development has begun. The process of design development may reveal subtle inconsistencies in the user or system requirements, or there may be good technical reasons why a system requirement can't be satisfied. On the other side, acceptance test development may reveal an omission in the specification, or marketing requirements may change because of external factors, such as the release of a new product or platform.

    However, if you're prepared for such changes, they can be managed to cause the minimum disruption to your schedule. The key to this preparation is ensuring you can trace the impact of any given change.

    Before development begins, you should baseline the user and system requirements so that you can easily identify any introduced changes. You should also have completed the process of creating links between the system and user requirements; as acceptance test development proceeds, these should be linked to the system requirements as well.

    You can even take this one step further. If you include design documents in your deliverables, you can link elements of the design to the system requirements they're intended to implement. This is particularly valuable for GUI design, as you should be able to check easily which system requirements aren't covered.

    When changes do occur, you can judge the impact of the change by following the links. For example, if a user requirement changes, you can check to see what changes are necessary to the associated system requirements, tests and design. Similarly, if the design changes, you can verify that the new design still satisfies the original requirement or determine if the system requirement also needs to be modified.

    With careful system specification, regular feedback of design information and ongoing management of changes, you can ensure that the results of your outsourcing project will meet your needs.

    About the Author:

    After obtaining a PhD in computer science, Lynne Gent escaped academia for the software development industry. She is currently a software architect developing requirements management tools. Contact Lynne Gent at editor (at) sourcingmag.com.

     
    Rate This Article:  Current Rating: 3.40
      Poor    Excellent     
              1    2    3     4    5
    Copyright © 2003-2008 – Sourcingmag.com, CTQ Media LLC. All Rights Reserved
    Reproduction Without Permission Is Strictly Prohibited – Request Permission


    Publish an Article: Do you have a sourcing tip, learning or case study?
    Share it with the largest community of Outsourcing professionals, and be recognized by your peers.
    It's a great way to promote your expertise and/or build your resume. Read more about submitting an article.

    Outsourcing AdLinks
    AdLinks Information
     
    Home | Discussion Forum | Event Calendar | Job Shop
    Link To Sourcingmag.com | Report A Problem | Submit Article For Publishing
     Terms of Service. ©2003-2008 Sourcingmag.com, CTQ Media LLC. All rights reserved. v1.0, 0.1
    About Sourcingmag.com · Contact Us · Privacy Policy · Site Map