OneStopTesting - Quality Testing Jobs, eBooks, Articles, FAQs, Training Institutes, Testing Software, Testing downloads, testing news, testing tools, learn testing, manual testing, automated testing, load runner, winrunner, test director, silk test, STLC

Forum| Contact Us| Testimonials| Sitemap| Employee Referrals| News| Articles| Feedback| Enquiry
Testing Resources
  • Testing Articles
  • Testing Books
  • Testing Certification
  • Testing FAQs
  • Testing Downloads
  • Testing Interview Questions
  • Career In Software Testing
  • Testing Jobs
  • Testing Job Consultants
  • Testing News
  • Testing Training Institutes
  • Introduction
  • Designing Test Cases
  • Developing Test Cases
  • Writing Test Cases
  • Test Case Templates
  • Purpose
  • What Is a Good Test Case?
  • Test Specifications
  • UML
  • Scenario Testing
  • Test Script
  • Test Summary Report
  • Test Data
  • Defect Tracking
    Software testing
  • Testing Forum
  • Introduction
  • Testing Start Process
  • Testing Stop Process
  • Testing Strategy
  • Risk Analysis
  • Software Listings
  • Test Metrics
  • Release Life Cycle
  • Interoperability Testing
  • Extreme Programming
  • Cyclomatic Complexity
  • Equivalence Partitioning
  • Error Guessing
  • Boundary Value Analysis
  • Traceability Matrix
    SDLC Models
  • Introduction
  • Waterfall Model
  • Iterative Model
  • V-Model
  • Spiral Model
  • Big Bang Model
  • RAD Model
  • Prototyping Model
    Software Testing Types
  • Static Testing
  • Dynamic Testing
  • Blackbox Testing
  • Whitebox Testing
  • Unit Testing
  • Requirements Testing
  • Regression Testing
  • Error Handling Testing
  • Manual support Testing
  • Intersystem Testing
  • Control Testing
  • Parallel Testing
  • Volume Testing
  • Stress Testing
  • Performance Testing
  • Agile Testing
  • Localization Testing
  • Globalization Testing
  • Internationalization Testing
    Test Plan
  • Introduction
  • Test Plan Development
  • Test Plan Template
  • Regional Differences
  • Criticism
  • Hardware Development
  • IEEE 829-1998
  • Testing Without a TestPlan
    Code Coverage
  • Introduction
  • Measures
  • Working
  • Statement Coverage
  • Branch Coverage
  • Path Coverage
  • Coverage criteria
  • Code coverage in practice
  • Tools
  • Features
    Quality Management
  • Introduction
  • Components
  • Capability Maturity Model
  • CMMI
  • Six Sigma
    Project Management
  • Introduction
  • PM Activities
  • Project Control Variables
  • PM Methodology
  • PM Phases
  • PM Templates
  • Agile PM
    Automated Testing Tools
  • Quick Test Professional
  • WinRunner
  • LoadRunner
  • Test Director
  • Silk Test
  • Test Partner
  • Rational Robot
    Performance Testing Tools
  • Apache JMeter
  • Rational Performance Tester
  • LoadRunner
  • NeoLoad
  • WAPT
  • WebLOAD
  • Loadster
  • OpenSTA
  • LoadUI
  • Appvance
  • Loadstorm
  • LoadImpact
  • QEngine
  • Httperf
  • CloudTest
  • Perl Testing
  • Python Testing
  • JUnit Testing
  • Unix Shell Scripting
    Automation Framework
  • Introduction
  • Keyword-driven Testing
  • Data-driven Testing
    Configuration Management
  • History
  • What is CM?
  • Meaning of CM
  • Graphically Representation
  • Traditional CM
  • CM Activities
  • Tools
  • What Is Software Testing?
  • Effective Defect Reports
  • Software Security
  • Tracking Defects
  • Bug Report
  • Web Testing
  • Exploratory Testing
  • Good Test Case
  • Write a Test
  • Code Coverage
  • WinRunner vs. QuickTest
  • Web Testing Tools
  • Automated Testing
  • Testing Estimation Process
  • Quality Assurance
  • The Interview Guide
  • Upgrade Path Testing
  • Priority and Severity of Bug
  • Three Questions About Bug
    Home » Testing Articles » Manual Testing Articles » Agile Outsourcing

    Agile Outsourcing

    A D V E R T I S E M E N T

    In "Outsourcing Examined" (The Agile Edge, April 2003), I argued that Western developers need to become agile to survive the onslaught of Indian outsourcing companies. I claimed that a team of agilists is more productive than a team of offshore outsourcers following a traditional, Capability Maturity Model Integration (CMMI)-based approach. Even though the agile developer's fully loaded cost might be $100 an hour compared to the outsourcer's $25, the agile practitioner would produce better software faster using far fewer personnel. This claim seems to hold in practice, but what if the outsourcers take an agile approach? Suddenly, the tables turn.

    In February, during a trip to India, I delivered a series of management seminars overviewing agile software development. Many participants worked for outsourcing firms and clearly understood the need to produce high-quality software in a cost-effective manner. I spoke with many people about ways to overcome the challenges faced by outsourcers and their clients when adopting agile techniques.

    Facing the Challenges

    Outsourcing's primary challenge lies in the distance, time and cultural differences that erect barriers to communication. Because of these barriers, the development team is more likely to misunder-stand requirements, and project stakeholders have fewer opportunities to discover that those requirements have been misunderstood.

    To counteract these problems and limit the project's financial risk, clients usually insist on a serial, fixed-bid process. Unfortunately, because the fixed bid is typically based on a detailed requirements document initially developed by the client, this approach dramatically increases project risk and virtually guarantees wastage, for several reasons.

    First, if you insist that your stakeholders define their requirements up front, they tend to identify fictional needs. "I don't know if I'll actually need this feature, but if I don't ask for it now, I may never get it" is all too common during the requirements phase on a serial project. Second, due to changes in your work environment, your needs evolve throughout the project lifecycle, rendering some original requirements obsolete. Third, people aren't adept at defining what they need, but they are good at defining what they don't want once they see it. Fourth, to protect themselves from "scope creep" and ensure the client's financial responsibility for any changes, outsourcers may insist on an arduous change-control process. It's often too expensive for the client to request changes�exactly the goal of the outsourcer's change prevention process�so they don't do so.

    Communicate and Collaborate

    To overcome these communication barriers and succeed at outsourcing, you need to adopt more effective ways to communicate, write concise instead of detailed documentation, nurture a close client/outsourcer relationship, take an evolutionary approach to requirements, and measure progress through the regular delivery of working software.

    The first step toward agility is to improve the ways that developers and project stakeholders interact. Communication approaches vary in effectiveness: If face-to-face communication isn't possible, hold a videoconference. If that isn't feasible, pick up the phone.

    Second, rethink your approach to documentation. Your fundamental goal is to understand requirements; whether or not they're thorough is a completely orthogonal issue. You have no guarantee that developers will read, let alone understand, a requirements document. In India, an outsourcing employee told me that he distills 100-page client requirements to several-page documents from which the developers then work. His company found that developers were far more effective working from these concise documents than from the overly detailed specifications provided by their clients�the client's effort to get the requirements specification "right" was mainly a waste of time.

    If you reduce documentation, you must increase the interaction between your project stakeholders and the developers. I advise outsourcer representatives to colocate with the businesspeople at the client site. Minimally, business and test analysts should act as interfaces between the two groups; better still, some developers should also be on site. You'll need to fly people back and forth between the two sites�although this increases your costs, it dramatically reduces your risk of communication failures. Ideally, some client staff should work at the outsourcer and some outsourcing staff at the client sites, rotated on a regular basis to minimize the impact on their family lives. On a long project, all of the outsourcing staff should rotate at least once to enhance their understanding of the client's environment; this builds bonds among the people involved, reducing the impact of cultural differences.

    Several of the outsourcers at my seminars have started on this path. Now, outsourcers commonly use analysts who work with onshore clients, facilitating communication with the developers in India. A few people told me that they had suggested rotating developers to the client site, but their clients tended to balk at the additional costs. I guess we're still taking baby steps toward success.

    It's time to abandon the idea that fixed bids reduce risk. Clients have far more control over a project with a variable, gated approach to funding in which working software is delivered on a regular basis, perhaps once a month; then, at that point, you determine whether to continue the effort. In this way, the client controls exactly how much is spent. Better still, he can change requirements as the project progresses, because the outsourcers need merely to build upon the software that they've already delivered. Would you rather take a fixed-bid approach that may offer a firm estimate up front, but results in significant wastage, or a gated funding approach that doesn't guarantee how much you'll spend, but enables you to spend wisely?

    Everyone I talked to in India hesitated at the idea of gated project financing. Although they considered this a better approach for both the onshore client and the outsourcer, they unfortunately believed that few clients would be willing to do it�the client's need for an up-front estimate to supposedly limit costs was far greater than their need to invest in IT projects intelligently. I surmised that many of the onshore clients hadn't thought through the implications of what they were requesting.

    Agility Behind the Scenes

    Outsourcers are becoming more agile in the way that they're developing software. Common agile techniques such as test-driven development (TDD), code refactoring and database refactoring are quickly being adopted, as are agile model-driven development (AMDD) concepts.

    In addition, outsourcers are adopting more collaborative development techniques. They realize that software development is a lot like swimming�dangerous to do alone.

    Yes, outsourcing erects serious barriers to communication�but these can easily be overcome with common agile techniques.

    More Manual Testing Articles
    1 2 3 4 5 6 7 8 9 10 11 Next

    discussionDiscussion Center


    Yahoo Groups
    Y! Group
    Sirfdosti Groups
    Contact Us

    Looking for Software Testing eBooks and Interview Questions? Join now and get it FREE!
    A D V E R T I S E M E N T

    Members Login

    Email ID:

    Forgot Password
    New User
    Testing Interview Questions
  • General Testing
  • Automation Testing
  • Manual Testing
  • Software Development Life Cycle
  • Software Testing Life Cycle
  • Testing Models
  • Automated Testing Tools
  • Silk Test
  • Win Runner
    Testing Highlights

  • Software Testing Ebooks
  • Testing Jobs
  • Testing Frequently Asked Questions
  • Testing News
  • Testing Interview Questions
  • Testing Jobs
  • Testing Companies
  • Testing Job Consultants
  • ISTQB Certification Questions
    Interview Questions

  • WinRunner
  • LoadRunner
  • SilkTest
  • TestDirector
  • General Testing Questions

  • Testing Forum
  • Downloads
  • E-Books
  • Testing Jobs
  • Testing Interview Questions
  • Testing Tools Questions
  • Testing Jobs
  • A-Z Knowledge
    Study ABROAD ?

    Study Abroad

    Vyom Network : Free SMS, GRE, GMAT, MBA | Online Exams | Freshers Jobs | Software Downloads | Programming & Source Codes | Free eBooks | Job Interview Questions | Free Tutorials | Jokes, Songs, Fun | Free Classifieds | Free Recipes | Bangalore Info | GATE Preparation | MBA Preparation | Free SAP Training
    Privacy Policy | Terms and Conditions
    Sitemap | Sitemap (XML)
    Job Interview Questions | Placement Papers | SMS Jokes | C++ Interview Questions | C Interview Questions | Web Hosting
    German | French | Portugese | Italian