Q: I am about to hire a software developer to work on a new web-based business I am launching and I have a friend that is interested in doing the work. Do you have any tips for how I should approach this?
A: Because you are developing a web-based business, the software infrastructure, how it is built, and what code it is written in, is a very strategic decision. Be sure to think through everything thoroughly. Here are a few rules I would suggest for you:
- Rule #1: Determine your strategy based upon your internet business model prior to determining your technology strategy. Be sure to nail down exactly what you are trying to build in terms of your business value proposition first and then you can determine what the supporting technology strategy should be. For example, if you are merely putting up a blog, there is very little strategic value in one blog technology over another as long as the blog software meets your basic needs. However, if you are building a sophisticated e-commerce site or SaaS application with very specialized capability and work flows that are critical to your distinctive value proposition, your technology infrastructure is of high strategic importance to you. Very simple websites can easily be accomplished with the many do-it-yourself tools out there, so the rest of this post will address the really complex web-based businesses that rely on proprietary software development per your question.
- Rule #2: Once your overall strategy is nailed down, then determine your technology strategy prior to hiring any technology talent. If you do it the other way around, you will only get what the developer knows how to deliver and your website will be subject to all of his biases. Learning new programming languages is hard and technology talent abounds, so don’t get this backwards. It’s tempting to hire your best friend who knows language X, but if your strategy is better suited by language Y, you will be in trouble. Your technology strategy will likely consist of infrastructure strategy and language strategy:
In terms of the infrastructure strategy, your choices are as follows: 1) build from scratch; or 2) assemble pre-made widgets, modules, components or use entire packages that are already built. The more strategic and the more differentiated your process flow needs to be on your website, the more it will push you towards building your own, while the more generic an infrastructure component, the more you should tend towards pre-built components. Don’t let a technology expert talk you into doing what he knows how to do — you as the entrepreneur need to make this decision.
In terms of the language issue, this will be influenced heavily by the infrastructure strategy you made above. For example, if your basic infrastructure strategy is fairly generic and there is a great out-of-the box Microsoft-based program that carries a low license fee, you are already headed down the Microsoft aisle, but that’s just fine. Your two high-level choices you need to make on language are as follows:1) open source; or 2) Microsoft-based. Both have their upsides and downsides and most developers are adamantly in one camp or the other, so choosing language based on strategy and not whatever your friend knows is key. Realize that because technology is changing so fast and because the tools sets are getting better all the time, whatever you do will cost you more today than it will tomorrow. In other words, what costs $100k to assemble today will likely only cost $50k next year because by next year, so many more tools such as Software Development Kits (SDKs), widgets and mash-up components will be available. Weigh this against your need for speed in terms of your business plan. Also, be sure to pick tools and languages that are likely to survive over the years so your website doesn’t get stranded. Do this research on your own and do not rely on your friend that wants you to hire him.
- Rule #3: Once your technology strategy is finished, then write a detailed specification yourself prior to actually hiring your selected technology expert. The detailed spec will help you accomplish a couple of important things:
It will help you clarify for yourself exactly what you are trying to accomplish
It will help the development team determine how to size, scope and price the project (and whether or not they can even handle it)
It will save you an enormous amount of time and money by communicating in detail, up-front, exactly what you want
- Rule #4: Hire a technology expert or team that has experience building very similar functionality using the very same tools. This is no time for you to pay a developer to learn on your dime. He needs to come to the table fully-equipped to do exactly what you need with exactly the right tool set. And, understand that it takes many different skill sets to build a complex web-based design: there’s the project manager, the database architect, the user interface expert, etc. It really takes a collection of skills to pull off a complex solution, so hiring one person will usually not get the job done right. It would be extremely rare — I’d say impossible — for one individual to be able to properly plan, architect, and build an entire complex website that ends up being fast, scalable, bullet proof, and with a beautiful design with an intuitive flow.
And finally, a couple of additional thoughts on hiring a developer: be sure to have them sign a Proprietary Information and Inventions Agreement and if you are considering offering them equity as part of their compensation for the development, see Granting Sweat Equity in a Startup and How to Give Employees Equity or Ownership Value.
Other Blog Posts:
- Internet Business Models Explained
- Granting Sweat Equity in a Startup
- How to Give Employees Equity or Ownership Value
Ask an Expert:
- Venture Academy (especially the Technology and Human Resources sections)