Whether your business is a tech startup, an existing company with a new venture, or a company interested in improving workflow with a new tool, you will need to determine how and who should produce the technology. In this article, I’ll discuss how you might go about making that decision and critical path items you should consider.
What do you need?
The first step is to be realistic about what your present day needs are.
- Do you need a technology product built, and then you’re done?
- Do you need ongoing support and enhancements?
- Is this a short term or long term project?
- What is your budget?
- Is the project critical to the future of the business?
Answering these questions will help guide you on the path to determining who you need to engage to achieve your desired outcome.
Who should build it?
Answering the who question is often critical to the success of the technology product, and can be a point of struggle for both startups and established companies.
If your product only needs an initial build and no ongoing enhancements, updates, or modifications, and it is not critical to the success of your business, then you may want to engage a software development company or independent developer to build the product. In the future, you could engage this developer to make modifications as well, subject to their availability. Often companies in this boat make the mistake of trying to find “a guy” at a really cheap rate on a freelance basis. In my experience, this works out less than 5% of the time. Companies often get burned several times before changing their approach. It may be better to look for a consulting software development company that has several engineers on staff. Some tips for finding a successful developer (developer here referring to an individual or company):
- You get what you pay for.
- Beware of developers that crank out high volume, low cost work.
- Look for a developer that is proud of the quality of their work and showcases it.
- Interview references to gain an objective opinion.
- Be wary of offshore development, or configurations where you can’t talk with actual technical resources.
- Communication and responsiveness is a key indicator of success.
Outsourcing the work is somewhat dependent on your budget. If you don’t have the funding to pay an external developer, you may be looking for a partner instead.
A “Partner” is the same relationship as the “Developer” outlined above, however, in this case you are compensating this party with some kind of future revenue share, equity, ownership, etc. All of the tips listed above for finding a good Developer still apply to this scenario, but with significantly more gravity and importance. This relationship is like a marriage; you need to know exactly what you are getting into, and with whom. Be very specific about what the roles, responsibilities, and expectations are for the Partner and yourself. When you’re engaging a Partner, you want it to be a long term, beneficial relationship for both parties. You don’t want someone who will do the work up front without pay, but then collect indefinitely, with no further output down the road. A Partner needs to be fully invested, equal to their portion of equity or revenue share, for the full life of the product. If you don’t think the Partner would be fully invested, but you don’t have the up front project capital, you might consider negotiating a deferred payment option. For example, if the total project cost is $100K with a 12 month build time and you have $15K cash on hand, you could negotiate some kind of “equity loan” from the Partner, where you would put down the $15K, and the Partner would do $100K worth of work, with you paying $100K over the course of the next 24 months. Therefore, you would be paying 15 percent on top of the project cost as a kind of “interest” on the “loan” of the Partner’s work, and for the ability to pay the debt over a longer period of time. Some Developers won’t consider this, but others base their business around it. There are intellectual property ownership issues to consider, too, so proceed with caution if you’re interested in this approach.
If your product is something that will have a long life and evolution, or is critical to the success of your business, you likely want to assemble an internal team.
If your product is critical to the success of your business, or perhaps it is your business, and if you require constant updates, feature additions, etc., you likely want to consider forming an internal team. Their mission is to build, support, maintain and extend the software. This option sounds like the best solution to many companies, however, it is also the most difficult to execute properly. You’ll need to hire talent for leadership, project management, software engineering, user experience, interface design, interface development, and possibly more. These are all separate disciplines and you’ll need at least one person for each. Further, when you are hiring this internal team to fill out each discipline, you’ll need the ability to recognize the quality and talent level of the candidates you’re interviewing. It’s not about keywords on the resume, salary requirements or even big-name former employers. You want to see what this person has done and what they can do for your team. The catch here is that you or someone you trust needs to know what they are looking at. Even if you hire some great talent, perhaps filling each discipline on the team, this is just the beginning. Supporting an internal team takes a lot of work. The management and culture of the team are critical to their success. Inspiration, leadership, empowerment, continuing education, and growth opportunity, just to name a few, are all essential for a healthy team.
The net take away from this post should be that deciding who should deliver your technology product is complicated. There are many different options that all have their pros and cons. Hopefully I’ve shed some light on some different options that can help guide the process if you’re currently making this decision in your business.