gitcoinco / skunkworks

experimental laboratory
64 stars 35 forks source link

How do we sustain Open Source Software at Scale #27

Open owocki opened 6 years ago

owocki commented 6 years ago

what

this thread is to solicit ideas for how open source software can be sustained at Scale.

to participate

leave a github comment on this thread with your idea.

criteria

at the end of the day, the criteria for this bounty will be managed by the crowd. to me, a good idea

  1. is backed by fully-baked ideas about incentivization mechanics
  2. is testable via a small MVP, but also has potential to scale if that MVP is successful.
  3. can leverage blockchain in some way.
  4. allows OSS projects with an audience/users to sustain themselves.

payout mechanics

after the bounty expires, i will send around a poll allowing people to vote on which ideas are most promising.

i will payout 70% of the bounty to the number 1 submission, 20% to the 2nd one, and 10% to the third one.

gitcoinbot commented 6 years ago

This issue now has a funding of 0.15 ETH (110.33 USD) attached to it.

owocki commented 6 years ago

https://hackernoon.com/why-funding-open-source-is-hard-652b7055569d

@coderberry probably has some good thoughts on this

some other original research that is quite good:

elioqoshi commented 6 years ago

@jdorfman and @piamancini probably as well.

techtonik commented 6 years ago

The plan is simple. There are two ends:

The rationale was to allow people who don't have money to value other contributions too, and then have third party distribute the funds. That was my agenda, but it didn't take off, because I don't know - I can think and somehow write about it, but can not execute things like @whit537 does. )

techtonik commented 6 years ago

One of the essential components is to donate to upstream projects. But not only for project, but to people who actually contributed to the project. Many years ago I wrote script to dump credits based on commit history - https://sourceforge.net/p/roundup/code/ci/default/tree/scripts/contributors.py - that was inspired by inspired by http://www.red-bean.com/svnproject/contribulyzer/ This could be used to construct initial automated graph of all people in upstream projects, who made you product possible, and then you can give some budget to make it flow to those people.

cryptomental commented 6 years ago

I like the concept of worker in BitShares, see http://docs.bitshares.org/bitshares/user/worker.html The blockchain keeps a reserve pool that is used to self-fund the project using mined coins.

My idea would be to kick-start an OpenSource project backed by blockchain that would self-fund itself. An MVP could be a stock chart application similar to tradingview with pro features being paid by blockchain tokens. People could be paid from the worker pool for developing new features, as well as for indicators or trading bots, or even subscriptions to the bots.

cupOJoseph commented 6 years ago

BLUF: Strong Open Source communities exist, Gitcoin will be most successful by penetrating the most engaged existing communities, not by creating new ones from scratch.

Background Information.

Github recently started a student ambassador program called campus experts. (Hopefully I will be one in the next month or so, just have a bit more training to finish up)

Campus Experts all over the world, and student clubs, host workshops all the time to teach students git. I’ve given 4 workshops on Git in the last year. 2 hosted by the GW ACM, and 2 during Hackital, a 500 participant hackathon in the capital, that I direct. I know similar things are going on at all the tech schools in the world.

The student hackathon community is extremely strong. Github partners with Major League Hacking and many others to offer developer tools for students. MLH does a great job at getting all these different resources out there. Students learn how great they are, provide valuable feedback, and then go on to use them in projects and later use them in industry. Everybody wins!

Last year over 65,000 student devs came to MLH events. Most of them made some kind of software project and used/created some open source project. The events are run by students, collaborate with each other, and form a super strong community that extends around the world.

Sustaining Open Source Software at Scale

Working with eager students today leads to talented developers who are familiar with/use your platform tomorrow. Which is why so much software is free for students, it’s not out of charity. It's because they get great returns from a high level of engagement from high quality devs.

Partnerships

You can’t just call out really loud in the town square, “I made a cool thing, come use it!” and expect a circle to form. But there are a lot of LARGE circles already in this community. Joe Nash runs one with the github campus experts and @MLHacks runs another, and they support each other’s ecosystems. Gitcoin should try to be included in the student developer pack. Gitcoin should contact the CEO of MLH (shy@mlh.io) to reach a ton of students who are learning git and love working on projects over the weekend. MLH can get some kickback for recommending bounties, participants get some ether and ideas for projects.

