If you're in the software industry, or if you want to offer software as a new revenue stream, you've got a few options of how to get the software developed. Which you choose depends on your time, money and technical skills.
Software is a product, just like a stuffed animal or car. Just because you sell the software doesn't mean you necessarily have to produce it in-house, although that is an option. You can outsource the work completely to a software design firm or freelancer, or you can take a hybrid approach, developing part of the work in-house and working with a programmer or designer outside the company to complete it. Whatever you choose will depend on three components: time, money and technical skills.
How Much Time Do You Have?
As a small business owner, you may be a great programmer, but simply may not have the time needed to fully develop your software. After all, you're also running your business, paying bills and managing employees. In this case, it may make more sense to outsource the work.
On the other hand, if you've quit your day job to realize your dreams of selling your own software, you've got nothing but time to produce the software. You can't go sell it until you have the product, so you can immerse yourself into the programming and designing until the final product is ready.
If you have plenty of time up front to start the software but then get busy, you can bring in a freelancer or firm to complete the work.
Check the Budget
Usually the biggest factor into where the software gets built is money. Can you afford to hire a professional firm to design your software? Maybe not. What about a freelancer with the right skills but a lower price? This may be an option, but if not, you'll need to have internal resources (you or an employee) to take on the entire design project.
If you have a long timeline until the software project needs to begin, you may be able to set aside money in the budget to cover the development. But don't forget to plan for the unforeseen expenses that often accompany any type of project; if you add features to the software as you go along, this will add to the budget (and timeline).
What's Your Level of Technology?
If you're a programmer, it should be fairly easy to churn out code. But if you don't have the skills necessary to develop the type of software you want, it's important to realize this up front so that you can find the right talent to make the software as successful as possible. This could be a good opportunity for collaboration: you can take on all the programming work that you're skilled for, and a firm or freelancer can cover the design, back end or other components where you're lacking skills.
Once you determine how you'll work, on your own, by outsourcing or through collaboration, make sure to address these issues:
- Is there a need for this type of software?
- what qualifies us as a company to provide this type of solution?
- How will we support this software?
- How often will we put out updated versions?
- Who is our audience?
- How will we promote this software?
- What is our price point?
Make sure to have both a business and a marketing strategy before you even begin developing the software to help ensure its success.