How to Make Software Products: Six Options for Startups This article is for: Startup founders with an idea for a software product who want to learn how to get it developed. Written by: Alex Senson, Ashley Burton, Tyler Boulanger <– Back to the main guide “Software Development for Startups” 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: Find a Technical CofounderHire In-house DevelopersOutsource to a Development CompanyHire FreelancersHire Students or InternsDevelop 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 networkMeeting cofounders in person at cofounder dating tech industry eventsUsing cofounding websites including CoFoundersLab, Founder2be, or Founders NationBuilding 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 usefulAccording to Glassdoor, Canadian CTOs make an average of $141k annually, though those at a startup may fall to $70k or lowerCan 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-timeWhen you are building the foundation of a new, sophisticated softwareWhen 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 networkGo to tech industry events to build relationships with skilled developersPost on job boards on websites like LinkedIn, Indeed, or AngelListHire 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 lowerThere 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 networkFind companies online using firm database websites like Clutch, Appfutura, and GoofFirmsSearch 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 contractTheir prices vary widely depending on whether they are local, what services they provide, and how good their reputation isLocal companies typically cost $100 to $150 per hour; offshore companies typically cost under $50 per hourClutch.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 recommendationsUse freelancing websites like Upwork, Toptal, or FreelancerPost 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 isLocal rates can range anywhere from $50 to over $200 per hour while many offshore freelancers can be found for under $20 per hourCan 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 placeWhen you have a project that is suitable for a studentWhen you are interested in investing in developing talentWhen 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 placementPost the opportunity all over online job boards at schools and others like LinkedIn or IndeedAttend job fairs or tech events at schoolsEncourage 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 unpaidFull-time internships not associated with a course and co-op placements tend to be paidStudent employees are usually paid hourly at a lower wage, depending on how competitive you want the opportunity to beIn 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 thoughWhen 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 MVPIf 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 UdemySearch 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 dollarsYou won’t need to pay anyone other than yourselfThe 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 <– Back to the main guide “Software Development for Startups”