It’s 11am on Monday. The phone rings. It’s my good friend Steve. He’s the CTO of a venture-backed startup which recently received a decent round of funding. He had made the decision to outsource the development of his company’s backend 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. It always has unique twists and turns, but the themes are common. Like so many teams I know, Steve had a relatively high-functioning development team and a smart leadership team. So, what went astray?
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 4 year old yourself; you eat at a steakhouse though you could cook a similar meal at home.
Outsourcing development, at it’s 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 and/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 4 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 the first day you meet them, would you? Just look what happened to Anna in Frozen. As such, 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 1-2 days. How do they operate? Do they fit in with your company’s work ethic?
- Make reference calls. Speak with 2 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’. 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 consist of 3 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 80s, 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 to 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 1-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 there are mutual termination clauses, where both parties can end the contract with sufficient written notice. Things change. Companies might get new leadership, might take on new initiatives. I have a friend that joined a new law firm. He wanted to rebuild the firm’s website, but found out that the prior owner locked the firm into a 2-year contract with the company that built the site. His hands were tied and he wound up having to pay both the 2-year contract and a new firm to redesign the site.
Mistake #4: Fearing change
Change is inevitable. Anyone that says otherwise is either lying or hasn’t been around the block yet. If you and/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, like 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 will your software development benefit from this, but 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 is 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.