|
Fortune 1000 companies (F1000) have flocked in droves to outsource their software development as a way of increasing efficiencies and saving millions of dollars. More than 70% of the F1000 outsource some portion of their information technology today, making this activity completely mainstream. India alone attracts $18 billion of this spending at present and this number is growing at almost 40% year over year. Far less common has been the move by Independent Software Vendors (ISV’s) and Application Service Providers (ASP’s) to outsource their own core software product development. For obvious reasons, ISV’s have been reluctant to outsource something as core as their product research and development, but an increasing number are doing so – more are viewing this as way to increase revenues and reduce time to market This market for Outsourced Product Development (OPD) is currently pegged at $1 billion but is expected to grow to almost $4 billion by 2008. According to analysts, global sourcing of product development will no longer be an optional business strategy by 2007-2008. It will become standard operating procedure. With offshore outsourcing increasingly accepted as a key competitive strategy in the global economy, the production cycle for technology-centered products will require global resources and global delivery. ISV’s and ASP’s face multiple challenges today, including shrinking product lifecycles, broadening platform support and controlling costs while maintaining leadership in an increasingly competitive and evolving market. In weighing the benefits and challenges of outsourced product development, it is imperative to draw a distinction between the processes involved with creating a software product to be installed or hosted in the marketplace, and the development of one-off software systems for internal use. The difference in execution is significant because product engineering requires a new approach to offshoring. Whereas development of one-off software applications often can involve crafting a definitive specification that is “thrown over the wall,” software products increasingly need to adopt a more agile and iterative method. In such cases, creating a team that is a seamless extension of your own staff is far more effective than throwing out a spec and waiting to see what comes back. Companies focused exclusively on software product engineering are best positioned to develop strongly architected, portable, maintainable, secure, adaptable, highly configurable and installable software. Challenges exist beyond even the usual constraints of outsourcing, such as cultural issues, language barriers, time zone differences and oversight. Bringing great software products to market within reduced time and cost windows requires some adjustments to the traditional model. Key elements of a successful outsourced product development relationship include: 1. Collaboration 2. Skill and longevity of team members 3. Win-win financial model 4. Product expertise
To start with, daily collaboration is crucial when an integrated team deploys a distributed agile method to bring great software products to market quickly. Sharing of information such as requirements, designs and test results has to occur both in synchronous and asynchronous fashion, as well as through structured and unstructured mediums. The offshore team should not be viewed as a separate entity, working in its own environment and engaging in limited communication with the core team. The teams must overlap for several hours each day and use the same set of platforms and the same configurations to manage knowledge, requirements, source and resulting issues. The two teams should function as one, building the product every night and testing it together. To ensure quick and accurate communication, product engineers should embrace the latest tools and techniques such as wikis, web-based tracking systems, integrated build and testing frameworks, instant messaging, voice over internet protocol and video conferencing. Another departure from the traditional offshoring model involves the skill and experience levels of the partner team. World-class engineers can extend the capabilities of a company’s in-house team. The current practice of hiring large teams right out of school with one or two senior team leaders does not support the goal of building sophisticated software products. U.S. product companies often have teams with eight to ten years of experience, and it can be difficult to replicate those experience levels abroad. To solve this problem, product development companies should avoid hiring exclusively from universities, and should be willing to pay higher costs for more experienced teams, preferably with product backgrounds. In addition, offshore companies focused on product engineering know that longevity of team members is a crucial factor in making the relationship a success. A team member who has spent two years with the product is worth ten engineers new to the product. Along with compensation and bonus policies structured to retain key team members for the long haul, it is crucial that the distributed team members are made to feel part of an integrated team by including them in company and product announcements and information, team-building exercises, incentive plans and planning frequent in-person visits to all engineering locations by key teams members. Extra effort must also be made to ensure sufficient training opportunities, intra-team promotions and a variety of work satisfies the distributed team members’ career aspirations.
Because continuity is key, business relationships should be structured more as partnerships. Hourly rates or fixed bids are a recipe for conflict and wild costs swings. Relationships should instead be structured around a monthly retainer based on team size and composition along with a shared win component. This model is a departure for the industry, but it better aligns the goals of both parties. A shared win can involve some kind of service level agreement with financial consequences or even a shared royalty model.
Finally, partnering with a company that specializes in outsourced product development greatly enhances your likelihood of success. Product engineers view products as a domain in their own right. They understand the challenges outlined above, and are keenly aware of the impact of delays. Product development specialists solve to a date and quality bar, rather than a specification. They clearly understand that the impact of any delay is not simply a delay in cost savings, but in fact a delay in revenue increases. In short, achieving success in outsourced product development requires some creative re-thinking of traditional outsourcing models and careful selection of an experienced partner.
|