A cup of coffee with a fellow entrepreneur cost me over $1,910.
There was nothing all that unique about this meeting. Like most of my meetings, we discussed our businesses, tricks we’ve discovered to be more productive, and our current struggles. During our conversation, this fellow business owner explained how he retained on staff a full-time developer in the Philippines. This developer was always working on and turned out high-quality projects, and came at the princely cost of $4/hour.
This sounded great! I always have more development projects than I could possibly handle. A dedicated developer could solve multiple problems.
So I posted a job.
Fast forward two months later. My newly-hired, full-time developer had a task to begin a web-based project. However, I started to grow suspicious, since I was being billed every week for dozens of hours of work, but not seeing much progress in return.
So I asked to see the code written so far, on the premise that if something happened to him, I didn’t want to lose the work (a practice I should have implemented from the beginning). He initially resisted but eventually a day later, I got the code and I was instantly horrified.
Eight weeks of bills in which I was invoiced for dozens of hours (60-70 hours per week), and he had written less than 40 lines of code. I thought I was going to throw up.
My First Lessons Learned
Naturally, I confronted my new hire about the extreme inefficiency of his work. It didn’t take him long to fess up: he claimed his brother ran the screenshots for him and begged me to forgive him. He even offered free development work.
But for as much money as I lost on this scam artist, I learned a couple of very valuable lessons.
Don’t Pay a Developer $4.44 per Hour
$4 an hour is not a fair price for a good developer. Many applicants will reduce their bids to win the work, but low salaries just encourage fraud to jack up the bill.
You get what you pay for: Pay crap, get crap. Remember, the person you hire has bills to pay, just like you. So pay them a decent salary and they will hopefully reward you with top quality work and honesty.
Don’t Get Lazy– It’s good to be trusting. Freelancers appreciate that. But if the freelancer is dishonest, they will use that trust against you. Always be a little bit suspicious and check the work on a very frequent basis.
Not only was I trusting, I was lazy and distracted. I hired a developer to do work “on the side” which could also mean, “I don’t have time to pay attention to it.” The phrase “a fool and his money” comes to mind.
Detecting Fraud: Five Signs to Watch
After that first negative experience, I was averse to trying again. But business needs dictated that I had to eventually hire someone else. Since then, I have hired dozens of developers and, in the process, seen several of those developers try to scam me the way the first developer did.
Based on those scams, here are some signs that your employee has his hand in the cookie jar.
First, How Do They Cheat?
If you want to protect yourself from fraud, it is helpful to know first how developers trick time tracking software.
While nearly every developer who has tried to scam me claims that their brother or cousin created the fake screenshots, the reality is that they are using software which mimics keystrokes and mouse activity.
The software is actually quite common and easy to find, although I won’t link to any software in this article.
Using this software, a developer can easily log billable hours for multiple clients at the same time without actually doing any work.
The problem with this software (at least for the developer) is it is fairly easy to detect.
So what should you look for? Be on the lookout for these five tell-tale signs.
What Files are You Working On?
Most freelancing services will include time tracking software that records screenshots, mouse movements, and keyboard strokes. If you suspect dodgy moves by your developer, this time tracking software can either prove or disprove your suspicions.
The first developer I caught cheating on his hours was, fortunately for me, rather sloppy. To build what I asked him for, he needed to use the popular PHP framework CodeIgniter. When I got suspicious, I reviewed his screenshots updates. It was then that I knew that something was amiss. How? He was working in all the wrong files.
With CodeIgnitor, there are files “standard” to the framework. In other words, you leave those alone, and the developer only needs to work in a certain handful of other files. This developer was working in files that didn’t need to be worked in.
In Case You Don’t Know How to Code
You don’t have to know how to code to see if you are being cheated.
Common sense and logic will take you a long way. Look at the file names, the writing in the files, and the variety of files your developer is using.
Secondly, you can (and should) ask your developer about the different files and what purpose they serve. After all, you are the employer paying the bills. You have every right to ask questions. If they get hostile answering questions, then that may be a sign they are hiding something.
But most importantly, by showing a willingness to be proactive and interact with the developer, you are sending them a very clear message. I am watching you and I am checking all your work. This will make them very reluctant to try anything underhand.
Are Files Changing?
Logic dictates that if a person is working on developing a system for you, and if they are spending most of their time in a handful of files (according to screenshots of their activity), those files should, in theory, change over time. Obvious, right?
But a sign of a freelancer using auto clicking software are files that stubbornly remain the same for hours on end.
Over time though, clicking software has become rather more advanced. They will move things around to simulate the appearance of work being done, but the text will remain the same. So collect those screenshots and compare them closely to see what has changed. If nothing, then it’s time for you and the developer to have a chat.
Are There Incomplete Lines?
If someone is writing hundreds of lines of code over many hours, and there are multiple screenshots of their activity, how likely is it that you’ll never find a half-finished line of code? Pretty unlikely.
This alone is not an indication that your developer is scamming you, but as more billable hours stack up, the likelihood of no half-finished lines of code decreases. This is definitely a sign that further investigation is needed.
Analyze Keystroke Activity
When using time tracking software, one of the most invaluable tools is analyzing keystroke and mouse click activity. It is difficult to make activity look ‘normal’ using auto-click software, so you should inspect your freelancers activity here.
Take a look at the screenshot below: do you notice how the developer has 36 or 33 keystrokes every minute? And 11 or 12 mouse clicks every minute?
Not only is this highly unlikely, the idea that someone is clicking, typing, and clicking and typing consistently for minutes on end simply isn’t realistic for a developer.
Developers typically work in one of two ways: research and thinking (very little activity) and typing (a lot of activity). You should see activity occur in spikes, not on a consistent basis every minute.
Of course, the example above is easy to spot. What if the numbers really appear random? You should do a common sense check of their work.
The screenshot above looks more realistic, but it’s still suspicious. Why? Consider that over a 10 minute period the most keystrokes per minute this developer recorded was 74 keystrokes. If you assume your developer types at the rate of 35 words per minute (a very slow speed for a developer who spends all their time on a computer), this should equal roughly 145 keystrokes in one minute.
Now a single instance of slow work like this is not conclusive evidence that they are dishonest. Always give them the benefit of the doubt, and don’t jump to any conclusions.
Take Proactive Measures to Keep Your Freelancers Honest
Why take the risk of having a dishonest freelancer when you can take some steps to ensure a honest one? This can be done by following some basic principles.
Require Daily Commits of Code
There is no reason that your developer shouldn’t provide a daily updated commit of code. This should give you the opportunity to view just how much work was done on the actual code during the day.
Of course, not all progress is measured in the number of lines written or characters committed. Development requires planning, bug fixing (which consists of a lot of reviewing), and research. So be sensible in reviewing updates to code.
Ask for Daily Progress Reports
The developer doesn’t have to give a blow-by-blow, warts-and-all, detailed report on how they spent their day. But they do need to be willing to send a status update on the day’s work, as well as what they intend to work on the next day.
Be Selective in Hiring
One of the best ways to avoid dishonest developers is to be upfront with applicants during the hiring process. Tell them you actively look for fraudulent work and anyone caught will be fired.
If dishonest developers know upfront that you actively look for fraud, they’ll be less likely to apply.
Question Their Work
As I said before, you are the employer paying their bill. That brings with it some automatic rights, such as questioning the work they are doing. A honest developer won’t mind this. A dishonest one will.
Consistently ask what each file is for and what its purpose is. It is, after all, your code and your legal property. Use the developer as a resource and learn how your system is being assembled.
Hire From the Right Countries
This tip could easily be misinterpreted, so I really hesitate to include it here. But if you talk to experienced entrepreneurs, they will all tell you that they all have preferred countries to hire from.
Some regions of the world are more fraught with fraud and some business owners have personalities that match well with other cultures. For example, one person may hire frequently from India, while the next person may avoid India completely, and hire from their own country instead.
To avoid any misunderstandings, I want to be clear on this point. There are good, honest developers in every country. You just have to learn what countries are better for you and where you’ve had the most success.
Despite the bad apples, I absolutely love that in today’s connected world, an entrepreneur can find talented coders and developers across the world, all at the click of a few buttons. Our talent pool is global and by paying workers fair wages in some of the more difficult regions of the world, we also support the concept of honest entrepreneurship and small business.
But, as always when money comes into the picture, there are a fair share of dishonest freelancers who would rather scam their clients than provide an honest day’s labor. For these people, always maintain a vigilant guard.
So to summarize, to stay protected, you must make sure you do the following:
- Ask for daily commits
- Provide upfront warnings
- Request daily reports
- Ask questions about the work
- Hire from the right countries
So what did I miss? What obvious signs do you know of that indicate your developer is lying?
All screenshots taken by author in December 2015
Featured image: Pixabay