How to Make Software Products: Six Options for Startups

mockup-Section 1

Here you are, a hopeful entrepreneur who’s just stumbled upon a million-dollar software idea. Whether you have the next world-changing technology or just a fun side project on your hands, it doesn’t mean much until the software has been built.

So what’s your first move? Well, that depends on a wide range of factors. Your technical skills. The money you have saved up. How new and innovative is the software? And much more. When you Google which option is right for you, you’re bound to run into contrasting opinions based on the experiences of each author. However, some options may clearly not be the right choice for some businesses. And remember, no matter what type of development team you work with, effective communication is of the utmost importance.

This article aims to act as a guide to discerning between your options for making software products in a startup environment. The six options explored are:

  1. Find a Technical Cofounder
  2. Hire In-house Developers
  3. Outsource to a Development Company
  4. Hire Freelancers
  5. Hire Students or Interns
  6. Develop the Software Yourself

Each of these topics will be explored in great detail in separate articles – you’ll find the links to these articles in the relevant sections below.

1. How to make software: Find a technical cofounder

What is a technical cofounder?

A technical cofounder manages the technical side of your business, mainly software development in this case. They are your partner in getting the business off the ground. Their role evolves greatly as the business grows, likely starting as the main software developer and eventually transitioning into more of a leadership role that recruits and manages developers. They also play a key role in communication, relaying messages from the business team to the developers in technical terms. The technical cofounder can go by several titles including CTO, Technical Lead, or Senior Developer.

When should you find a technical cofounder?
  • When you don’t have the technical knowledge to lead development yourself and you require long-term support
  • When your business’ success is dependent on developing a new, innovative software technology
  • When you want your startup to continue to grow and have open-ended long-term goals
  • They are always valuable if they are the right fit for your business
Where do you find a technical cofounder?
  • Trusted connections in your network
  • Meeting cofounders in person at cofounder dating tech industry events
  • Using cofounding websites including CoFoundersLab, Founder2be, or Founders Nation
  • Building connections on social media, most commonly LinkedIn
How much does a technical cofounder typically cost?
  • Usually in equity, depending on when they join you’re business and how much they are contributing; equity split calculation tools like the one at https://cofounders.gust.com/ are useful
  • According to Glassdoor, Canadian CTOs make an average of $141k annually, though those at a startup may fall to $70k or lower
  • Can also be compensated with share options, bartered services, or bonuses

An in-depth guide to finding a technical cofounder can be found here!


2. How to make software: Hire in-house developers

What are in-house developers?

In-house developers are full-time programmers directly employed by your business. Hiring them is more of a long-term commitment than hiring freelancers or students. Depending on when they join the business, they can help build the early foundations of your software and continue working on the product as it grows. In-house development teams are more common at businesses that have already generated revenue, but can be required at businesses requiring long-term commitment from their initial development team.

When should you hire in-house developers?
  • When you have enough revenue/money to hire developers full-time
  • When you are building the foundation of a new, sophisticated software
  • When you require long-term commitment from developers so they can continually grow your software over time
Where do you find in-house developers?
  • Ask for recommendations from your network
  • Go to tech industry events to build relationships with skilled developers
  • Post on job boards on websites like LinkedIn, Indeed, or AngelList
  • Hire students, freelancers, or developers from a studio to come work in-house full-time
How much does an in-house developer typically cost?
  • According to glassdoor.ca, annual software developer salaries in Canada range from $53K to $100K or more (average of $76K) though those working at a startup are likely closer to the lower end or even lower
  • There are also the additional costs of training, employee benefits, and infrastructural costs like increased office space and technical resources

3. How to make software: Outsource to a development company

What is a software development company?

Custom software development companies vary widely in size and services, from small boutiques to massive agencies. Their main purpose is to make your software for you, often specializing in a specific area of software development. These companies can be local, offshore, or hybrid.

When should you outsource to a development company?
  • When you have the budget to afford outsourcing
  • When you need a professional, complete product developed quickly
  • When your team lacks technical leadership
  • When you want more of your team’s focus to be on business instead of software development
  • When you have fluctuating requirements for software development labour
  • When your core competency is not your software
Where do you find a development company?
  • Ask for recommendations from your network
  • Find companies online using firm database websites like Clutch, Appfutura, and GoofFirms
  • Search for specialized or nearby companies using a search engine like Google
