This article offers a comprehensive discussion on the inevitable tide of using more freelancers via platforms such as Upwork in software development. Based on the author's success stories, this article covered the opportunities, challenges, ethics and a working model of using freelancers in software development.
Particularly, 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 needs an advanced JavaScript component to display and annotate heart EEG graphs, which we don'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 does not have programmers who can 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 answer the calls. I spent tens of hours in 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 finished 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 sexiness of that ECG graphing component. I wrote Neil a five-star review on Upwork.
I have since worked with freelancers around the word, from Estonia, Ukraine, India, Pakistan, Europe and US, to develop web components, mobile apps, logos and book cover. All jobs were delivered in time, with very satisfactory results, and all the coding jobs costed 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 decides 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 and patented 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 Peter's or Mary's computer, the source code on both computers are executed in real time, as if they are on the same computer.
There is little learning needed. Mary and Peter each needs only three to five minutes to download and configure the SkyBridge SkyBridge® Proxy DLL environment. That's all. Their code doesn't need to be contaminated by extra code such as special SkyBridge® attributes to facilite 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:
You competitor makes a bid based on the following assumptions:
Who will win might be obvious.
As far as I can see, the inevitable tide is coming. This tide is only accelerated by the COVID storm, which forces the decentralization and distribution of the work force of most businesses. I did not seen any of my colleagues face-to-face for twelve months.
Not surprisingly, my productivity increased, because I have better sleep - I do not have to get up at 6 to avoid the traffic jam. I work one hour more every day, and still have one hour more time to exercise, because I do not have to be stuck in traffic.
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.