Thursday, September 25, 2008

Choosing a Product Development Partner--These questions can help

I usually share this article with most of my clients, who are looking to outsource their system development and application programming. Perhaps a leading-edge technology start-up, very knowledgeable and looking to strengthen their product offerings. Or a very large enterprise that has a one-time requirement for very capable custom software.

The search for third-party assistance can quickly become tedious and confusing. Every outsourcer they meet or send email to affirms that they are the best of the breed, faster, cheaper, that they have exactly what’s needed before you even send them a formal Request for Information (RFI).

There are so many different types, you find out – freelancers, small companies, local contractors, full-service domestic organizations that are big names in the IT industry.

But they have also heard about more affordable rates and efficient delivery models of India-based IT companies, and finally, dual-shore companies with onshore as well as offshore capabilities.. Herewith forty hardnosed questions to weed out the pretenders from the achievers and make sure the integrated service provider you partner with can and will meet ALL your needs.

Company Description and Background

1. Please render brief history of your company, including how many years you have been in business.

2. Are you a subsidiary of any other company? If so, what company is that and please describe how autonomous your operations are.

3. What are the key differentiating points between yourself and your competitors?

4. Please submit organization chart and the credentials of your management team.

5. Please list the industries/verticals that you have done work for..

6. Please list 3 current client references with contact names and phone numbers.

7. (IF A LEGAL ENTITY IN THE UNITED STATES) Please state your status as a minority- or veteran-owned enterprise, if applicable.


Operations

8. Please provide full address, contact person and details for each of your offices What are your specializations as an independent software developer and provider?

9. What engineering process variations, integration products and technologies do you support completely in-house? (e.g. agile, RUP, spiral, waterfall, others)

10. On what basis do you prefer to quote for software development projects?

11. Please detail the vision/mission, ISO programs (or other process management), day-to-day leadership practices and culture you will put in place to ensure a software development project will completed to the highest standards and on time.

12. What is the minimum work experience you will deploy for our development team?

13. Can you provide access to onshore and global talent? How do you do that?

14. What kind of ongoing training do you provide your developers and how often throughout the year?

15. Describe the working relationship between developers and QA. Are you amenable to third-party QA?

16. Do you routinely do proof-of-concept and at what stages?

17. Describe how you will implement integrity and physical security for my project team and code.

18. What project sizes do you handle best, based on your staffing, experience, internal processes, access to resources, etc.?

19. What is the extent of internationalization and localization that you have done?

20. Do you carry insurance against general liability, errors and omissions?

Project Management

21. What can you do for me if I do not have the technical expertise in-house to define a complex project?

22. Can you guarantee that we will deal with the same Account Manager throughout the life cycle of any project we contract with you

23. Will the Account Manager and key team members be online during working hours in my time zone? If not, please state your turnaround time for responding to client concerns relayed by phone or email.

24. Do you guarantee a monthly/weekly review with a key executive of yours in our offices? If so, will we be billed extra for this or will it be part of the project contract?

25. What options do I have for selecting the team myself?

26. Can I visit my team any time I want?

27. What tools do your developers use to streamline and accelerate projects?

28. How do you ensure that you give the most accurate time estimates in the contract? What do you do to ensure the fastest time to market?

29. Please define your policy on intellectual property and code re-use.

30. Whose time zone is best if I wish to contact one of your management team?

31. How do you handle a client who is not satisfied with the quality of your work?

32. What problems commonly arise in your development cycles and how do you address them?

33. Once completed, can you provide 24/7 online help and support?

34. How do you ensure bulletproof security for Web-based applications?


Why Such an Extensive List for a First Contact?

In short, why try to find out so much for a first screening? Can it not wait for the stage when bidders make their respective live pitches?

Well, the truth is yes, it can wait. But think of it as shortlisting your independent software providers right away. Whether you are the CIO at a Fortune 500 enterprise or the Office Manager for a ten-attorney practice, chances are your working day is chockfull for days and weeks on end. Can you really afford to spend time with a dozen ISP’s all wanting half a day each to make their pitch?

Defining the "Time & Reason" to Outsource the Product Development Activities

When does outsource product development make sense?

