Every civic engagement project should be based on a mission! If there is not mission, what is the purpose? The mission is the bedrock of the project which should guide every subsequent decision, technical and non-technical alike
Once a mission is selected, the first thing to do should always be to investigate previous work done toward accomplishing the mission. For Code for Philly projects, one way to do that is to ask around in the #general or the #project-ideas channels in slack. There are lots of members with long memories who may be able to point toward previous work done on the issue.
Just as an academic who is trying to contribute to a field must be familiar with previous works done in the field, so it is with being a successful open source contributor. Surveying previous work done in the field allows the project to begin from a place of knowledge; lessons can be learned from previous attempts at solving the problem, pitfalls can be avoided, or it might even be found that a working solution already exists which simply needs to be revived or needs more contributors! Furthermore, the spirit of open source is to improve upon existing work whenever possible; this is a major reason why source code is published to places like GitHub.
Once the field has been surveyed for previous work, where to go next depends on the state of previous work.
- If previous work is non-existent or defunct, then it may be appropriate to start a new project
- If previous work is existent and functional or close to functional, then it is most appropriate to become a contributor to the existing work