MLH event participants are perfect people to engage in gitcoin because there is already a very strong open source community aspect in play. Even the tools for hackathon registration, judging, guide, etc.. used by the community are open source and community maintained.

Testing

Come to the next hackathon I run in the spring. Meet a bunch of talented student devs and introduce them to how gitcoin provides incentives for OSS development. We will measure how many students engaged with gitcoin at the event and afterwards. When it is a significant number, we can take these results to MLH. To them, it’s proof that gitcoin provides a value to their event attendees and we can work on a larger partnership with them in more places. In this way we can leverage strong existing communities to scale and sustain gitcoin use.

owocki commented 6 years ago

Another idea was that this mana is being regenerated every week from scratch

This is an interesting concept. The gamer in me likes that its called 'mana'.

Many years ago I wrote script to dump credits based on commit history

I agree its important to compensate upstream contributors, but I feel like its really hard to write a procedural way of measuring the value someone has added to the project. There's such low signal there.

My idea would be to kick-start an OpenSource project backed by blockchain that would self-fund itself

This is an intersting idea.. Some sort of "token sale in a box" product that allows anyone to blockchain-ize their repo.. but without all of the legal, technical, and operational overhead that it involves now.

Gitcoin should contact the CEO of MLH (shy@mlh.io)

I'd love to talk to him. Any way you can hook up an intro @jschiarizzi ?

Come to the next hackathon I run in the spring.

Depending upon other commitments (baby, travel). I'm interested. Meantime, you should come to https://ethdenver.com

owocki commented 6 years ago

@jdorfman and @piamancini 👋 welcome, happy new year

owocki commented 6 years ago

From https://twitter.com/KamesCG/status/948039147947806721 :

As always software is free. The value service is teaching/education.

hat tip @kamescg

tra38 commented 6 years ago

I have two proposals one that is "too extreme" (new cryptocurrency) and another "too conventional" (sponsorships). I'll post them both in separate comments.

New Cryptocurrency

Background Information

The problem is the inability to monetize open source projects and the root cause is a lack of money to spend on open source contributors. If developers had money to spend, they would definitely spend it on open source, but they don’t, and so they won’t. This is why a common proposal to stimulate the economy is to simply ‘print more money’ and hand it off to other people to spend it. If developers feel rich, then they will act rich. You don’t want to overdo it, since that can cause hyper-inflation and ruin people’s trust in the currency, but a little inflation is a good thing.

Another benefit of inflation is that penalizes hoarding. People may think that their cryptocurrency is so valuable that they don’t want to spend it and instead wait for the money to become even more valuable. The cryptocurrency doesn’t circulate in the economy, meaning that less jobs are created and the money is just sitting in an account acting like a "store of value". But if the cryptocurrency is guaranteed to constantly loses value over time, then of course people may be more willing to spend it now. This encourages money to circulate throughout the economy, ultimately creating jobs like "maintenance of open source projects for more than $0".

Sustaining Open Source At Scale

I'll refer to my proposal as SKP (Skunkworks Points). The numbers are arbitrary and are there for illustration purposes.

Year 1 1) 10 million SKPs are automatically created and given to an external entity - call it SKP Governance. These SKP are backed by a pool of ETH...in this case, 10 million ETH. So 1 SKP=1 ETH. Anyone can redeem their SKP for ETH, unlocking the ETH while destroying the SKP token. (For the purpose of this example, let's assume that nobody redeems their SKP.) 2) SKP Governance opens up bounties on different open source issues, with 10% of it being denominated in SKP and 90% denominated in Ether. People accept the bounties, thereby circulating SKP into the system. Here we are treating "resolving open source bounties" as "mining for cryptocurrency" literally.

Year 2 1) The first round of inflation begins. 300,0000 SKP (10,000,000 * 0.03) has been generated and deposited into SKP Governance's accounts. The total amount of money that is in the system is 10,300,000 SKPs.

Year 3 to Year 5

Year Number SKPs Printed SKPs in Circulation 1 SKP = ? ETH
3 309,000 10,609,000 0.942
4 318,270 10,927,270 0.915
5 327,818.1 11,255,088.1 0.884

Additional controls It is also possible to strengthen the currency by adding more ETH to the pool to make up for the increased SKP in circulation, but I advise against it because we want to "devalue" the currency to encourage more spending.

