CEO
Mintycode
DevRelCon London 2023
In a world where open source developers are often unpaid hobbyists, Tatiana, the CEO and founder of the Mintycode IP Marketplace, presents a compelling solution to motivate and incentivize these contributors through reward strategies. Discover how to shift the mindset of developers from competing for jobs to becoming open source entrepreneurs, creating valuable projects and earning money in the process.
Ben Greenberg:
We are so delighted that Tatiana is here. If you saw in the schedule, this is not raha, this does not look like raha. This is Tatiana. Tatiana made this presentation for you in this room. So this is not a lot of us in the DevRel field. If we called on to speak last minute, we may. Okay. We’ll go back in our archives and we’ll find something and we’ll pull it out and it’ll be fine. No, this is not good enough for Tatiana. Tatiana created an entirely new presentation just for us at DevRelCon last minute. That’s an incredible testament to the value she sees in this team, in this community, in this conference. So really just can you give a standing ovation to Tatiana as she talks about success through incentives. All yours?
Tatiana Botskina:
Yeah. Thank you everyone. It’s a pleasure to be here. My name is Tatiana. I’m CO and founder of minko IP Marketplace for software creators. And today I would like to talk about reward strategies for open source communities. We all know that we all depend on open source components. 99% of new software projects rely on open source components, but open source developers are not happy, especially if they’re not rewarded fairly for their work. To ensure that your project will survive, you need to motivate and incentivize your community. But how do you do that? To plan your reward strategy first you need to analyze your community, understand who these people who contribute to your community and why they’re doing that. Understanding their motivation will help you to define those reward strategies that will be most suitable for this type of maintainers who are most active in your project.
And then when you identify available rewards, you can select relevant incentives for your community to understand and analyze your community. What you can do, you can do surveys. For example, this survey was conducted by TideLift. They surveyed over 300 maintainers of open source projects and what they found was very interesting. First of all, they asked how they describe themselves maintainers and 60% of maintainers describe themselves as unpaid hobbyists. But what was more interesting is that 40% of them, while they don’t expect to be paid, they would appreciate to get some reportal payment for their work. What does it mean? That means that in addition to over 30% of people who contribute to open source and expect to get reward, there is additional for which is 6% of people who would appreciate to get reward. What does it mean? It means that majority of people who contribute to open source, they want to get reward and payment.
So why do people contribute to open source? There are three types of categories of motivation behind contribution to open source. The first type of is intrinsic motivation. What does it mean? So according to this research that I cited before, 80% of people would like to contribute to open source just because they enjoy doing that. It’s creative and challenging work for them. They would like to learn and be part of the community. Another reason why maintainers contribute to open source is because they want to get paid and that’s their main motivation or they want to have some public visibility. They want to improve their reputation, receive recognition. And the third reason why maintainers would like to contribute to open source is because they want to contribute to public good. What is interesting here, according to the recent research, we see more people who would like to get paid for the work in comparison with three years ago. Right now, according to the survey that TIV conducted, there are 40% more people who would like to get paid for contributing to open source.
So what type of rewards can we offer for intrinsic motivation? This motivation is all about autonomy and relatedness. When you contribute to open source, what do you want? You want to ensure that you have a freedom to select the project you would like to work on. You work on what you like and how can you reward people who are incentivized by this type of rewards? First of all, you need to ensure that you share ownership with them. You give access to your repository, you accept their pull requests and you encourage impactful contributions. You can also give some additional additional rewards such as access to free webinars, courses, conferences to improve their sense of belonging to the wider community of contributors. What type of rewards for extrinsic motivation are available? There are a lot of back BS platforms. These are platforms where you can find the back and receive payment for that. Also, you can reward contributors with paid features and requests and you can create different awards and testimonials to show public appreciation for their work.
What type of rewards are available for altruistic motivation? What does it mean? Altruistic is generally for public good. What does it mean? It means that even if maintainer or contributor is not enjoying the work they would like to contribute, even if it’s hard work for public good to make it the project better for everyone. What type of rewards available there they are donations. Hackathons is also one of the good ways to create challenges that inspire people to work on very important public problems and community grants. So let’s go through into detail, into every single type of reward, especially one that involves financial motivation with respect to donations is one of the worst ways how you can reward your community. Why? First of all, while it’s good for altruistic purposes, if you contribute in form of donation, it means that you don’t care how these funds are used, but it suffers from lack of visibility.
It means that you don’t know how these funds are used. It does not mean that the project will still survive and will be maintained and there is no obligation or responsibility on the side of the recipient of this donation that they will continue to work on this project. Which platforms are available right now to do donations or sponsorship? It’s GitHub sponsors. It’s a very convenient way to donate to open source contributors, but as I mentioned before, there is no any visibility on how these funds used. Another way, how open source contributors are trying to monetize and get some payment for their workers. Open source collective. It’s a platform where they can also create a personal page and describe different categories with different amount of donations. Grants. Grants is a little bit better in terms of financial motivation. It also suitable for funds in public good, but grants, they have two main challenges.
The first challenge is allocation challenge. When you create a grant, you need to define criteria on how you will allocate this funds because generally how grants work, you have a pool of money that you would like to allocate for solving specific task, but that can be solved in different ways. What does it mean? It means that you will have a group of competing teams that would like to compete for this grant and you will need to evaluate the way how this which team is the best to solve the task. With respect to evaluation challenges, it’s also very difficult to evaluate the results. If the grant is distributed in advance, then at the end it’ll be much more difficult to get it back if you did not receive the result that you expected to receive. Grants often received a high adaptation in blockchain space and in blockchain space there are two types of very interesting methods and the way how blockchain and technology tried to solve these two challenges.
Allocation challenge and evaluation challenge. So the first type of grant allocation is called quadr finding. And so the company that was using this type of finding was called GI Coin. So the main idea behind quadratic finding is that you allocate more resources to teams with small contributions, thereby you incentive wise teams where people collaborate and work together more. Why it’s good, it’s good because we incentivize more contributors and collaboration. Why? It’s bad? Because the total amount per maintainer is very low. What does it mean? It means that this incentive may not be sufficient for them to apply for this type of grant. Another interesting type of grant that exists in blockchain space, it’s called retroactive public goods finding. And the idea behind that that it’s quite difficult to allocate funds based on the idea what will be delivered. It’s easier to allocate funds when you know what was done and whether it was good or bad for public good of a final goal. So that’s why the way how this funds works, the funds, while the funds are announced in advance and there is a matching pool, so you have an estimation of how much you can receive, but the funds allocated at the end of specified period of time when you already submitted your project. And it’s possible to assess the effectiveness of your project.
Bug boun. Bug bounties is another way. How you can reward your contributors. Why are bug bountis good? So first of all, it’s very good financial motivation. It allows you to resolve issues quickly and attack them quickly. And it’s quite focused contribution. You know how your funds are spent. But the problem with bug bounties is that they’re not transparent. What does it mean? It means that you cannot estimate in advance how much funds you need to allocate to resolve the issues. The same applies to people who apply for boun because if they detected an issue, they don’t know if they will be awarded this specific amount or not and what amount they will be awarded. Platforms for bug bounties Hacker one background, there are plenty of them. They are primarily designed for backbones related to security vulnerabilities. But this space is quite much broader, right? Because there are many other ways, many other not necessarily very significant vulnerabilities that you may have in your project.
That’s why these platforms are not designed for a smaller box and some issues that you have is your project. And this third way for sponsoring your open source projects is sponsored issues. So this is a completely new way of supporting contributors and maintainers. And this way is good for bosses, it’s good for maintainers because they have a full transparency of what they will receive and it’s good for people who fund this type of maintainers because they understand how these funds are used and why they sponsor this type of issue. So this type of sponsorship and rewards, they motivate financially, maintainers, they’re transparent, it’s a focused contribution. And now what we expect, so one of the platforms for that is Mintycode. Mintycode helps software creators to sponsor different issues and box whether big, small. So how exactly does it work? You go on our website, you can search for any open source project of your interest by keywords or owner.
So whether you integrated with GitHub and you can create priority support request or issue request and suggest your price. You specify what is important here and what we try to achieve. We try to make it as specific as possible. It means that for you when you make a support request, a feature request, you specify due date when you would like to receive the result amount, you would be willing to pay payment terms, pay later and escrow. We give a full flexibility on you finding your payment terms. You probably heard about Bounty Source. This platform, they primarily worked on an escrow basis. So in our case we allow to pay later. It means that your funds will not be stuck anywhere and there are no intermediaries who are managing your funds. And you can also create a GitHub issue. It means that it’ll be visible as a sponsored ticket provider community. And then what is important here is that you will be able to see the full list of support requests and available rewards and then you can prioritize your work and work on them based on your availability. Let’s empower open source communities with fair rewards. That’s it. I’m happy to answer your questions if you have any questions.
Audience member 1:
I have a question for the context. The economy is not very good at the moment and time and time again I see people competing for one place. Let’s say you put a job at advancement in New Daily, you’ll get thousand people in a week for Java developer easy. And how do we change the community that they understand that instead of competing for the jobs, they can actually create an open source project which brings value to the community and they can earn money from that. It might be not as big a salary in Microsoft in the beginning, but I don’t know, it might be something promoting some project with local timetables, recipes might be cool. Assembly code, I dunno, but it’ll be your project and you’ll earning money, you’ll become open source entrepreneur. But how do we shift the mindset of people that they actually start doing that?
Tatiana Botskina:
Yeah, so this is great question. I think here what we need to understand is that we are moving to the world of creators from the world of big corporations to the world of individual creators. And right now what we need to create is we need to create sustainable ways of contributing to open source right now. That’s why it’s important to explore different ways, different monetization strategies. If you create your open source projects, it means that you can monetize it through different ways. You can sell priority support, for example, through Mintycode, or you can sell custom licenses while keeping ownership or you can incentivize people to contribute to your project and then share ownership and future roles with them. So there are different ways how people can monetize their open source projects. And right now we need to ensure that we have enough sufficient number of different platforms and tools that enable this need for individual individual work.
Audience member 2:
Essentially. My question is around how do you ensure the quality of the submissions and the double-edged sword there is or sort of a contribution obviously. I mean double-edged sword is that if I spend a long time on a PR and I contribute and it gets rejected, then I’ve wasted a lot of time. How can we have systems that make this experience better for both curators and contributors?
Tatiana Botskina:
Yeah, so this is really great question and the big problem in community right now because you work a lot on the project, on the issue and then it’s rejected. So what is important here is important to ensure that we don’t work in centralized system where only one person is making decision. So what is important here? It’s important that we involve more people. It means that this decision making process should be open to wider community who are using the project and based on that they can vote and decide if they believe that your contribution had a sufficient quality and should be accepted. So I think the main challenge right now is that most platforms, they are centralized and even GitHub is quite centralized platform. It can even block your account. So that’s why it’s important to build communities and give some freedom to communities and give them power to decide and collaborate together.
Audience member 3:
Thanks. Just out of curiosity, what’s the business model here? I mean who’s paying the contributors or the open source code owners?
Tatiana Botskina:
So a business model here is a small transaction fee for a min code. It means that, so this will be taken from the value of your support request, a small transaction fee, and in our case, support requests are created by buyers. It means that if you have a problem and you are happy to pay for it right now, you can create sponsor ticket and ask owners maintainers or wider community. You can make a selection whom you want to make it visible and available with allocation and they can reject or accept what it means. It means that we allow sort of negotiation on our platform. It means that while you make them aware how much fine you have to solve this issue, they can return back to you. They can reject your proposal with a note and they can specify another price. It means that you have higher flexibility. It’s completely different from grants or balances where there is a fixed amount and you can select whatever is available. What we want to do, we want to give more, want to give freedom to community members and platform for collaboration and discussion and negotiation and management in one place. It means that it’s not, while it’s driven by the buyer’s demand by the person who is willing to pay and who would like to sponsor issue maintainer can also respond to that with their counter offer.
Ben Greenberg:
Good question. Yes, and that’ll be the last question. I believe.
Audience member 1:
I really like the question about the rejected pull request because that happens. And do I understand correctly that in minko you actually use this different model where the payment goes not to the person who implemented, but it goes to the community, to the repository owner and that you trust that community’s healthy and it knows how to distribute. So for example, maybe it’s the person who fix the stuff needs the money, or maybe you need to buy service or maybe you are reaching, you work in Nepal and you would rather prefer to buy some T-shirts for your community in India. Is my understanding correct or
Tatiana Botskina:
Yeah, so you are correct. So on min you quote, you can define where who will see this reward. So by default it’s available to report owner only. It means that they will have access to this unique monetization channel, but if they’re not very responsive, this request will be available to public only. So they will be able to see it and resolve the issue privately. So what also important here, it means that it’s not directly. While of course we want, you want to ensure that your contribution is seen. Sometimes what is important is that it just works for your needs. And that’s why on minko, if you create support request, so it is just between you, between maintainer and between person who is requesting help and support. And it means that it’s not necessarily should be linked to GitHub. So if you resolve the issue and they can use it privately, you will still get your payments. So it’s not related to acceptance and you reject of your pull request.
Audience member 3:
It’s just a quick one. Hi. Does it work the other way around? So can I create a support request from a GitHub issue?
Tatiana Botskina:
So that’s a good question. And here what I did in past, what you can do, you can just create a support request and because here it’s a free form. So you can enter anything, you can create a link to the issue and say, I would like to sponsor this issue and just put your L there. So then you don’t need to just scrap it, but then you need to accept the fact that someone may resolve it and not get payment. Only person who will accept it through a platform will get a payment. So that’s how it works on the platform. But technically yes, if there is already existing issue, you just attach it as attach the link to this issue and then it’ll be shown on GitHub as additional sponsor ticket for that specific issue.
Ben Greenberg:
That was the exact same question. So you answer two questions with one answer. That’s an incredible skill. Thank you Tatiana, once again for a great presentation. Thank you. Thank you.
Tatiana Botskina:
Yeah, thank you. Connect with me on Twitter Telegram and yeah, you can email me for any questions if you have any questions. I’m happy to collaborate. Thank you.