A Code Jam is a short event where computer scientists program for social change. A lot happens at these events, and because these events are so short, we need to make sure that projects are a good fit: even a little bit of wasted time can hurt the event.
If you believe that you have a project that meets the guidelines below, apply.
- The project should not directly interact with an existing code base. The best projects are completely new. Projects that are new modules for an existing system or that are based off of a well-defined API work fine as long as no knowledge of the existing system is necessary. Fixing bugs in or adding features to an existing system doesn't work well.
- Make clear deliverables. If you want the programmers to check their code in to your repository, tell them so and give them the necessary permissions. If you want the programmers to edit your live web site, tell them so and give them the login and password information. If you don't think about how they'll get the code to you in a way that you can use it, it probably won't come to you in a way that you can use it.
- The project should be small enough to finish during the event. One idea is to have the programmers make prototypes or proofs of concept. Another is to have different milestones so that even if they don't finish everything, they still will have finished something that is useful to you.
- The project should be clear. Someone with no experience in your organization will be working on the project. If anything is unclear, there is a good chance that they will implement somethign that is not very useful to your organization. You should be as specific as possible. One thing that helps is making pictures of the interaction flow.
- Someone from your organization should be available at the event.
- There are a lot of different projects that work. Above, we provided some guidelines to help you make a successful project, but there isn't one right or wrong project. If you have a question about whether or not something will work, just ask us!
If your project already has an existing code base but you feel like a Code Jam is the best option, there are some things that you can do to make the project work out better.
- A technical person from your organization should be available to the programmers during the event. They should have experience with the code that you expect people to work on during the Code Jam. The reason for this is that it takes time to get oriented with a code base, and a Code Jam is not the right time to get oriented, so someone needs to show the programmers around and answer their questions.
- You should create a new virtual machine and do everything necessary to get the project set up. Then, you should save the virtual machine disk image and make it available for the Code Jam so that everything will be set up instantly. That means that if you have code for an Android app in a Git repository, you should get Git, Eclipse, and the ADK installed, and you should have a working build. A Code Jam is not the right time to deal with set-up issues.