Just today, I twittered a link to an insightful blog post, “Here’s the Deadliest Catch: Hiring an Agency to Build Your Startup”. The title is largely self-explanatory, and I may blog my own riff on it at a later date. Digg is often raised as a counter-example to outsourcing development of a startup, with version one developed for $200. So how do you decide what the right balance is for you?
Ruby on Rails has this concept of “scaffolding“, which makes it trivial to get a simple web application running to perform create/read/update/delete operations on a simple business object. So if you wanted to build a basic address book, Rails could basically create that application with a one line scaffold generate script. It produces a simple web interface, and handles all of the database calls for you. Java code to accomplish the same task is typically more verbose, but even if you wrote it from scratch in any language, it would be fairly intuitive for an experienced developer with no knowledge of your business to immediately understand the app and how to extend and maintain it.
At some point, almost any app becomes more complex. The current version of Digg could not be developed for $200, and I dare say it would be foolish for someone like Digg to build an application of its current complexity completely contracted out.
I’ve been in startups all along the continuum, and made transitions between different mixes of internal versus external product development and infrastructure. My current opinion is to outsource the scaffolding. If you’re deploying a java/tomcat/MySQL app on a plain vanilla linux distribution, you can probably have a contract sys admin put that together for you – any other competent admin can look at how it’s configured and fix your problems. When you start depending on all sorts of custom extensions, configurations, replication, huge scale, and/or DB sharding, it’s probably time to hire some admins that can own that custom knowledge you depend on.
The same thing goes for product development. Are you building out a marketing web site? An app that could be built with Rails scaffolding? Contract it out – good contractors will realize how easy it is and crank it out for cheap (though maybe more than $200). Most capable software developers you would hire or have hired don’t want to build or maintain that stuff anyhow. Save internal development for the custom, proprietary stuff you need to spend time on, the meat and potatoes code that differentiates your application from everybody else’s. The stuff that will take even a good developer more than a couple of hours to really comprehend. Start throwing the switch to internal resources when it starts to get complicated – you’ll be much happier. Trying to insource knowledge of a complex application that’s already been written by someone else is doable, but quite a challenge.
Rob,
To use Digg as an example, you need to take into account that both the founders had a VERY heavy tech background. They were able to throw a lot of exposure at digg early on because of their positions in the tech world. Also key, is that if push really came to shove… they probably could have hacked something together themselves.
My main caution about agencies, was to the entrepreneurs who think they don’t have to know anything about the tech because they can hire an agency to build them a complete site… most good start-ups are never complete. As you mention, Digg outsourced the first version to get something online… and then began tweaking, improving etc.
Thanks for continuing the conversation.
-Darius
Rob: Good thoughts.
I do want to point out that what you are suggesting is more outsourcing implementation vs. hiring an agency as I’m sure you well know but all your readers might not. The former still requires you to manage your development whereas the latter is a total hands off “build it for me so I don’t have to think about it.”
Companies you’d outsource to are often from India, Pakistan, Thailand and many other countries in the East whereas agencies are companies like ( here in Atlanta) Response Mine, 360i, Search Discovery, Moxie, and Neboweb. Those agencies provide great services for companies like Home Depot, Coke, Delta, UPS, etc. etc. but would be absolutely the wrong ones to build a startup; too expensive and not agile enough.
Again, I know you know this but your readers might not.
Darius, great point. I wanted to reference your post because I have seen a number of companies here with great ideas, sales, marketing, etc., and no idea how to get it built. For reasons I hope to explore further, I’ve seen several well-funded Atlanta startups go this route, and see several more struggling on the brink as they just can’t seem to nail down a technical co-founder and don’t have the cash to fine employee #1. As you point out, an agency makes a terrible substitute for employee #1.
Mike – thanks for highlighting the distinction. As you point out, paying full retail for an agency (or consulting shop, IMHO) to build your startup can be a killer. A startup with a competent technical founder and a simple enough app can get away with outsourcing overseas (or locally), though I still think that when complexity enters the picture, it’s time to bring that knowledge in-house.