It is also possible to directly change the inflation rate - reducing the inflation rate to reduce loss of trust in the currency, while increasing the inflation rate to stimulate spending. Direct management of the currency, if done properly, can probably lead to more efficient control over the economy. As this requires people to trust the governance board to effectively manage the currency, this may not be an ideal scenario -- and a fixed rate may be preferable.

Alternatives

CSP

Dil Green proposed a non-capitalist cryptocurrency called "CSP", with a governance board constantly printing more CSP and delivering it to coders through an automated process. Once people begin trusting the currency and using it constantly, then the governance board can start creating bounties to further incentivize open source (starting with a ratio of 10% in CSP, 90% in USD).

My proposal is a bit more "conservative" than Dil's in two ways - (a) it is more capitalist-friendly, and (b) it attempts to set the currency on a strong footing first to encourage people to buy into the idea that the cryptocurrency is valuable to start with.

Gresham Dollar

Gresham Dollar is a hypothetical cryptocurrency proposed by Suncho, based on the principles behind Gresham's Law ("bad money drives out good money"). Instead of using inflation to encourage currency circulation, it places an expiration timer on the currency - the Gresham Dollar only lasts for 30 days before being converted into USD...and if a transaction successfully occurs before the timer is up, the timer resets.

GD Governance will then sign legal contracts with certain merchants to treat 1 GD as equivalent to 1 USD, so people will be incentivized to just spend the money at GD-merchants rather than twiddling their thumbs for 30 days. As GDs become more popular, more merchants will sign up, and GDs (the "bad money") will drive out the USDs (the "good money") in circulation.

This enables the GD Governance to print more GDs than they have in USDs as reserves, and as long as the GD Governance board does not run out of USDs to redeem, it can use the excess GDs to implement a Basic Income.

A modified version of Gresham Dollar could also be used to incentivize open source contributions (signing contracts with open-source websites to treat one GD as one ETH...and then constantly hand out GDs to promising OSS contributors in a pseudo-"basic income" scheme).

While Suncho's proposal is an interesting thought experiment, it does seem incredibly complex to implement. In addition, GD Governance is heavily reliant on a "reserve banking system" to be able to generate money. This introduces a source of instability into the system, as the GD Governance system implodes if it runs out of USDs.

As an interesting historical note, GD Governance aims to fund the currency by selling "Future GDs", which can convert to USD upon a pre-specified date. This seems like an early version of an ICO.

EDIT: I previously mentioned that Suncho's proposal is very easy to "trick" - create fake transactions between accounts you control to constantly reset the GD-timer. However, after thinking it over, there's not really much point to creating fake transactions to reset the timer, since exploiting it means you have to wait longer to redeem the GD for a USD. So this "trick" probably isn't really something to worry about.

cupOJoseph commented 6 years ago

Thanks @owocki, if you want to buy my plane ticket I'll see you in Denver. Otherwise, we had ConsenSys at Hackital in November and we're talking about having another ETH hackathon in DC later in the spring. I'll let you know.

owocki commented 6 years ago

@jschiarizzi it might be worth applying either way... i know that the ethdenver team is offering financial support for some hackers' flights

owocki commented 6 years ago

i need to come visit DC again soon. i ran the cherry blossom marathon there like 10 years ago. beautiful city

tra38 commented 6 years ago

Sponsorship

Background Information

Basically, this issue on Bountysource should provide enough background information, but I'll do some elaboration as well to back this issue's point.

Sponsorships are intended for certain OSS projects that require familiarity with the codebase and long-term maintenance, which a single bounty/gig might be unsuited for. In addition, they can also be used to incentivize work on very complicated issues.

Suppose you have a bounty that is valued at $2000 USD for a really large and complex issue. That's a lot of money, and people may want to claim that money. But they know that the issue is large and complex. Either they must deliver the solution (earning $2000 USD) or they spend hours and hours familiarizing themselves with the codebase and working on the issue but gets nothing done (earning $0 USD). Therefore, there's an incentive for people to not even attempt to work on the bounty, no matter how high the bounty is, because the odds of them successfully claiming the bounty is low.

But a sponsorship of $2000 USD encourages people to at least try to solve the problem...knowing that they'll at least get paid for the work they attempted.

Sustaining Open Source At Scale

