A Beginner’s Guide to Custom Software Development
You put down your coffee cup and smile to yourself. One thought keeps going through your head: “I am freakin’ brilliant!“
You pick up the napkin–on which you’ve just sketched out a revolutionary idea for a new app–and walk out of Starbucks with a pep in your step. You need to get back to your office to start planning how to spend your millions.
Then it hits you.
“I have no idea how to build a software product.”
The good news is you have lots of options. There are tons of people who do know how to build software, and they’ll help you get your app built. Whether it’s a mobile app for phones and tablets or a web app accessed via a browser, you have options.
Here are some of the most common:
- Find a technical co-founder. This is typically an experienced programmer who will put in a lot of sweat equity in exchange for a piece of the action. They slave away night and day to get the product built while you pursue any necessary funding and put a sales and marketing plan in place.
- Build your own software development team. This takes things a step further, usually combining a technical co-founder with additional technical team members to get things done faster.
- Hire a freelancer or contractor. This is similar to the technical co-founder, in that it’s “one person,” but you don’t need to give up any equity.
- Hire an on-shore company. A team of people based in your country will be assigned to your project.
- Hire an offshore or nearshore company. This is similar to the on-shore option, but the team is not based in your country. This has the promise of low hourly rates, but you need to have a very disciplined project management approach in place to make it work.
- Hire a hybrid on-shore/offshore company. In this case you’ll work with project leadership in your country, but the programming and testing will be done outside your country. This is the best of both worlds, combining on-shore folks who will sit down with you face-to-face throughout the project, while saving you money by leveraging less-expensive technical resources.
I’ll explain each of these below, including the pros and cons of each. You can also view our How-to Webinar on App Creation, which addresses many of these points.
Sometimes the stars align and you can find an experienced senior software engineer who is looking for adventure in the form of launching a new company.
They’ll be heads-down, focused solely on building your app, and will have a strong incentive to be there for the long term.
- Your out-of-pocket cash will be limited since typically a portion of the co-founder’s compensation will be in the form of equity in your company.
- You’ll have one individual thinking about nothing but your product, day in and day out.
- There is a strong vested interest in the person to succeed.
- There is a single point of failure. If the person doesn’t work out for some reason, or gets sick, that will put a crimp in your plans.
- A single developer oftentimes doesn’t use the same rigor with software development as is required by a team. This typically will help you get something usable by your customers more quickly, but there is a trade-off: you may need to spend time down the road fixing up the technology as your company grows.
- You are limited to that one single person’s technical and business experience. Sometimes you luck out and they’re exactly what you need. Other times it turns out they didn’t know quite as much as you thought.
- It can be challenging to find someone who has the necessary skills and experience, has a great personality match with you, and is in a position to take a leap of faith on a new startup venture.
Your Own Software Development Team
This is an extension of the technical co-founder approach, adding in additional bodies to get more done faster.
You’ll typically still need the technical co-founder to hire and manage the team, but they don’t need to possess all of the programming know-how; you can hire a mix of software engineers with the appropriate technology background.
- You avoid the single point of failure of just one technical resource.
- A team will get more done more quickly than a single individual.
- Assuming your technical co-founder has experience leading software engineering teams, the required discipline will be put in place to avoid technical debt.
- It’s a very tight job market for software engineers and quality assurance engineers; it may take three to six months to form a team, depending on your location.
- Increased cash outlay. Some team members may be interested in less cash in exchange for equity, but they all need to eat!
- There is a requirement that your technical co-founder is more than just a really sharp software engineer; he or she will need to be an experienced and successful manager of software engineering teams.
Freelancer or Contractor
In this case you hire a freelancer, who is typically someone independent working on their own, or a contractor, oftentimes from an IT staff augmentation agency. They focus on your project for the amount of time specified by you.
- You can oftentimes get a very senior person who would otherwise be difficult to find.
- Someone can be lined up very quickly, particularly if you’re willing to be flexible in terms of their location.
- You can “turn the dial,” adjusting the hours per week based on the cash you have available.
- You won’t need to pay benefits as they’ll be on a 1099 basis.
- You’re back to the single point of failure problem.
- There’s less buy-in than you’d have with a technical co-founder.
- More out-of-pocket cash.
There are many companies that specialize in exactly what you need–taking your business requirements and completing a custom software development project to build a product to your specification. They have teams of domestic software engineers and software testers who can be put onto your project.
- Most companies can quickly ramp up a team within a few weeks.
- You’ll get a combination of expertise, focused on the type of software you have in mind.
- The company will provide the management of the process.
- You get face-to-face time with the project leadership to keep up to date.
- It sometimes can be hit or miss to find the right company. Be sure to ask the right questions before engaging.
- You’ll pay a premium. The company has its salaries to pay, overhead to cover, and profit to make. You may see hourly rates in the $125 to $250 an hour range.
Offshore or Nearshore Company
The Holy Grail….tap into thousands of offshore or nearshore (within a time zone or two of your own) workers who are brilliant, hardworking, and cheap.
If it was only that easy.
The truth is, it takes a lot of work to make using offshore technical resources successful. If you have a technical co-founder who has experience managing offshore resources and utilizes a top-notch approach to recruiting and managing them, this could be for you.
- Increasing your geography increases your options; you’ll have an easier time finding available technical resources.
- Rates are inexpensive. You’ll pay between $20 and $45 per hour. (There are more inexpensive options but at much less than $20 per hour you’re risking the level of quality of their work.)
- They work while you sleep!
- You have trouble managing a team when they’re sitting within 20 feet of each other? Imagine trying to manage across 12 time zones. You need to know what you’re doing and heavily leverage a methodology such as Scrum.
- Language and cultural barriers can get in the way, especially if your primary point of contact is in the offshore company.
Hybrid On-shore/Offshore Company
This is a combination of the previous two options. The project is managed using on-shore resources, but offshore technical resources are used to keep the cost down.
Full disclosure: After years of experimenting with different models, this is the one we’ve adopted at Ascendle, and we’ve never looked back.
Our clients love the care and attention they get from our on-shore team members, and we save them a ton of money with our offshore software engineers and quality assurance team.
- Your primary point of contact is on-shore. You can sit down face-to-face with the people running your project and know that they understand exactly what you want.
- Because offshore resources are used, the overall cost is going to be lower than an on-shore company.
- The management of the offshore resources, including coordinating their work across time zones, is handled by the company and completely hidden from you.
- Prices are going to be a bit higher than going direct to offshore companies yourself.
There are a ton of options for getting your custom software development project completed. If you’re looking for a “right-hand man/woman” to own the technical side of the company and don’t have any excess cash, a technical co-founder can be the right move.
On the other hand, if you have some funds to put into the effort and you need a product created quickly and done right, a hybrid on-shore/offshore company is going to give you the most bang for the buck. This approach will ensure you get what you want and you’ll have the level of communication and transparency you need.