Outsource product development has caught the imagination of the entire business world. Sometimes, an enterprise opts for outsourced product development to manage costs, boost bottom line and save time for core activities. Other times, some strategic purposes such as dispense with some centers located at critical geographical regions have bearing on the option for outsource product development. There are several reasons can be cited for outsourcing option. But the moot question is -When does outsourcing make sense?

Outsourcing product development makes the most sense when:

  • There is a need for expertise the company doesn’t have or need full time involvement.
  • There is a need for resources the company currently does not have to complete all of the required work.
  • It incurs heavily to keep up internal teams to do some or all of the development projects.
  • There is a desire to incorporate standard practices or fresh approach in the product development processes.
  • The capabilities to find, evaluate, and hire the outsourcing firm.
  • Methods, protocols, and resources for communicating and managing the outsourcing firm.
  • Tools, resources, and plans for gaining, storing, and using knowledge transfer.


What are the reasons to outsource product development?

Acquiring Expertise

One of the most plausible and successful reasons to outsource product development is to acquire expertise not currently available within the company. This lack of expertise could be because of a specific, non-core activity within the company, or it could be due to sudden rise in demand that exceeds the company’s existing capability.

In both situations, outsourcing product development is an excellent way to plug the need for expertise. However, a critical factor for successful implementation of outsourced product development is to ensure protection of all proprietary information, which should be arranged at the earliest or just before the onset of the project with some sort of contract.


Building Additional Resources

One very obvious reason to outsource is to supplement the number of development teams available to complete projects. Actually, in most of the cases firms prefer to staff below their total development capabilities in order to lower costs and risk, and with outsourcing they escape the possible burden of repetitive layoffs and hiring sprees.

This approach to outsourcing, or resource expansion, works well when the company outsourcing the project understands the capabilities required to effectively outsource a development project. These capabilities include:

  • Identifying the best projects to outsource
  • Managing the outsourcing relationship
  • Identifying the project deliverables
  • Auditing and smoothly integrating the project deliverables into existing systems

Although expansion or augmentation of resources is a common reason for outsourcing, it sometimes acts as a compelling reason for firms to miss out this opportunity. Ineffective cost benefit analysis and an inability to measure internal development costs often leads to conclude that the project can be done internally for less. Inevitably, the internal teams get pressurized and over burdened that lead to delayed and ineffectual product development. Development teams focusing on a single project produce the best results because they avoid the overhead and mistakes that result from multi-tasking across several projects.


Minimizing Development Costs

One very pertinent reason to outsourcing is to minimize costs involved in the development of products. Outsourcing seems to be a better and cost-effective measure, if you take into consideration all costs involved in maintaining the necessary capabilities within your company, which include:

  • Employee costs such as salary, taxes, benefits, etc.
  • Overhead expenditure on office space, desks, computer, training, software and hardware tools, etc.
  • Supporting costs on information systems, management, human resources, payroll, etc.
  • Risk costs such as downsizing costs including severance pay, legal support, etc.

In addition, certain irritating questions keep recurring such as:

  • How do we build and maintain a high quality development team within our corporate culture?

  • What traits and skills are important? Are those traits and skills available in our area of geography and expertise? How long will it take? What will it cost?

  • How many teams will we need today and should we try to staff every project internally?

After having done cost benefit analysis on all these posed questions, most firms come to the conclusion that outsourced product development teams cost less than maintaining comparable internal product development teams.

In addition, organizations having internal product development resources that choose to outsource product development projects can have the following benefits of outsourcing:

  • Gaining new perspective & process
  • Acquiring quality system reviews, and
  • Gaining industry standard practices

Most would agree that firms that don’t usually outsource product development should periodically do so to know how they could improve the results of their internal development teams. To glean the maximum benefit, the firm outsourcing the development should have systems in place to imbibe within the lessons-learned and to integrate them into its systems where appropriate.


Bottom Line

Thus, it certainly makes business sense to outsource either complete or a part of product development process, which helps organizations build near-term capability, meet increased resource needs, reduce costs, and bring a new development project perspective.

Making sure the "Outsourced Product Development" is sucessfull