1) A maintainer opens up an issue - "March 2018 Sponsorship" on Github and then link it onto Gitcoin as a regular bounty. 2) People express interest in the bounty, and then the maintainer picks one of the people (the Contributor) as the person "claiming" the issue. 3) The Contributor works on the open source project for the month. At the end of the month, the contributor provides a progress report to the maintainer letting them know of their progress for that month. 4) Maintainer declares the issue "resolved" on the Gitcoin interface, and then the Contributor gets paid.

Alternative

Chained Bounties

An alternative that was recently posted in the Gitcoin Community Slack chat is to have "chained bounties", bounties that are sub-tasks of larger bounties. If one is able to break up a large issue into smaller and less complicated sub-issues, this might incentivize someone to attempt to work on a sub-issue. They might not be able to solve the mega-bounty that is worth $2000, but they can certainly solve the mini-bounty that is worth $60. In addition, chained bounties may be more efficient in avoiding the "bus factor"...if a developer was to step away from the project after completing one chained bounty, another developer can step in. And if only one person works on all the chained bounties associated with the project, it does approximate a sponsorship-style workflow.

The catch here is that it relies on the maintainer being an efficient project manager, able to break down a large task into smaller tasks that other programmers are able to do. Sponsorships don't require a maintainer to break down a task and is generally more hands-off..."I'll promise you $2000, please do this thing."

If a maintainer is good at project management though, then it's clear that chained bounties may be superior to that of sponsorships.

Elaniobro commented 6 years ago

@jschiarizzi I would be interested in Hackital.

owocki commented 6 years ago

A great example of OSS crowdfunding, raised $74K https://www.kickstarter.com/projects/1681258897/its-magit-the-magical-git-client

kamescg commented 6 years ago

Thanks for the hat tip @owocki :)

tldr: Open Source Engineers need to recapture market value using traditional methods, as it converts from potentiality into reality. In other words, create recurring revenue models via information/education that empower's people to utilize Open Source projects effectively.

The Questions

The first question for me is how do we build recurring revenue models? Where is the money flowing now too now? How can we, as the Open Source Engineers, position ourselves to recapture the market value we're creating?

The second question is how do we empower people to understand, deploy and correctly use Open Source software to benefit themselves in the best way possible? What are the hurdles in emerging markets, compared to established markets? In what ways is Open Source better/worse than alternatives? Can we as a distributed autonomous organization better meet market demand?

Open Source Software is driven by passion. Economic decisions often are not.

We need to convert potentially into reality.

What I mean by that is we need to Educate people how to effectively use Open Source Software to radically increase their value generation for themselves in real and tangible ways.

Tangible Value for People

Let's take https://dether.io (bidding system for regional automatic transaction location hotspot) and https://www.uport.me (self-sovereign identity system) as a duo example.

Those 2 platforms combined could potentially let any business turn their storefront into an ATM or automatic transaction location.

uPort can overlay itself as a go-to, easy to setup wallet, with the additional benefit of identity, which overtime lays the groundwork for incentification systems within that mutual relationship between consumer and local business.

Dether provides a bidding platform, so businesses can promote themselves on the mapping system relative to other businesses in your region for essentially becoming the go-to IRL cryptocurrency vending machine. Combined, they provide an interesting opportunity to empower local businesses for generating income by meeting the high demand for cryptocurrency, but low IRL supply.

Make It Rain

Mid 2019 is probably when we'll start to see worthwhile dApps everyday people actually want to participate in. You would need a starter token (ether) to exchange for the others tokens you need/want to use within those distributed applications. Exchanges will most likely not be good at facilitating this process smoothly for the average person.

Since the software will be free - blockchain and Open Source - we can predict the barrier to entry is pretty low in that regard. Therefore the barrier is not a matter of resources (beyond initial ethers investment), but rather a matter of education and demonstrating how this intangible cryptocurrency can actually help people's lives.

What I think we see time and time and time and time again is people don't really care about the software - people want financial freedom.

  1. Software and user friendly solutions. <---- Free
  2. Education and guidance to deployment. <---- Paid

Let's take Ivan on Tech (https://www.youtube.com/user/LiljeqvistIvan) - He's doing a great job of Education. Education. Education. But of course in the near future he's also launching a paid course. He's speaking to our peeps - the crypto audience. But that being said, an even bigger market probably exists, not simply talking about cryptocurrency, but rather how people can simply just make a living using decentralized systems - cryptocurrency doesn't even have to be brought up.

