It’s scary, isn’t it? Hiring a software developer.
They’re expensive. And it’s hard to separate those who are good vs. those who can talk a good game.
But let’s face it.
If you’re looking to incorporate an app into your service offering, or streamline your operations, then you’ll need to hire a developer.
I’m not going to lie to you and tell you that it’s going to be entirely painless. It’s going to require some trial and error.
However, I’ve laid out seven steps in this article that will help you successfully outsource software development on a budget.
Search Your Network
Finding a developer is scary. Most of us looking to hire developers don’t have a background in software or engineering, which makes finding someone “good” difficult.
Most of us don’t know the difference between scalable code and gobbledygook. So finding someone you trust is imperative.
That’s why you want to start with your personal network.
Your network is probably much larger than you think. You might not know a developer personally, but chances are, someone in your network does.
Among these individuals are friends, family, customers, vendors, partners, colleagues and employees.
These individuals can steer you toward software developers that they’ve worked with in the past, or know and trust personally. This will dramatically reduce the risk in wasting time and money on incompetent talent.
Let’s say you need a version 1 of your software; something that you can use to prove your concept to potential customers. Chances are, you don’t want to invest thousands of dollars getting something developed only to find out that your customers don’t want it.
That’s when you can turn to student labor.
Setting up an internship program and getting an engineering student to do the work might be a viable option.
You can get your first version built for a fraction of what it would cost you to hire a professional developer.
But there are a few drawbacks.
First, you’re probably hiring someone who has never had a job developing software for a business before. This might make for an awkward working relationship.
Second, your software won’t be the student’s number 1 priority. He also he has classes, homework, labs and a social life. Your software will get done on his time, not yours.
If time isn’t an option and you’re perfectly OK with managing a student, then setting up an internship program might be an affordable option to get a first version of your software developed.
Inspect Their Portfolio
Before you hire someone, make sure to inspect their portfolio.
Their portfolio is their working resume. It gives you some idea as to the quality of work that you can expect.
Find out what kind of software they’ve built in the past. Do you like how the software is designed? Do you like how it works? Is this how you envision your software?
Hiring someone based on domain expertise will help you navigate the intricacies of your software.
For instance, if you’re building an accounting software, hiring a developer has expertise in the finance industry will give you some assurances that he knows how to install proper security measures and integrate with various banks.
Wireframe the Software
The single most important step in outsourcing the development of your software is communicating to a developer what it is that you actually want developed.
This is what wireframing the software does.
Up until now, your idea exists as an idea in your head. For instance, if you’re creating an app that measures business intelligence, you might say “I want you to build me an app that easily measures traffic, leads, and conversions on websites.”
Now, this is where the rubber meets the road.
How do you want your app to be delivered to your customer?
What do you want your forms to look like? How do you want to track conversions? Is this going to be a SaaS product or a WordPress plugin?
These and a hundred other questions are what you need to answer, and wireframe.
Luckily, there is some pretty sophisticated software that can help you do this. Programs like Balsamiq and Keynotopia can help you draw each frame of your app so you can hand it off to your developer with the confidence that he knows exactly what you want to build.
While this can be a lot of work, it will save you both time and money in the long term.
The truth is, you can screen someone for months, but until you’ve worked with them, you won’t know how well you’ll work together.
After you find a qualified candidate to work with, give them a small job to complete just to get a sense for how they work and the quality of work that you can expect from now on.
This can be anything from having them design and code a simple landing page or create a simple feature on your website.
The goal here isn’t to spend a lot of money. It’s simply to make sure that the lines of communication between you and your developer are open and to ensure that all deliverables are on time and on budget.
While this can cost more money up front, it will save you time and money on the back end because projects were completed on time, and to your specifications with minimal tweaks and modifications.
If you’re working on a long term project, you might want to request that your developer checks in daily. It is an incredibly isolating feeling when you give money to a developer and then he goes “dark” for weeks at a time, and you’re left wondering what kind of progress is being done on your project – if any at all.
Over the course of any project, there are a number of decisions that are going to need to be made. You, not the developer, should be the one to make those decisions.
While this can seem like a lot of work at the end of the day, it can be well worth it in the long run. If not dealt with in a timely manner, little issues can lead to big problems.
Your developer doesn’t have the benefit of knowing where you plan on taking the software in the months, and years, ahead. Decisions that he makes today, can cost you a lot of money tomorrow.
So, each night, request that you get an email from your developer that describes the following:
- What progress or features have they built today
- What challenges or decisions do they face? What, if anything is hindering their progress moving forward? Are there any technology limitations?
- What do they need from you? Are their decisions that need to be made?
- What do they plan to do tomorrow?
This will enable you to keep your finger on the pulse of your project and hold your developer accountable.
Finally, schedule weekly status update meetings. While email can help with some day to day issues, there is nothing quite like having a conversation with your developer to get into the meat of some of the issues.
These meetings will allow you to hash out some minor difficulties and will give you the opportunity to continue to articulate your vision for the software.
When it comes to outsourcing your software development, there is no such thing as over communication.
Delay Final Payment…
Until your software has been tested in the wild.
Any good developer is going to run tests to try to eliminate any bugs before sending it over to you. However, there is a huge difference between the tests that he runs vs. the abuse your customers will put the software through.
Before you make a final payment, make sure that the software has run the gauntlet that your users will put it through.
This will have to be worked out in your contract. You might have a clause that states “final payment will be made after 5 customers have used the software for a 1 week period.”
Finding a developer to build software is one of the most difficult, expensive, and scary outsourcing decisions you’ll make.
However, if you follow the seven steps listed above, you can mitigate some of the financial risk and save yourself a lot of time.