Practical outsourcing advice and case studies for IT and business process outsourcing.
  Home > Outsource by Function  > Application Development / Maintenance 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 | Online Surveys
 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 ]

Agile Outsourcing: 10 Tips for Successfully Outsourcing Software Development

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
    "Just learned that brilliant team of programmers I have been working with in an unnamed country that begins with I and ends with A has been feeding me a load of lies about progress and my own internal team has failed to mention it to me because a) they thot I was on top of it or b) they want this whole effort to fail the first time out the door..."

    Contribute to this Discussion

    By Nari Kannan

    Software Development conducted a survey of subscribers in 2004 on their experiences with offshore software development. Fifty-six percent of the responses indicated that the software that came back was either unusable or worse than in-house software development results. If the same survey was done for outsourced software development efforts (not offshore but nearshore), I don't think the results would be that different. Problems arise more with the nature of the outsourcing itself. Offshoring may only make it that much more difficult to manage because of distance, time-zone differences and cultural differences that may become amplified.

    In this month's column, I outline 10 factors that can ensure the success of outsourced software development. Some of these factors are related to agile methodologies and some are not. Assuming that the goal of software development (whether done in-house, outsourced or performed offshore) is solving a business problem, some of this advice may sound counter-intuitive or may seem to go against commonly accepted software development wisdom. However, we practice these every day in our software development efforts and they seem to work well for us.

    Success Tip #1. Match Software Development Methodology to the Project

    Waterfall model, rapid prototyping or the more recent software development methodologies like pair programming, test-driven software development or Scrum are all useful in different contexts for different software projects. We should remember that software development methodologies are all milestones in the continuing evolution of software engineering. This evolution is still continuing and there will be more variants in the future. And, depending upon the nature of the software development project, the choice needs to be different. If the software project is a re-implementation of a well understood business problem such as accounting, a waterfall model may be the best choice. If precise requirements aren't available today and the time available for the project is short, an agile methodology may be the best choice. Just remembering that there is no single silver bullet for all projects will save a lot of heartache on all sides.

    Success Tip #2. Have the Right Expectations

    The service provider usually is a separate company with its own goals, motivations and agendas. The onus for the success of the software project still rests with the buyer of the outsourcing services. It is still your responsibility to make sure that the requirements are well defined and that appropriate course corrections are made early on in the project's lifespan. Blaming the service provider is easy, but making the whole exercise successful can only happen if the right expectations are in place from the beginning of the project. Legal documents, agreements, contracts and lawsuits can bring monetary redress. In the meanwhile, if companies lose valuable time, the opportunity costs may be a lot higher than what the service provider can compensate for legally.

    Success Tip #3. Base Sourcing Decisions on More than Just Cost

    Cost is a major factor in many outsourcing decisions, especially offshoring. Selecting the least expensive vendor often backfires and ends up costing the client much more than initially thought. Offshore vendors are all facing cost pressures from wage inflation. Choosing the least expensive vendor just means you have chosen a company with very little leeway in its profit margins. This will affect everything adversely: hiring the right people, retaining the people who are working on your projects and providing the right resources for people to do the work on your development effort. Successful vendors may be better bets even if they're bit more expensive, given the realities in outsourcing and offshoring.

    Success Tip #4. Build an Effective Communication Pyramid

    The figure below shows different communication methodologies that may need to be used in any outsourcing or offshoring project. Periodic and systematic communication among all stakeholders in the project, including the service provider, is absolutely essential at every stage of the development effort. The project manager on the buyer side is eventually responsible for the success of the effort and may need to use every communication mechanism available to communicate freely and often with every member of the development team. Using only any one method exclusively may not work as effectively as using all of them on a schedule. From being available as needed on chat or instant messaging (IM) to visiting with the development team and having face-to-face meetings periodically and systematically is the only way to make the effort succeed. As I've outlined in other columns, agile methodologies are more realistic when it comes to making sure communication is facilitated properly and often with real code sent back for verification, reflection and fine-tuning.

    Communication mechanisms.
    Communication mechanisms

    Success Tip #5. Trust but Verify

    Recently I saw an anecdotal story from an outsourcing customer who thought everything with the outsourced project was going fine only to discover that the project was way off-track after about six months' time. Vendors can be trusted but it's still the responsibility of the buyer to verify that the progress is real!

    Success Tip #6. Use Independent Testing and Quality Assurance

    Testing and quality assurance should be done either by the client's in-house team or by outsourcing it to another vendor. This isn't just a question of trusting the vendor, but it's simply good software engineering to separate the development and testing functions. Agile methodologies help this process much better since more testing/quality assurance can be done and course corrections can be made earlier, getting the project back on track if it gets off.

    Success Tip #7. Involve End Users Early on

    There's no better way of ensuring the success of outsourced software development efforts than involving end users early on -- even at the requirements and design stages if a waterfall methodology is used. In cases where software is deemed unusable, it's likely that the vendor is guessing about what the end user really needed to solve their business problem and may have made some bad guesses! Agile methodologies help in this regard by actually getting earlier versions of the software in the users' hands. Any guesses that are way off the mark may have a good chance of being corrected earlier in the project lifespan.

    Success Tip #8. Understand Cultural Differences and Adjust Project Plans

    Sourcingmag.com has run many articles about how cultural differences affect software development projects. From a practical point of view, cultural holidays may just be as important. Understanding local holidays and festivals on both ends of the outsourcing effort always helps in proper planning. If the client is in the United States, the last two weeks of December and the first week of January are bad for planning any major activities in the project, given holiday and vacation schedules around Christmas. The second week of November is time for Diwali festival in India, which, if your vendor is located there, is just as big and equally as important as Christmas.

    Success Tip #9. Achieve On-site Coordination

    Given the expense, having an onsite coordinator from service provider all the time may not be possible in all outsourcing efforts. However, if it is feasible, it's the best way to enable excellent communication between users and the development team.

    Success Tip #10. Learn and Fine-Tune Approaches

    Project methodologies should be subject to periodic review and adjustment, especially in the earlier stages of the project. In practice, a lot of time is whiled away during the requirements and design stages of a development effort. Learning what is working and what is not as early as possible helps fine-tune the approach that will be followed for the rest of the project's lifespan. Agile methodologies excel in enabling this fine tuning since working software is delivered earlier on and often in the cycle.

    Many software development deals fall apart because proper attention isn't paid to the many dimensions of project management that need to be in place for success. By understanding that successful outsourcing of software development is much more than just picking a vendor and writing an iron-clad contract, you'll go a long way in addressing every ingredient that makes it successful.

    Useful Links

    Software Development magazine's "Offshore by the Numbers"
    http://www.ddj.com/dept/windows/184415074

    Ajira
    http://www.ajira.com

    About the Author:

    Nari Kannan with AjiraNari Kannan is CEO and co-founder of Ajira, a company that designs and develops service process management tools. Nari has 20 years of experience in information technology and started out as a senior software engineer at Digital Equipment Corp. He has since served variously as VP of Engineering or CTO of five Silicon Valley startup companies dealing with a variety of problems in IT consulting, automotive claims processing, human resources and logistics applications. He has written a number of articles in the area of Six Sigma, services and BPM. Contact Nari Kannan at nkannan (at) ajira.com or visit http://www.ajira.com.

     
    Rate This Article:  Current Rating: 4.33
      Poor    Excellent     
              1    2    3     4    5
    Copyright © 2003-2008 – Sourcingmag.com, CTQ Media. 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
    myTino-A Leading Online Outsourcing Network
    iSixSigma Live! Save up to $700
    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. All rights reserved. v1.0, 0.1
    About Sourcingmag.com · Contact Us · Privacy Policy · Site Map