How much does a development company typically cost?
  • Can be paid on a fixed, time & materials, or retainer contract
  • Their prices vary widely depending on whether they are local, what services they provide, and how good their reputation is
  • Local companies typically cost $100 to $150 per hour; offshore companies typically cost under $50 per hour
  • Clutch.co data shows that most custom software projects cost between $10,000 and $250,000 in upfront costs to design and develop

An in-depth guide to working with a software development company can be found here!


4. How to make software: Hire Freelancers

What is a freelance developer?

Freelancers are short-to-medium-term workers that can fill a variety of roles on your development team. Though they usually work on small, discrete, well-defined tasks, some experienced freelancers act as advisors to software startups. Freelancers are generally specialized developers that can work with your team or on their own.

When should you hire a freelancer?
  • When you have technical leadership on your team that can assess, onboard, and manage freelancers
  • When you need to build an MVP that can later be remade after validation
  • When you need them to perform short-term, highly defined tasks with a unique skill set
  • When you want to develop quick, simple software products and software is not your company’s core competency
  • When you are short on time or funds
  • When you want to work with developers from around the world
Where do you find a freelancer?
  • Ask your network for recommendations
  • Use freelancing websites like Upwork, Toptal, or Freelancer
  • Post on job boards on websites like LinkedIn, Indeed, or AngelList
How much does a freelancer typically cost?
  • Cheaper than in-house developers because of their flexibility and cheaper than development studios because of their decreased operational costs and services
  • Their prices vary widely depending on whether they are local, what services they provide, and how good their reputation is
  • Local rates can range anywhere from $50 to over $200 per hour while many offshore freelancers can be found for under $20 per hour
  • Can be paid on a fixed, time & materials, or retainer contract

An in-depth guide to hiring freelancers can be found here!


5. How to make software: Hire students or interns

What is a student work placement?

Student work placements are meant to provide mentorship to engineering students as they complete a deliverable project that showcases their knowledge and skills in software development. Though students come with less experience, they can provide cheaper labour and be groomed into future in-house developers. Each type of placement has varying duration, compensation, and focus for the student.

  • Internship: most common, one term, flexible in work hours, payment, and duration
  • Co-op: multiple terms alternate with class, usually full-time and paid, course credit
  • Capstone Project: Culminating project that concludes degree, tests academic knowledge and application, course credit
  • Field Study Course: More academic research than development productivity, course credit
  • Entry-Level Job: full-time position for recent graduates, no leadership or senior responsibilities
When should you hire a student?
  • When you have the sufficient mentor(s) and resources in place
  • When you have a project that is suitable for a student
  • When you are interested in investing in developing talent
  • When you are willing to risk lower-quality work for enthusiastic, cheaper labour
Where do you find students?
  • Start searching early on, likely 6-8 months in advance of the placement
  • Post the opportunity all over online job boards at schools and others like LinkedIn or Indeed
  • Attend job fairs or tech events at schools
  • Encourage past student employees to recruit their peers
How much does a student typically cost?
  • Course-based work placements, like a capstone project, field study course, or internship course, tend to be unpaid
  • Full-time internships not associated with a course and co-op placements tend to be paid
  • Student employees are usually paid hourly at a lower wage, depending on how competitive you want the opportunity to be
  • In Canada, entry-level software developers make between CAD $26,000 and $79,000 annually (average of $51,5014) according to indeed.ca

An in-depth guide to hiring students can be found here!


6. How to make software: Develop the software yourself

When should you develop software yourself?
  • When you have enough spare time available and you’re not in a rush to get a complete product to market; lean principles can help get a self-developed product to customers quickly though
  • When you have the necessary skills, are willing to put in the time to learn them, or can’t find a technical cofounder
  • When you don’t have the money to have an expert do it instead
  • When you’re a less experienced programmer, don’t develop much more than the MVP
  • If you’re experienced, you can remain as part of the development team as the business grows if you wish
Where can you learn to code?
  • Some of the top websites to learn to code include Codecademy, Coursera, and Udemy
  • Search for in-person coding workshops in your community to learn alongside likeminded peers
How much does developing software yourself typically cost?
  • Many courses for learning to code are free, but more in-depth programs can be thousands of dollars
  • You won’t need to pay anyone other than yourself
  • The main cost is your time, since developing software yourself takes much longer, especially if you lack experience

An in-depth guide to developing software yourself can be found here!

Summary: When each option should be used
Six ways for startups to make software products

Recent Posts