Proposal

Start the Gitcoin Guild or Internet Engineers Guild DAO - I just like the idea of a guild :) The Guild can help Open Software Developers/Engineers capture potential market value as it converts into realized market value, during the point of transaction. In other words, we need to start thinking like Internet Marketers, in addition to Open Source Software developers. The software is getting built. That's a fact. How well have we engineered closed loop value systems to ensure value creation is reinvested back into the ecosystem? Meeeehhhhh, we could do better.

We build this stuff. Let's just put the finishing touches on and educate more people about emerging opportunities, and recapture market value and redistribute/reinvest accordingly.

The Open Source Software Warriors should start a super DAO to capitalize on the economies of scale (brain power) and coordinate our developer/engineer efforts into recurring revenue information products that demand prices between $50 to $500 and and provide the highest likelihood of capturing value as it converts from potential to reality. Knowledge is power. Power can be shared for a small and modest fee :)

As always software is free. The value service is teaching/education. Provide knowledge/resources for people interested in make money using OSS. The revenue from education projects is streamed back into project/developers/tasks - smart contract ensured.

Will all Open Source products fit into a model that is suited for this type of structure? Probably not, but we can identify high-value targets and ensure those wins are pushed back into the larger community.

kamescg commented 6 years ago

Businesses might need some help/guidance tapping into the larger global market of Open Source Software contributors. Probably relying on OSS Project Managers as a proxy for navigating the developer ecosystem.

Quick Prototype: https://gitcoinguidance.squarespace.com/

  1. Create paid course to educate. <---- Always reinvested. No hoarding. Gitcoin Controlled.
  2. Schedule communication between business. <---- OSS Project Managers maintain relationships.
  3. Align business values/goals with developer time and focus. <---- Get developers/designers jobs.

Hero

Form

Meetup

coderberry commented 6 years ago

I really love all of these ideas presented. Over the past 5 months, I've had the opportunity to talk with hundreds of OSS developers via Code Sponsor. Here are some of the things I've learned through my experience:

  1. Developers typically are financially motivated to build and maintain open source
  2. Developers typically are not willing to take on a tech support role
  3. Developers typically are less interested in crypto and more interested in cash

I really like all the ideas mentioned above. Some may be more difficult than others, but all in all, I think any could work.

Here's my idea.

Nadia Eghbal created a document called the Lemonade Stand. This lists most of the current forms of OSS sustainability that are being done today.

If we were to take each one of those methods and 1) build an education platform to teach developers how to build sustainable code, and 2) create turn-key solutions that enable developers to participate with minimal friction. I'm still new to crypto-currencies and Ethereum, but it seems like using the blockchain for financial distributions would work well in this scenario.

owocki commented 6 years ago

vitalik just published this https://ethresear.ch/t/explanation-of-daicos/465

making a turnkey daico could be an interesting way to support OSS..

owocki commented 6 years ago

@coderberry pasting my comments to you from slack today about this topic (esp RE: your comment was about how ppl want to be paid in USD.. not cryptocoins ):

1) the DAI stablecoin just came out (its pegged to $1 USD)… and is supposed to be quite good.. we could maybe build something off that 2) another consensys spoke has engineered a token called BOLT which is basically just a $1 stablecoin…. and its completely transparent to their end users.. their customers pay in credit card or bank ACH … and they never even know they’re using blockchain https://gridplus.io/

techtonik commented 6 years ago

BTW, @nayafia is also here. )

techtonik commented 6 years ago

@owocki and @coderberry - people don't understand new technology if it doesn't solve their problems. Until they can use tokens to solve such problems (pay for hosting, services, space for living etc.), they need USD.

cupOJoseph commented 6 years ago

Yo, this expired 5 days ago, is there a poll or something?

owocki commented 6 years ago

thanks for the bump

@jschiarizzi @techtonik @coderberry @KamesCG @Elaniobro @tra38 @cryptomental @elioqoshi here is the form to vote for a winner => https://goo.gl/forms/CdltIGakUs1EkoUE2

owocki commented 6 years ago

@vs77bb maybe tomorrow we should ask the community to vote for their choice for the most meaningful contribution!?

owocki commented 6 years ago

