| SPHERE OF INFLUENCE, INC. – software designers |
| Thad Scheer |
Should you outsource development?
Outsourcing is classic “division of labor” stuff from freshman economics. You've got work to do but it doesn't make sense to do it yourself. The idea is to hire an expert who will do the work, manage the risks, and produce a beautiful finished result with minimal disruption to yourself and your organization. You are attracted to the advantages of using a specialist that employs dedicated knowledge, equipment, people, and processes that you might lack. You are also attracted to the potential cost savings compared to building your own competitive team in-house. If the vendor is good they should be efficient; and efficiency combined with specialization yields both high quality and short time to market. These are good things.
Of course, people quickly realize that offshore labor is 10x cheaper than onshore labor, so they forget about all those advantages of hiring a skilled specialist and go for the cheap dollar store outsourcing. Later, when things don't work out they say "outsourcing sucks". Sigh.
Regardless of whether you send work out locally or offshore, it’s common these days to outsource implementation but keep product ownership (a.k.a. product design) internal. We can't fault the motive, but that separation seldom works as well as people hope. The thinking is that a product owner can specify “what to build” on paper and someone else who specializes in technology can write the app. Generally a flawed assumption and a bad idea.
Let's make a quick distinction between software and apps. You absolutely can design software on paper, using UML and such, but in the world of apps there is no such thing as a sufficient design on paper. Apps are special types of software that to be successful must appeal to human beings. Apps produce user experiences based on subtle, often complex, interactions. Apps combine usefulness with accessibility and learning. Apps are made of software, but not all software is an app...some software, like a device driver, has less subjectivity to its quality and is more easily specified on paper.
To make a great app you need an effective creative workflow that oscillates between thinking of things and trying things. Thinking up new ideas, specifying them in precise detail on paper, then sending them to India or wherever to be coded is a creative buzz-kill. Models built in UML or other abstraction languages are useless at a product design level. Even simple apps can have hundreds or thousands of design elements that drive efficacy and likeability; it is very complicated stuff and impossible to see without actually seeing it with a trained experienced eye.
Put simply, software is a Design problem.
This is where people screw up with respect to outsourcing. Too many people still have the idea that code development is the difficult (and expensive) part. Design often gets done in-house by engineers and subject matter experts, or gets sent out with the code to a company that has no design skill. In reality, engineers and subject-matter experts make poor designers. Outsource code factories are even worse.
If you have a Design workflow that is separated from your customers then you are interfering with a basic law of nature…well…at least the basic creative process that produces great products.
With applications it is critical that the people planning the app and the people writing the code be directly connected to who they are writing it for, why they are writing it, what makes it awesome, and how to exceed expectations. A lot of great innovation comes from this proximity. It’s critical that the people deciding what to build (i.e. specifications, requirements, and Design) are in a tight loop-lock with the technology and the customer.
Sadly, many who outsource will send the code development out but keep "scope" inhouse, essentially putting Design in the hands of subject-matter experts or other employees with insufficient design skill or training. Dumb! Worse, they might use offshore developers, which means the people writing the app are geographically and often culturally disconnected from users and consumers; effectively making it necessary to specify every design element in exacting detail. Perhaps the worst of all is when they outsource Design to an offshore organization that is unable to relate to the psychology and experience of the customer or target market. A wide culture gap can seriously interfere with anyone's ability to conduct and use ethnography effectively, translating to poor “flow experiences” that make products unintuitive and disengaging.
I find it odd that this type of outsourcing is popular because it seldom produces good results. Yes, it's cheap but who cares, it doesn't work very well.
Outsourcing app design to agencies that specialize in product design and development is pretty uncommon even today. That's unfortunate because the skill that inhouse IT departments seem to lack most is product design. IT departments are composed of engineers and project managers, they don’t generally have good creative workflows, they don’t push art and science, and they don’t really get the front end of innovation. Because most IT folks are engineers they tend to look at the world through the prism of inputàprocessàoutput, or specificationàvalidationàimplementationàverification. Creative people see the world differently, they interact with technology more creatively to solve problems and blow people’s minds with transformative innovation. There's software and there's apps. Engineers can build software, but creative people need to build apps. Getting this kind of talent working on your project should be a major imperative, and can be both a pro and con of outsourcing.
If you outsource an app then you should also send out the product design, not just the code or implementation. Don’t separate those in any artificial or unnatural way. Ultimately, you should be looking to outsource product development, not piecemeal but the whole burrito. Either send the product out, or do it yourself; but don’t dither trying to do both!
Don't rely on people to design your product who can't anticipate customer expectations. The process of selecting a design agency should be conducted more like talent search. This isn’t RFPs and proposals, it’s “show me and shock me”. Commissioning software is like commissioning a new building. You invite bidders based on their previous work , then make each vendor pitch a concept they think meets your needs. Don’t tell them exactly what to build, select an agency that brings ideas to the table and instinctively knows what to build. Select an agency you think fits your ambitions (and budget) and award a commission for "design and launch", not code development. At a contractual level don’t pay by the hour, pay agency fees just like you would a professional architectural firm or marketing agency.
Outsourcing pros & cons:
Pros: The upside of launching transformative tech will have far more impact to your reputation (and bottom line) than the downside of a failed project. Invest more strategy in maximizing upside than mitigating risk. If you mitigate all the risks but never achieve anything great you will wither away while the competitor who takes risks and occasionally achieves greatness flourishes. Outsourcing is a fantastic way to cultivate success because highly specialized companies are competing for your commission on the basis of how great a product they can build. If the outsource vendor is a true specialist then they will be very good, very efficient, and will far out perform most inhouse alternatives.
Cons: There are more bad outsource vendors than good ones. There are also more bad managers than good ones. This has the fixings of a perfect storm. Holding an outsource vendor accountable for results is really hard work and people screw this up all the time. Most managers don’t know how to pick an outsource vendor or how to manage one. Awards tend to be based on price or “best value”, not on a talent search. Often it’s not until a project is beyond the point of no return when the reality hits that a vendor is messing everything up or that the project is successful on a Gantt but the product stinks. The biggest pitfall is when someone outsources but then holds the vendor accountable to implementing line-by-line requirements or specifications instead of holding them accountable to achieving whatever goals exist for the product as a whole. In the case of OffshoreOutsourcing (one word) the vendor is frequently incapable of grasping the ethnography and cultural elements that could make the app great, so they build crap. But the hourly rate is cheap…at least there’s that.
|
Wallace Church and Gillette
|
|
Wallace Church was the brand innovation firm (fancy name for outsource product developer) hired by Gillette to do the Mach-3 razor. The project resulted in something like $7B in earnings for Gillette, and WC made an enormous sum as well. It was a giant success for everyone involved.
When WC was hired, Gillette smartly issued only three requirements:
1. You must use the triple-blade system that our labs have been working on
2. It needs to scan at retail for 4x more than the most expensive razor in history
3. It needs to be blue (Gillette’s corporate color)
.
WC actually achieved something more like 7x on the retail scan price for the first year. The Mach-3 line has been extended in several directions and it remains a huge success. Outsourcing product development can work miracles, even outsourcing core products. But holding a vendor accountable to outcome, not just specifications, is the key to making most outsourcing work; especially in software.
|
For a good list of outsourcing pros and cons check out this article on TechCrunch.