How developers could get paid using blockchain and smart contracts
It's hard to find a job because it's a big commitment and the interview process is an investment.
In a web 3 environment where everything is open source, this could change.
- What if meetings were publicly accessible too?
- What if all issues could be found publicly?
The first couple of weeks a freelancer joins a company there is extra effort required from the existing team to educate this freelancer before the freelancer can be productive.
The more hours the freelancer spends the more value he/she brings per hour.
I think there shouldn't be an hourly rate, but freelancers should get paid for PR's.
What if the reviewer could see the following stats of every PR:
- Time spent
- LOC edited
- Average PR Quality of this freelancer
- Minutes of attention required of colleagues for questions etc.
With these 4 factors together a price tag can be estimated for the PR by an AI or a simple formula. Then, the reviewer can up the price tag or lower it, based on the perceived code quality and the company budget.
When the PR is merged, the freelancer gets paid immediately, in crypto. The people that helped this freelancer for this PR get paid part of the sum as well.
The problem with this structure is that you have one other person that's reviewing that can basically decide what a lot of people will earn. But what does the reviewer earn? What does the product owner earn? And the designer? What if 2 developers review each other's code? What about meetings?
The great thing about this structure is that you put the money right at one of the most important KPI's: codebase improvement. I think this would totally work for most developers in a company.
Other roles in the company like the senior developer, designer, product owner, etc can get paid in similar ways. The key ingredients are measuring time of small chunks of work (PR's) and have the results peer-reviewed by high-rated colleagues.
The scrum-poker way Another way to fairly deciding how much someone gets paid, is by doing scrum poker in a global open network.
The product owner makes a well defined issue and adds a maximum pay-out for it and a deadline. Then there is a short "bidding period", in which developers can have a look at the issue and make an offer. At the end of the bidding period the product owner can choose a developer, based on how much they charge for the issue, when they say they will finish it, and their rating.
The developer then finishes the issue within the deadline (your rating drops significantly if you don't finish it within the time limit) and then the PR is created and should be tested and reviewed.
- If the testing yields unsatisfactory results, the issue isn't completed and the developer should continue with new instructions. Here both the developer and the product owner can be given blame, and money should be added accordingly.
- If the reviewing shows unsatisfactory code quality, the issue isn't completed and the developer should continue with new instructions, or the reviewer fixes the issues quickly. Here the developer and the product owner can be given blame, because sometimes the instructions aren't clear enough. Payout should be changed accordingly.
The GitHub plugin What if there were an extension of GitHub (a browser plugin) that let you do the following:
- Connect your GitHub repository to a (company or personal) crypto wallet
- When creating an issue, add a maximum price tag and a deadline
- Issues created by third-parties can't have a maximum price tag and deadline. These should be added by the product owner, if the issue is perceived as legit.
- Price- and deadline-assigned issues show up on a global marketplace where developers can bid on the issue, until a developer is chosen.
- On the global marketplace, developers can browse repositories and see how much the average developer makes per repository.
- Developers can "star" repositories so they show up as the companies they "work for".
- When working on an issue (in a different branch), your coding time is measured (using something like WakaTime).
- When the PR is done and the developer is paid out, the paid sum will be added to his/her profile and the required time will be shown next to it, so the average hourly rate will be calculated.
I think this would be amazing. There are many imperfections that could be improved later, but this is probably a great start to create a global developer network working using a smart contract and blockchain technology.
It will create a more fluid developer market where developers switch companies often based on supply and demand.