Skip to content
This repository was archived by the owner on Sep 19, 2018. It is now read-only.
Loren Mullane edited this page Oct 14, 2016 · 16 revisions

Everything developers need to participate in a Pay for Pull Opportunity via the BCDevExchange

###Pay for Pull is an experiment It's an exploration in new ways to do IT development.This is a big departure from how we typically manage our development work; usually we describe development work at a project level in very general terms to get a contract in place. This is a much more granular approach.

This is a brand new process and we are taking a “learn by doing” approach. You can expect that we have a strong desire to collaborate and that we value your time. We expect that you understand that we may hit bumps in the road and that we are committed to making this process a success.

###What is Pay for Pull? Essentially it’s cash for code. Here are the steps:

  1. We label a GitHub issue with a “Help Wanted” and a “$ Amount."
  2. In the issue, we include a user story and acceptance criteria that describes what we want.
  3. You read the issue and ask us questions in the issue comments if needed.
  4. You read the Terms included in the repository.
  5. You add a comment in the comments section of the issue letting everyone know that you intend to work on the issue.
  6. You fork the code and do the work.
  7. You open a pull request with your finished code and add a PayPal payment link in the comments section so we can pay you.
  8. You include a copy of the Terms with your completed information.
  9. If we merge your contribution, we’ll pay you via PayPal.

We will evaluate each pull request and choose the best solution to the issue based on the acceptance criteria. This is a somewhat subjective process and we want it to be engaging rather than competitive so we encourage comments and questions in order to work collaboratively towards the best solution.

In a nutshell, we are talking about using a single GitHub issue to pay for work done in single pull request. To avoid complications like custom applications, reverse auctions or registrations, we use GitHub, PayPal and flat rate payments.

###How does payment work? The technical contact will notify you via the GitHub comments section on the Pull Request if it will be merged (accepted) or closed (rejected).

If your pull request is merged, you will receive payment within 10 business days via your PayPal account (Note, PayPal fees may apply to the payment).

###How open is this? We’re aiming for 100% open. Openness is a hallmark of the Pay for Pull process. We’re working with open source code and open collaboration tools and ensuring all of our communication about each issue is open for anyone to access. Our goal is to support a transparent process from end to end. We also think developers will appreciate being able to reuse the code they submit if it is under an open source license.

Get set up in GitHub

There are awesome resources available on GitHub that will help you get familiar with the mechanics and lingo used on the site. Here's some key resources to get your started:

###Get set up with PayPal If you want to get paid for work on a Pay for Pull issue, you will need a PayPal business account.

Once you have your PayPal Business account, you will need to create a “Pay Now” button/email link and set the $ amount to the the fixed price label included in the GitHub issue (e.g. $1000). Remember, we work in Canadian dollars.

Who can participate in a Pay for Pull?

Pay for Pull opportunities are open to all developers. So, unless you have a conflict of interest which could occur if you were involved in developing the opportunity or have a personal relationship with the technical contact in all likelihood you’re good to go.

###What are the Terms of the Pay for Pull transactions? The Terms set the rules for participation in a Pay for Pull, including how you’ll get paid if you are successful. You need to read, accept, and include the Terms with your pull request.

The Terms require the government organization issuing the opportunity to review pull requests in the order received and to make payment decisions based on the acceptance criteria in the issue.

For the developer, the Terms outline the process and your responsibilities, including confirming that you have the right to submit the material in your pull request.

Other important considerations in the Terms you need to know include that there is no obligation for the issuer to make an award and that the issuer can modify or close an opportunity at any time.

###Finding Pay for Pull opportunities on the BCDevExchange We are setting up a page on BCDevExchange.org to list the Pay for Pull issues in a central place. They will also appear on various profile pages on the BCDevExchange website.

###Asking questions about a Pay for Pull To make sure everyone has access to all the information being exchanged, we’re using GitHub to facilitate all Q&As related to an issue. Post all questions you have on a Pay for Pull in the issue by using the comment function in GitHub. The government technical contact will respond there.

If you have a question about Pay for Pull in general, open an issue in this repository – we’d be happy to answer.

###Notify us you are working on a Pay for Pull We want to build a community of developers contributing to government projects. To keep people engaged we want participation in Pay for Pull opportunities to be a positive experience.

If you intend to work on an issue, please notify everyone by making a comment in the comment section of the issue. The intention is to help others see who else intend to work on the issue.

###Does a Pay for Pull have a submission period? Some Pay for Pull opportunities will remain open for a certain period of time, while others will remain open until the issue is resolved. If there is a time limit for considering pull requests, it will be identified in the issue description.

Clone this wiki locally