@KamesCG wins first prize. @jschiarizzi second prize. paying out now

Elaniobro commented 6 years ago

Congrats @KamesCG & @jschiarizzi and thank you for taking the time to write such well thought out proposals/idea(s). 🍻 🍺 🍻

gitcoinbot commented 6 years ago

⚡️ A tip worth 0.12 ETH ($122.29) has been granted to @kamescg for this issue from Kevin. ⚡️

The sender had the following public comments:

woo hooo

Nice work @kamescg, check your email for further instructions.

gitcoinbot commented 6 years ago

⚡️ A tip worth 0.03 ETH ($30.57) has been granted to @jschiarizzi for this issue from Kevin. ⚡️

The sender had the following public comments:

woo hooo

Nice work @jschiarizzi, check your email for further instructions.

owocki commented 6 years ago

@KamesCG @jschiarizzi DM me on slack if you didnt get an email. (were having some github API issues for this.. long story)

kamescg commented 6 years ago

I'm humbled - thank you. Promise to pay it forward and back into Gitcoin Bounties.

Just curious, what might be the appropriate next step for Bounties like this?

I imagine more idea based bounties will continue - it makes sense to crowd source knowledge. Should contest winners have support via short-term working group (to help build upon the idea) or maybe just pay hosting/domain costs of a new website, so the winning ideas can be more easily shared?

Beyond winning a bounty, maybe incentivize/encourage community support of the winning idea(s) somehow?

And so...

Ask What You Can Do

tra38 commented 6 years ago

@KamesCG, I have some interest in taking leadership on issue #30 ("on demand technical mentorship") in the near future (though I cannot commit to it until I am certain I can work on it). As part of that interest, I've been doing some research into the idea and am writing out a proposal for how I imagine "on demand technical mentorship" to work. I'd be happy to incorporate your ideas as well and kill two (or three, or six, or twenty) birds with one stone. "Mentorship" as a term is a rather generic and abstract concept, so if we know how to deal with mentorship between technical people, we can transfer that knowledge to dealing with mentorship between a technical person and a non-technical person.

owocki commented 6 years ago

Just curious, what might be the appropriate next step for Bounties like this?

I think the next step is to define an MVP and to build it! Of course this is easier said than done.. As there are several substeps associated with this; like doing market research, wireframing, designing, recruiting a team, etc.

If you want to create a seperate github issue for an MVP of your idea, that seems like the next (discrete) step to me.

vs77bb commented 6 years ago

@owocki Not sure whether you want to leave this one open or closed. Claim left open bc you paid out via tip.

Great conversation above. Regarding technical mentorship MVP, I'm curious how this plays out within the Gitcoin community. For example, are the "mentors" Gitcoiners who opt-in to mentorship calls in priv-contributors and are they paid for their help in mentoring? Is this a completely separate "spoke" of Gitcoin, spun out and managed independently by those interested?

gitcoinbot commented 6 years ago

The funding of 0.15 ETH (149.92 USD) attached has been claimed by @owocki.

@owocki, please leave a comment to let the funder (@owocki) and the other parties involved your implementation plan. If you don't leave a comment, the funder may expire your claim at their discretion.

gitcoinbot commented 6 years ago

The funding of 0.15 ETH (149.92 USD) attached to this issue has been approved & issued to @owocki.

tra38 commented 6 years ago

For example, are the "mentors" Gitcoiners who opt-in to mentorship calls in priv-contributors and are they paid for their help in mentoring?

Yeah. Mentees will request what type of mentorship they want, and then Gitcoiners decide whether they can fulfill such terms before attempting to apply. Ideally, the "technical mentorship MVP" would reside on the Gitcoin website itself, and mentorship bounties would be placed in the same UI as non-mentorship bounties, so people can be flexible and switch between the different roles as appropriate. This way, if it turns out that there isn't that much demand for paid mentorship, Gitcoiners can still find work elsewhere.

I don't think the MVP needs to be its own "spoke", at least not right now.

...I wrote some additional stuff here about mentorship, but then moved it over to #27 as it seems more on-topic there than here.

owocki commented 6 years ago

some interesting ideas being posted here => https://github.com/aragon/nest/issues/3#issuecomment-361077656

owocki commented 6 years ago

this is a reallly good article https://techcrunch.com/2018/06/23/open-source-sustainability/