For more than 15 years I’ve been on both sides of the table of selecting vendors for outsourced software development. Most of that time I’ve been on the “buy-side” hiring companies, but for the past few years I’ve been on the “sell-side” here at ExtensionEngine…in total I’ve seen hundreds of projects worth tens of millions of dollars during which I’ve made pretty much every mistake you can imagine. Based on that, here is my list of ”how to” tips that hopefully will help you avoid many of my pitfalls and achieve great results for yourself. If I were tasked with selecting an outsourced development partner, I would:
(10) Define the project. The first step in outsourcing is to define the project or initiative (which I’ll call “projects” here). The project definition should start with an answer to, “what business metric are you attempting to improve, and how?” followed by more mundane descriptions of scope, schedule, budget, etc. The more detail you can provide, the better. Writing a full RFP is the ideal, but an outline will often suffice. Here is the checklist we use when initially trying to understand the requirements for a project, which gives you an idea of what an outline might look like.
(9) Create the right cohort. Not every job is a great fit for even the “best” vendor. I always get a laugh when someone calls in to ExtensionEngine and says they’re sending out a RFP for a project to “their neighbor’s kid,” ExtensionEngine and IBM. Instead, what you want to do is create a cohort that matches your project on at least two dimensions: (a) size and (b) service offerings.
(a) Size. To grossly generalize, there are three sizes of projects: small (<$100K), medium ($100K to $1M) and large (>$1M) and similarly there are three sizes of development vendors: “tall” (<100 employees), “grande” (100-1,000 employees) and “venti” (>1,000 employees). If you have a small project, any type of vendor can do it, but realistically a “venti” vendor has too much overhead to do it practically–generally speaking you should focus on mostly “tall” and maybe one or two “grande” vendors in your cohort. If you have a medium project, every type of vendor is going to claim you’re in their sweet spot. That said, you should focus your cohort on “grande” vendors with one or two in the other categories so you have a full spectrum of opportunities. Lastly, if you have a large project, you should rule out “tall” vendors and focus on “venti” with one or two “grande”.
(b) Service Offerings. Outsourced development partners have a wide range of service offerings–you want to make sure there is a match between your needs and the cohort of vendors. Are you looking for engineering resources only that will be managed by your internal team (a service known in the biz as “staff aug”) or are you also looking for business strategy, user experience, graphics/design, dB/architecture, QA, customer support, engineering maintenance, advertising, etc.? Make sure vendors you’ll be looking at offer what you need. This matters most for the smaller vendors who, due to limited resources and specialization do not necessarily have the full breadth of offerings.
Based on the above, you’ll want to create a list of 5-10 vendors that match the general criteria of skills and interest. Once you have your cohort, you can run them though the paces (including the rest of this list) and ultimately select one.
(8) Don’t ask “where” ask “why”? Almost every client of mine asks “where” our technical resources are located, but only the savvy ask “why”? Location has a few tactical implications (e.g. time zone) and every country has its stereotype, but what really matters is the strategic basis of the location. You want to know how the location decision affects the quality of service, competitive advantage, rate of growth, profitability, etc. for the vendor. For example, with ExtensionEngine, our technical resources are primarily located in Split (population 500,000), the second largest city in Croatia. One of our co-founders is originally from Split and after living and working in the US, he recognized the opportunity. By locating our R&D center in Split, we have the largest independent development firm in the city, providing access to world class talent. Located on the Adriatic coast, Split is a beautiful place to live and enjoys a 3-to-1 cost advantage over the US. And with Croatia joining the EU in 2013, we bring stability in terms of currency, intellectual property rights and with respect to international travel. We’re not competing (yet) with the likes of Google, IBM, Infosys or hot startups which means outstanding talent and low turnover (<5%). All of this provides a competitive edge the benefits of which inure to our clients. So bottom line, ask “why” the vendor’s resources are where ever they are.
(7) Probe relevant experience. I often get asked, “does ExtensionEngine have expertise in Java [or .NET or PHP or Ruby or some other language]?” and I often joke that this is a little bit like asking your auto mechanic whether they use Craftsman or SnapOn tools. Understanding basic capabilities is important, but what you really want to know, is do they have current, relevant experience. The first cut at understanding experience is to dive into industry expertise, but even within that, there are many specialties. For example, “financial services” is really broad so if you have a “mobile banking” project you want to dig deeper. Sure any shop worth their salt can get up to speed quickly, but I would weight heavily the vendor that has current relevant experience [obviously you need to dig into any competitive issues].
(6) Meet the team. Everyone knows that when hiring a lawyer, it doesn’t matter whose name is on the door of the office so much as who is the partner working on your account (or the associate, for that matter). The same goes for selecting an outsourced development partner. The people that you’re dealing with on the sales process are going to be convincing (that’s why they got that job), but what really matters is who is going to be on your implementation team. Most vendors won’t be able to tell you the entire team (if any) prior to signing a contract, but some will be able to tell you the “engagement manager” (especially the small and medium sized vendors) who have less bureaucratic staffing processes. I would go through the entire vetting process (again) with the specific engagement team leader…it’s one thing for a firm to have specific industry experience, for example, but it only really matters if your team has it. Also, you want to get a measure of their personality…it’s the same sort of process you would go through for a direct hire. You want to make sure they fit your culture as well as bring the “right stuff.”
(5) Understand their methodology. For web and mobile applications, almost every vendor will profess some sort of agile development methodology, but in practice I have seen many (especially the large) firms simply call their old waterfall process “agile”…essentially putting lipstick on a pig. You should probe the vendors on how they manage sprints in terms of people, technology and process. Ask for samples of burn down charts and velocity reports to see what sort of rigor they employ.
(4) Push them on the approach to your project. During the vetting process, I’d push the candidate vendors to provide very detailed proposals for how they would approach your project. Attack their technical recommendations and see how they respond. Do they have conviction or are they “yes men”? You’ll learn a lot during this process. Some vendors will provide valuable insight and others will be going through the motions. How they respond should factor in somewhat in your ultimate decision.
(3) Leverage intangibles. When negotiating, particularly with the small- and mid-sized firms, you can use “intangibles” to help lower price and align long term incentives. By intangibles, I mean things like offering to do a case study or be a client reference. You can offer to participate in one of the vendors webinars or even to make introductions to peers at other organizations, helping with sales leads. Not only will these kinds of “free” offerings help you win concessions in the contract negotiations, they will also ingratiate you with the vendor and ensure that they keep you happy long term (would you upset a client that is a prominent case study and customer reference?). I often see clients “hold their referencibility” until some future date thinking that the vendor will work hard to earn it, but my experience is to give it out early and often to get the most out of it.
(2) Check References. And I don’t mean ask the potential vendor for 3 client references. Asking a vendor for references is going through the motions of checking references. That is actually a waste of time. You should reach out to clients that the vendor listed and get blind references. Don’t underestimate the value of LinkedIN in this process. If you don’t already have a “business” account, you’ll need to upgrade (costs a very reasonable $250). Then you can search for people who work at the listed clients and reach out to them using INmail. Messages cost $10 or so each to send, but it’s well worth the time and expense to get some real feedback on the vendor. Depending upon how much time you have, I would also reach out to former employees of the vendor (an easy advanced search on LinkedIN) and get their unvarnished feedback…you’d be surprised what a former employee would tell you! The other thing I would do, is to take the feedback from reference checking, particularly the not-so-good stuff and talk with the vendor about it directly. How do they respond? Are they defensive or are they thoughtful?
(1) Walk before running. Lastly, when hiring employees, years of experience have taught me to, “hire slow and fire fast.” The same advice rings true for vendors as well. It’s good to be always on the hunt for a talented development partner and it is often possible to bring them into a project gradually. You should plan, if you can, on having a ramp up period during which time you can see how the relationship is going with a vendor. Also, by messaging to the vendor that you are easing your way into the relationship and that there is more business to come if they perform, then you’ll get their full attention and, hopefully, the best results.
So that’s it. That’s my 10 tips for selecting an outsourced development partner. What do you think…are there other tips you’d like to share? If so, comment here and I’d love to discuss.