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:
are also the additional costs of training, employee benefits, and infrastructural costs like increased office space and technical resources
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
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
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
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
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
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