Skip to content

2. Qualifying Projects

Abbey Jackson edited this page Jun 19, 2017 · 21 revisions

General Requirements

CodeDoesGood is committed to solving real problems in the world and building non profit software.

Anything and everything that solves a real problem in the world in absolutely any niche market or industry would be a qualifying project as long as it is either not for profit or it is a product being built for a non profit organization. Products that we build for non profit organizations may be designed to make a profit as they may be a fundraising tool for that organization.

  • Social Welfare
  • Animal Welfare
  • Disaster Management
  • Community Arts
  • LGBTQ / Gender
  • Homelessness
  • Law
  • Child Development
  • Environment
  • Immigration and Refugees
  • Civic Issues

Basically anything you can think of!

In addition to the above, Eligibility Criteria is outlined for projects that we build for non-profit organizations (clients).

Requirements for ALL New Projects

We believe every human on this planet should be treated with dignity and respect and should be extended the same basic rights as each other no matter their race, nationality, sexual orientation, gender, ability/disability, or cognitive level. We reserve the right to limit the organizations we work with for any reason but especially if they are involved in any actions, projects or promotion of values and beliefs we deem anti-humanitarian, regressive, or harmful to the environment. We will additionally not provide services for political or religious based projects and reserve the right to not work with a political or religious group even for non-political and non-religious projects.

What Qualifies

The requirements below apply to suggested projects and community generated projects only. Projects that come to us from clients (non-profits) do not need to follow these requirements (with the exception of not exposing CodeDoesGood to liability - CodeDoesGood will not build projects that expose CodeDoesGood to liability).

  1. Be Specific in Scope / Identifies a Need
  2. Be Limited in Size
  3. Not Be Reliant on a Large User Base
  4. Does Not Expose CodeDoesGood to Liability

Note: Sometimes there may be some really great ideas coming from our community members which we will not be able to implement because they will be out of scope (not adhere to the above list of requirements). If you come to us with an idea and we ultimately decide that it is outside the scope of CodeDoesGood, let's keep the conversation open -- maybe there is a way WE can help YOU make your idea a reality!

Be Specific in Scope / Identifies a Need

When you are thinking of ideas think of their components, think of how they can be broken down. These components should identify a single need each.

If that doesn't help, think of it this way: Can this large idea be split into 5 or 6 versions? Or are there pieces of it we can build as open source libraries and later put together as a whole project?

We want our projects to address a specific need and solve a real problem. Most problems are made up of many smaller problems. It is these smaller problems we want to tackle.

Be Limited in Size

CodeDoesGood projects are staffed by volunteers. A project may only be receiving 15-20 hours per week of development time per platform even though each platform may be staffed by 4 people. As outlined on the Low Cost Software for Non Profits page projects must be small; with larger projects being custom-priced as they may require paid staff to complete.

Community generated projects and suggested projects must be small. In the future we may have the infrastructure to support larger projects but for now they must be small. Generally speaking if the project idea satisfies the first requirement of being Specific in Scope the resulting project will be small.

A general rule of thumb to follow is we should aim for projects which would take an experienced developer 1 month (4 weeks) to complete. A project of this size could be a 6 month project at CodeDoesGood. For an explanation of why this could be the case please read our Project Timelines wiki page.

Not Be Reliant on a Large User Base

Apps and websites which require a large user base also require a lot of infrastructure to maintain. Money and time must be put into marketing to grow that user base so that the app does not die, time must be put into addressing user needs and customer support, there are liability concerns with content and user actions being moderated which also cost both time and money.

Even though these projects may not be revenue generating, projects which require a large user base to be successful or provide value are essentially start ups, not software. CodeDoesGood builds software, we don't build companies.

It's very easy to think of these kinds of projects because almost everyone can think of crowd-sourced information they would love to have their hands on or ways of doing a new kind of social sharing or social networking. Unfortunately these kinds of projects are companies in themselves and are out of scope for Code Does Good.

Does Not Expose CodeDoesGood to Liability