Successful launch of product development hinges heavily on cautious planning, unambiguous characterization, and effectual communication. The said elements become more crucial if you want product development outside the precinct of your company or organization. In order to completely define your outsourced product development projects and accordingly map out your road to success, three primary rungs of analysis must be done with a well thought out process, comprising Product Requirements, Project requirements, and Design Requirements.

Product Requirements

It usually starts with customer or marketing requirements and flows through the system engineering and regulatory process to fully define how the product will look, feel, and perform once it is complete. However, this process is iterative as tradeoffs are made between features and benefits, and the inherent safety, regulatory, and implementation overhead incurred to implement these features, but the end product emerges out as a comprehensive product requirements specification.

Project Requirements

Project requirement is one more critically important process of the product development project analysis. At this stage of analysis, development plans are formulated, tools are selected, norms are established, and communication methods are defined-all these help development team members understand clearly their roles and responsibilities. Clarity at this stage lets the development team concentrate on technical challenges. Precisely, project requirement process sketches out a clear development plan that considers and documents interface points, tools,risks, and defines how information will flow, how system will be used, and how obstacles will be overcome.

Design Transfer Definition

The design transfer definition comes at the final step to ensure successful outsourced product development. At this stage, the structure and content of the design outputs as well as the process by which these outputs will be delivered, are identified and documented. The optimal end result from this process is a sender that fully understands the formats, templates, and best-practices expected by the receiver and a receiver that knows which outputs will be sent and in what format and timeframe to expect them.

Effective Requirements Definition: Key to Outsourcing Success

Requirements identification is the most critical element of a successful outsourced development project. Three primary groups of requirements are: product requirements, project requirements, and design transfer requirements.

Product requirements

Product requirements remain at the core of the product development project. One must know what they are creating in order to successfully realize it. This knowledge needs to be communicated to all members of the development team. This involves fully documenting, reviewing, and clarifying the product requirements. This should be a first step in the project plan.

Project requirements

Identification of Project requirements is the second major identification category necessary for outsourced product development success. These critical factors include required interface points, deliverables, tools, team members and roles, and other project planning items necessary to fully identify how the product will be completed.

Design transfer requirements

The last key requirements definition category is identification of the design transfer requirements. The design transfer
requirements describe who needs which deliverables at the end of the project and, more specifically, the format and form that these deliverables must assume to seamlessly integrate into the destination systems. Whether it’s documentation control or a specific, chosen manufacturer, clear definition of how the recipient must receive the project outputs in order to quickly and efficiently finish the product development project pays huge dividends at the end of the successful product development effort.

Bottom Line

With careful, up-front analysis of the product, project, and design transfer requirements as a critical first step, your company will be on the road to outsourced
product development
success.

Steps to Start a Outsourced Product Development Engagement

Though still viewed as core activity of an ISV and with issues remaining around Intellectual Property (IP), doubts over its feasibility and success of an outsourcing engagement, a piece meal approach to outsourcing product development and then incrementally increasing outsourcing product development is best the recommended approach.

Product life cycle typically involves:

  • Development
  • Enhancement
  • Re-engineering and migration
  • Support and testing (L2&L3)

To start with, ISVs can look at outsourcing one or more of above activities - better still, the ISVs can look at outsourcing one of above activities in sub-module of their product.

Startup companies, VC funded companies should be looking at outsourcing entire product development lifecycle and concentrate more on defining, marketing and packaging of product than product development.

Emerging Models of Product Development

  • Software Product Line

Most companies target the needs of their prospective customers by creating a product line a portfolio of closely related products with variations in features and functions. This involves building modular product with Core and adds on features. To start with, outsourcing software product line once the core product is built, is a low-risk model to check vendor capability and free management's bandwidth for other activities.

  • Modular development

Development of software in bits and pieces. As module any module can be outsourced as low-risk process.

  • Co-development team

ISV and OPD (Outsourcing Product Development) teams work together. This is more relevant in T&M based engagement. Generally OPD firm provides resources while project is managed by the ISV.

  • Product Development Outsourcing

OPD looks after every aspect of product development.

OPD has gained recognition as a viable development alternative for product companies. OPD provides ISVs with a comparatively low-risk and high-benefit prospect for boosting productivity, profitability but careful planning and monitoring of the partnership with the OPD provider at all stages is a must. ISVs must be also bear in mind that choosing a right OPD team is critical to a successful partnership.


