It’s 11 a.m. on Monday. The phone rings. It’s my good friend Steve, who’s the CTO of a venture-backed startup that recently received a decent round of funding. He had made the decision to outsource the development of his company’s back-end systems, including billing and the content management system. This would allow the in-house development team to focus on building out the customer-facing e-commerce sites. Unfortunately, things haven’t gone as he had planned.
“Debbie, I need your advice,” says Steve. “Eleven months ago, I signed a contract with a dev shop, and I felt great about the decision. At first, things were going well. I don’t know where we took a wrong turn, but I’ve blown through half a million dollars, and I’ve got no billing site to present to the board. These guys are breathing down my neck. And the worst part is, I’m not really sure what went wrong.”
I listen as Steve walks me through the whole the story. I am empathetic. I have heard this story many times before, and it always has unique twists and turns, but the themes are common. Like so many CTOs I know, Steve had a relatively high-functioning development team and a smart leadership team. So, what went awry?
Don’t get me wrong—I believe there is a time and place for outsourced development. And I also believe it can be wildly valuable and produce outstanding ROI. After all, I have run outsourced development shops for 11 years now, and I believe the vital element to success is talent, wherever it comes from. But, handing over the reins to an outsourced development shop is not necessarily simple. Like all relationships, it has to be nurtured.
At its core, outsourcing development is no different than outsourcing all of the other things in your life: you get your teeth cleaned by a professional, even though you clean them yourself twice each day; you bring your children to school each day to be taught reading and writing, when you could, in theory, teach these skills to your four-year-old yourself; you eat at a steakhouse, though you could cook a similar meal at home.
Outsourcing development, at its root, is similar to outsourcing cleaning your teeth, schooling your children, and cooking your dinner. You are trusting a team of individuals who are experts at a craft, because you believe they will produce better or faster results than if you did it yourself.
So, now that we’ve got that covered, that brings us to the question: where did Steve’s outsourced development effort go wrong? What challenges come with outsourcing development, and how can we avoid them?
Here are four of the most common mistakes I’ve seen throughout my tenure in this field. Ensure success the next time you are considering outsourcing development by avoiding these common pitfalls:
Mistake #1: Skipping due diligence
You wouldn’t marry someone on the first day you met them, would you? Just look at what happened to Anna in Frozen. Similarly, you should never hire an outsourced development team without doing some amount of due diligence. Get to know them; you’ll be glad you did.
Take the time to do some research on the company you are partnering with. Here’s a sample checklist that you can use to do your own due diligence:
- Program with the developers for a day or two. How do they operate? Do they fit in with your company’s work ethic?
- Make reference calls. Speak with two of their current or past customers. Ask
- What do they like best about the dev shop?
- What do they wish they would do better?
- Would they hire them again?
- Why did they hire them in the first place?
- Read a few blogs that they or their company have written. What do they believe in? Do they share your values?
- Check them out on social media. Look at their accounts on LinkedIn, Twitter, and Quora. Are they active in the social community? Do they present themselves in a way that will best represent your company?
- Google them. Type in the name of the company and the word news, and see what comes up. This is a great way to see what is being written about a company, both the good and the bad.
Mistake #2: Taking the “set it and forget it” approach
Once you’ve selected a team or company, your work isn’t done. Constant collaboration is necessary. Yes, I said necessary. Ideally, the outsourced team will co-locate with you. But, if co-location isn’t possible, have daily stand-up meetings. Have daily stand-ups even if you are co-located, too. The best stand-ups are short and sweet, and they typically consist of three questions:
1. What did you do yesterday?
2. What are you doing today?
3. What obstacles are you currently facing?
In addition to stand-ups, set tripwires. The book Decisive by Chip and Dan Heath defines a tripwire as “something that snaps us to attention when a decision needs to be made.” The Heath brothers illustrate how Van Halen set effective tripwires. In the 1980s, Van Halen had the biggest stage production in the history of touring bands. With a massive set of pyrotechnics and other hazards, setting up the stage before a Van Halen show was an exact science. Any slight error could ruin the show, or even injure someone. So, Van Halen used M&Ms as their tripwire. They had an extensive list of precise specifications in their contracts, and one item on the list was that under no circumstances were there to be brown M&Ms in the dressing room. If Van Halen saw brown M&Ms in the bowl in their dressing room, that was their signal that someone wasn’t paying attention to the details, and they had to check their entire production setup with a fine-tooth comb.
Find and set your own tripwires. Ensure you have mechanisms in place throughout the contract to check in and ensure things are progressing as you expect.
Mistake #3: Locking into an unbreakable contract
Always give yourself an out. I make sure there is a one-week trial in all Stride contracts. This way, if a client isn’t happy after one week, they can walk away with no questions asked. When you work with a team for a week, you get a sense of their values and the way they work. It’s wise to give yourself the insurance of an early way out.
Similarly, ensure that there are mutual termination clauses, where both parties can end the contract with sufficient written notice. Things change. Companies might get new leadership or take on new initiatives. I have a friend who joined a new law firm. He wanted to rebuild the firm’s website but found out that the prior owner had locked the firm into a two-year contract with the company that built the site. His hands were tied, and he wound up having to pay for both the two-year contract and a new firm to redesign the site.
Mistake #4: Fearing change
Change is inevitable. Anyone who says otherwise is either lying or hasn’t been around the block yet. If you or your outsourced team fear change, bad things will happen. Change will come, and you won’t know what to do, and you’ll be paralyzed.
Instead, embrace chance. The best way to embrace change is to use an iterative development process, such as agile or Lean Startup. These days, there are many flavors of iterative software development, but the glue that binds this approach is a collaborative, iterative, build-measure-learn cycle. Not only your software development will benefit from this; your entire business will, too.
I always tell people, when defining your vision, goals, and scope for a project, it is critical to know exactly where you want to head, and it is just as important to know that you are wrong. Stated another way, and illustrated below, the path to success is not linear, and it’s how you react to the setbacks that will determine your success.
Outsourcing software development can be a very pleasant, successful experience if you understand the risks and take steps to minimize them. As with many things in life, it is what you make of it, and what you make of it can be great.
Need guidance on outsourcing development? Reach out to Stride today for one-on-one guidance. We’ll help you determine the best path forward.