CodeDoesGood does not have the resources to own products which may expose the organization to any sort of liability concerns. While there are some really great ideas out there revolving around safety or medical uses, CodeDoesGood does not have the infrastructure to ensure the safety of users, nor to protect itself in court against liability charges.

If someone could be hurt in any way from using the product it is out of scope for CodeDoesGood.

Suggestions & Community Generated Projects

Remember that ultimately CodeDoesGood is a non profit with open source policies, not an open source community. We have goals and initiatives that we are striving to meet. Mainly we want to build software for very little cost for non profits who otherwise could not afford it. We can do this by having developers volunteer their time in exchange for mentorship.

CodeDoesGood is focussed on building software for non profits but we also welcome suggested projects and community generated projects.

Suggested Projects

A suggested project is a project that comes from outside CodeDoesGood but does not come from an organization. These are projects that individuals have an idea for but do not have the resources to complete. For example maybe in their city they have recognized that a pothole reporting app would be helpful but they don't know how to build it or they can do one platform but not another and they want our help.

Details of ownership, future support, and customer service for each suggested project will be determined individually however in general suggested projects will:

  • Be published under CodeDoesGood developer accounts on iTunes and Google Play
  • Be maintained by CodeDoesGood
  • Be expanded (new feature development) by CodeDoesGood
  • Be attributed to the individual who made the suggestion
  • Have customer support provided by the person who made the suggestion

Each of the above items is negotiable. For example if the person who made the suggestion possesses the ability to do feature additions themselves that could be arranged. Or if the person who made the suggestion is someone for whom having the app published under their own accounts would be favourable (for example a local activist or a community leader) then that can be arranged also.

If the person making the suggestion wants to be part of the project development they are welcome to join us as a volunteer! Please note you are not in charge of the suggested project. You will not be placed as a Lead Mentor in most scenarios as Lead Mentor positions are usually staffed by volunteers who have done at least one prior project with CodeDoesGood. If you want to be on the team though we can make that happen, at the level which you come into CodeDoesGood at (either a mentor or a Hatchling). This level is determined by your self evaluation combined with our evaluation of your previous experience and code samples.

CodeDoesGood is a community and if you are suggesting ideas to the community you need to learn how to let go of control and trust your team. One of our guiding principles is to encourage collective decision making and this is no less true in this scenario.

Community Generated Projects

We have an absolutely amazing group of volunteers. When we first launched we put a call out for volunteers and within 3 days we had more than 60. A week later we were up to 120. People want to help! They want to help their community, they want to help others in the world, they want TO DO GOOD. They are overflowing with ideas and we encourage community generated projects

On Slack we have a #project-ideas channel, please jump in there and participate! Throw ideas around!! Even big ideas. Be the critic and point out issues but be kind and open minded about proposed solutions. Use the community you are part of to generate really great ideas we can build and put into this world to solve real problems.

If your idea is a big one, that's ok! Write it down anyway, ask the community if they have any ideas of how to break it down. Let the conversation wander, let it diverge. Maybe your big idea will turn into 3 or 4 smaller ones. Or maybe you will abandon it altogether when the conversation takes a turn that introduces you to an idea you are even more excited about!

Community generated projects will:

  • Be published under CodeDoesGood developer accounts on iTunes and Google Play
  • Be maintained by CodeDoesGood
  • Be expanded (new feature development) by CodeDoesGood
  • Be attributed to the CodeDoesGood community as well as the volunteer(s) who had the original idea and/or were heavily involved in ideation.
  • Have customer support provided by CodeDoesGood

Volunteers who were involved in the development of the initial idea will have their choice of whether they work on the project or not. Please be aware this does not mean, if you are at a mentor level, that you will be automatically put in the Lead Mentor spot. This project will be staffed as all others are, the only guarantee is that you will be on the team if you want to be on the team.

CodeDoesGood is a community and if you are generating ideas with the community you need to learn how to let go of control and trust your team. One of our guiding principles is to encourage collective decision making and this is no less true in this scenario.