Got the next big idea? Very Exciting. But yes, you need custom software to make your dreams come true. Want to try to hire a software freelancer? Good, it could be the right choice for you. Here are some of the most common mistakes made when hiring a software developer.
1.) Bad project postings
One of the best tools I’ve learned as a software developer is to ask straight forward questions that get to the heart of what is needed. I’ve always worked hard to try and get to the root requirements. I often find that the original job posting over extend what is needed and doesn’t properly define the problem.
All it takes to save a bunch of money is to ask “why are we doing this?”
Do yourself a favor. Don’t tell the professional how to do the job. Listen to their unique approach then make up your mind. There is nothing to be lost by learning another way.
Not listing all of the requirements can get you into massive trouble. Mistakes in the requirements can be very costly.
2) No documentation or requirements
In the field of software development, documentation is king. I can’t count the number of times I’ve heard industry experts tell me how more documentation saves them money. Yes, it takes time to produce the documentation, but that’s where the magic happens.
Documentation’s first gift is to provide the writer with a chance to reflect on the task and give a second glance of the final product It also is a gift that seems to never stop giving. The same document, if maintained, can provide many years worth of benefits.
“Job security through obscurity” is the common phrase used by developers who utilize messy code to make sure they are never replaced. For a entrepreneur, it can feel entrapping to a business person and is ultimately a bad practice.
If you want your freedom, and to save a bundle of cash, require a higher level documentation on all your projects.
3) No version control system or backups
So, you hired that new, great developer. They have all the right answers to the questions you ask them in the interview. Unfortunately, the new freelancer is not exactly what they say they are. With version control systems, you can easily recover the previous state of the website or check the freelancer’s work.
Or maybe, that new developer suddenly starts defacing your products. Encoding them in encryption, they demand more payment before they release your systems. Unfortunately you just tried to save money and didn’t buy the backup plan.
Both of these scenarios are more common than you’d expect. Fortunately, the solution is simple. The use of Version Control Systems (VCS) and backups can help save you from both situations.
Version control systems also provide a way to verify copyright. Unauthorized use and protecting intellectual property are available when paired with a good non-disclosure agreement (NDA).
4) Not enough compensation
Good software developers are hard to find. When you get one, make sure to take care of them. This isn’t some giant company you’re dealing with. This is a freelancer, and their livelihood is dependent on the pay from these jobs.
Losing, or changing a developer can be a huge task. The training required to bring on a new developer can be extensive. The lack of current system knowledge will need to be overcome, and will cost money. Lack of knowledge about current resources will increase code duplication. Over time, the code will slowly start to become increasingly complex and expensive.
Bad developers will lead to a huge lost. Any work they perform will need to be redone. The issues they introduce may not always be immediately felt. The worse providers will cost more then they offer.
If you need to change developers, ending things in good terms can provide the next systems expert with a valuable resource and will cost you less. Be loyal to the people helping you is a good place to start.
5) Not having a business plan
So you developed that amazing new system that everyone can use. Except you find yourself with only a few visitors a week. Clients don’t realize how difficult it can be to get noticed. Be prepared is key to success.
Did you know that simply by creating a business plan, you can increase your chances of success drastically? Knowing your market and what they want is key and a plan can help.
6) Assuming the system won’t require maintenance
In the evolving systems of today, new versions of programming languages and information systems provide an ever changing environment. We must assume that all custom code will need to be maintained. Nothing is perfect. All code contains bugs and security issues. New bugs will appear and need to be fixed. Security vulnerabilities will be found, and new standards will be released.
As the product matures, the amount of code will increase due to a failure to use already existing logic. This will create duplication that also needs to be maintained.
Maintenance costs will grow until eventually the system will need to be re-written. I suggest all people assume a lifespan of no more than 5-7 years on any system.
7) Failure to consult legal professionals
We live in an age of industry regulation. Many countries have laws and requirements leaving the businessman liable for the products they produce. With the introduction of laws like SESTA/FESTA, these violations can even become criminal, landing people in deep trouble. Not to mention the many privacy laws around the world. It’s therefore advisory to use common sense or consult an attorney.
8) Assuming all code is the same quality
Not all code is equal. Some is robust, flexible, easy to read. While other code seems to be expensive to maintain and full of bugs. The cost of using inexpensive labor is added later in the product lifespan and can be substantial.
Good code is cheap to maintain. Easy to fix. Documented. And has a great public interface for other developers to read.
Not to mention that code duplication is a massive issue that most software professionals don’t understand. It rewards “quickness” at the expense of excessive long term cost.
Yes, that developer fixed the problem. But did he create a mess that you’ll be struggling to support? Did he provide a solution another developer could support? Bargain hunting often ends in disaster.
9) Not looking into the freelancer
Great, the new developer you found says he can do the job you need. But there is a catch, the man is not who he says he is. How do you know?
Background checks can help. Verify references is a great tool for success as well. Criminal history and Google can help avoid most problems.
Hiring with an escrow and reviews is generally not enough. These systems commonly fail the client when needed, so its best to do your research and avoid or expect any problems.
10) Failure is an option
Things don’t always work out. More often then not, its not out of malice or spite. Budgets assure this job is not always easy. Appreciating, and anticipating a certain amount of failure will prepare you for what you face.
Computers will not debate what you want, they do only what you tell them. Unrealistic and assumptions can get us into a lot of trouble. Education is the fix, so read the article. 🙂