Outsourced product development requires the offshore team to work in very close association with the client's engineering team. Partnering with an OPD service provider allows independent software vendors (ISVs) to leverage a strong value proposition, low time-to-market, reduced development costs and quality manpower. Outsourced software product development is primarily a means of leveraging an organization's resources and infusing new thoughts, skills and expertise, while reducing time-to-market. Outsourced product development is the obvious remedy to the current market scenario where technology, skills and approaches are momentary.

Offshore outsourcing phenomenon has been making waves across the world for many years. Companies have long outsourced software and products development to offshore development facilities equipped with state-of-the-art infrastructure and armed with best-of-the-breed talented professionals, offering world class services at reasonable price. In spite of some concerns such as job protectionism and intellectual property protection, the economic benefits continue to be big differentiators, driving IT organizations to outsourced product development. Apart from cost effective business proposition, the massive growth and widespread adoption of offshore IT services are results of following interrelated global developments:

  • The depressed economic environment, rising globalization of business, increasing business complexity, and technological advances have in combination, crystallized the adoption of outsourcing, causing the emergence of outsourced product development.
  • Apart from tactical objectives such as cost-effectiveness and focus on core competition, strategic objectives are playing more prominent roles, and more companies use outsourcing either for a distinct marketing edge or to score over their competitors.
The emergence of new opportunities and the shifts in demand drivers are, in turn, causing an expansion and transformation of the competitive landscape for outsourcing services, throwing open the door to a diverse range of skills and capabilities, and strengthening the overall outsourcing value proposition.

Product Development V/S Application Development

Outsourcing "non-core" activities to gain economic advantage has now become an essential constituent of any winning business stratagem. Nevertheless, as the industry matures, what constitutes its "core activity" is undergoing a change and is a constant debatable topic.

For Instance

  • Nike outsources manufacturing of shoes
  • Asian Paints, India's leading paint company has ancillary units providing thinners and even manufacturing season paints
  • GE out sources manufacturing of F-16 engine part to an organization in Bangalore

The industry is in a maturing phase of virtual organizations, where HR, Finance, IT, operations, marketing and in some instances, even idea generation is being outsourced.

The equilibrium as to what constitutes core function continues to change.

Today, organizations have understood that manufacturing alone does not provide differentiation, therefore manufacturing is widely outsourced. Companies like Asian Paints have started building services around products while moving in the direction of outsourcing the manufacturing process, as non-core activity.

On similar lines, Independent Software Vendors(ISVs) have started looking at outsourcing product development, labeling the activity as " Non-core" while concentrating on product ideas, marketing, financing, customer relationship as core activity. The drive to outsource product development is further heightened by rising employee cost, rising attrition rate and reduced product life.

An outsourced software product development is principally a way of utilizing an organization’s resources in an efficient manner infusing new thought, bringing additional skills and know-how, while plummeting time to market. Outsourced product development is the palpable therapy for the contemporary market circumstances where technology, skills and approaches are transitory.

Predictions on how Indian Outsourcing will be affected by recent market gyrations...

It is my humble prediction that Indian outsourcing will grow even faster but folks in India who are starting to become competent will be displaced by freshers...

When American companies lose money, they start to tighten their belts and find ways to accelerate expense reduction where outsourcing to India is one potential solution. The challenge in India though is that as the currency of the US dollar declines, it becomes more difficult to support the salaries of higher-end IT workers in India and they too will also have to practice expense reduction.

If you are in India and have crossed the five year mark and more importantly have transitioned out of being technical to become a form of middle-management, then you can expect your job to be in jeopardy. Indian outsourcing firms will have to leverage the same playbooks as American companies in the 90s by cutting out folks in the middle.

My prediction also states that India will need to eliminate many of those who are really talented and were compensated for their abilities and will need to replace them with freshers who are cheaper and available for half of their salary.

Unlike America which used to have a culture of the employer caring for their employees, India never really adopted this way of thinking and will think of their talent as more expendable. Executives in India will figure out ways to make folks work more, get paid less and ruin any opportunity for work/life balance.

The key is whether folks in India will not repeat the mistakes of American IT workers and seriously consider unionizing...