While outsourcing may no longer be as hip and trendy as it once was, the idea of using external resources for small (or large) chunks of the product development process has matured. Today “everybody does it”.
Using Ideo for innovation consulting, Tech Mahindra for million dollar telco projects or 99designs for your $100 web design outsourcing are obviously different beasts. But there are still a bunch of challenges common to all kinds of outsourcing.
With experience from both successful and less successful development partnerships and outsourcing exercises it’s time to sum up some thoughts.
First of all, when deciding what jobs, tasks and roles to outsource think hard about where your company’s REAL value is. Where do you create differentiation from your competitors and value for your customers?
– Is it your ideas?
– How you take ideas to concepts?
– Your high level solutions and how they solve your customers problems?
– Details in your software / hardware architecture?
– The quality of your code and products?
– How you sell your products?
– How you run your SaaS service?
– How you support your customers after deployment?
Answer this and you have answered what can be outsourced. There’s of course value in a complete in-house product development process – outsourcing is not for everyone. But if you have decided to focus your internal efforts on only parts of the process, make sure those are core to how you deliver that customer value.
The big no-no is outsourcing aspects of product and solution development proving most of your company’s value. Doing so means you let go of what’s most important to you and your customers.
So what are the challenges? Waterfall vs agile
Depending on your chosen development method, outsourcing will have very different challenges.
With a waterfall approach you typically start off with a requirements doc. This is true also when outsourcing parts of development, with the difference that those requirements have to be crystal clear. The amount of work that goes into preparation is many times more than for in-house development. Requirements have to be more detailed and leave less room for interpretation.
Scrum or other agile approaches have their own set of challenges. Outsourcing works here too, but certain roles and responsibilities have to be kept within your organization. More specifically a very hands-on product owner is needed to provide frequent guidance to the external developers. This it the only way to makes sure that customer needs are reflected in the resulting product.
Also design and architecture work that serves as input to development sprints must be taken care of. While these can also be performed by external resources, that requires even closer managing. If we go back to where value is created, design and architecture aspects tend to provide a lot of value and should therefore be kept close to heart.
With a minimum viable product approach a close feedback loop between users and developers is key. From an outsourcing perspective challenges are similar to any type of agile development approach, but with stricter requirements on frequent interactions.
Outsourcing parts of the product development process tend to require more hands-on work from product owners and project managers. At least if you want to get the right things done, as opposed to just getting things done. My own experience is that getting the right things done tend to come more naturally between groups within an organization, than it does between organizations.
Being very hands on as a product manager / product owner will be required. The only way to offload the pm/po will be great architects and designers that make those day-to-day and week-to-week decisions for you. So make sure you have those architects and designers in place when you start, or prepare to get heavily involved!Outsourcing? Get your architects and designers lined up, or prepare to get heavily involved! Click To Tweet