This article offers a comprehensive discussion of the inevitable tide of using more freelancers via platforms such as Upwork in software development. Based on the author's success stories, this article covers the opportunities, challenges, ethics and a working model of using freelancers in software development.
In particular, it introduces a ground-breaking new Real-Time Distributed Software Development methodology, which removes the biggest roadblock faced by software developers when considering using freelancer programmers.
I was once developing a medical cloud that needed an advanced JavaScript component to display and annotate heart ECG graphs, which we didn't know how to write, so I suggested to get a freelancer to do it. I found one called Neil in UK on a freelancer platform called Upwork with very good track record. He quoted AU$4000 and four weeks. But the CEO felt UK was too far from Australia, so he found a local consultancy firm. The contract was signed at AU$13,000 to deliver the component in three months.
After the coding started, I realized that that firm also did not have programmers who could do this, and they subcontracted the work to a third firm, taking a big cut for doing nothing. The development dragged on for six months. The developers in the third firm did not read requirements and emails and never answered the calls. I spent tens of hours writing emails trying to explain why their delivery did not meet the requirements, but every next release still had problems. Both sides got impatient over time. Eventually they said: "We no longer want the remaining half of the payment, and we stop here."
With deadline fast approaching, the CEO asked me, "Ask that freelancer Neil if he can finish it in two weeks." Neil said: "Yes, $6000 in two weeks."
At the end of the two weeks, Neil delivered. I communicated back to him for a small issue. He fixed it in the same day. After that I never contacted him again. Customers were impressed with the polish of that ECG graphing component. I wrote Neil a five-star review on Upwork.
I have since worked with freelancers around the world, from Estonia, Ukraine, India, Pakistan, the rest of Europe, and the US, to develop web components, mobile apps, logos and book covers. All jobs were delivered on time, with satisfactory results, and all the coding jobs cost a fraction of what could have been charged by local consultants.
There are some challenges and concerns which prevent software managers from harnessing the benefit of freelancers:
Communications is one of the critical factors that decide the success or failure of a large project. The freelancers may be thousands of miles apart who have never met each other. They cannot go into a meeting room and sort out issues on a whiteboard.
A large software project is usually made up of many components. For the project to compile on the freelancer's PC, he has to have all the components. Giving all of your intellectual properties to someone in a different jurisdiction is a great and often unbearable risk.
Luckily, a new ground-breaking SkyBridge® Proxy DLL technology solves this problem.
Mary lives in Australia and Peter in the US. They work for different software companies. The two businesses are collaborating to develop a software application. Mary is coding component A and Peter component B.
Using the SkyBridge® Proxy DLL technology, they don't need to have each other's code, and yet they can both compile and run the application.
When the application is run on either computer, the source code on both computers is executed in real time, as if they are on the same computer.
There is little learning needed. Mary and Peter each need only three to five minutes to download and configure the SkyBridge® Proxy DLL environment. That's all. Their code doesn't need to be contaminated by extra code such as special SkyBridge® attributes to facilitate this Real-Time Distributed Software Development.
See details.
I don't think readers need my two cents over such big topics. However, if you ask the freelancers I hired in Estonia, Ukraine, India and Pakistan, they would tell you that they greatly appreciated the money I paid them, which they would have had no way to earn on their local job market.
I do not envisage a software house with a single software development manager and 20 remote freelancer programmers. Instead, there should be a core team of local developers, working with a much larger team of remote freelancers.
This way, using freelancers does not necessarily mean that, instead of hiring 20 local developers, you hire 3 local ones and give the 17 jobs to freelancers in other countries.
Instead, it enables you to undertake a much larger project that requires 100 developers with only 20 local developers whom you are able to find on the limited local job market.
Medium to large organizations in developed countries such as Australia may have strict HR regulations that may prevent them from hiring remote freelancers. However, when there is a need, a great opportunity to benefit everyone, the regulations need to and will be changed to adapt to the new trend.
A software development project can be conducted by a local team which consists of architects, programmers and testers.
Suppose your business makes a bid for a software development project based on the following assumptions:
Your competitor makes a bid based on the following assumptions:
In a competitive market, that cost and time-to-market gap is hard to ignore.
As far as I can see, the inevitable tide is coming. The COVID-19 pandemic gave it a major push, forcing the decentralization and distribution of most workforces. For twelve months, I did not see any of my colleagues face-to-face.
Not surprisingly, my productivity increased, because I had better sleep — I no longer had to get up at 6 to avoid the traffic jam. I worked one hour more every day, and still had one hour more time to exercise.
How much difference will it make to my employer, then, if I am in fact on a different continent?
Those who hop on their surfboard earlier will have great fun riding this tide, while those who are tardy might get their expensive business shoes wet.