Rethinking Coders

From FreekiWiki
Revision as of 14:21, 25 January 2005 by Rfs (talk | contribs) (→‎Some problems)
Jump to navigation Jump to search

Comparison with the Build Program

I often compare the Coders program with the Build program as a start to figuring out what might work better for coding at Free Geek.

In the build program, volunteers:

  • can sign up for any of nine shifts per week
  • need to work at Free Geek
  • trade time building and QCing in exchange for something (often a computer, often skills)
  • go through a Prebuild program where they are exposed to skills they'll need later on
  • in prebuild, folks sometimes realize they're in over their head and drop out
  • once you teach someone how to build a computer, they (basically) need to repeat that task several times

In the coders programs, volunteers:

  • can come in once per week, but can work on their own time
  • can work from home or elsewhere if they choose (though some things need to be done at Free Geek)
  • trade time writing code in exchange for skills
  • don't go through any prerequisites program
  • sometimes realize they're in over their head and drop out while coding
  • once you teach someone how to write a program, they cannot repeat that task several times in any kind of a useful way

The build program is quite successful at involving a lot of volunteers at Free Geek, while the coders successer are much more modest (and that may be putting it charitably).

What motivates volunteer coders?

  • Some people want to learn useful skills
  • Some want hands on experience
  • Some want to teach others what they know
  • SOme just want to help out

Some problems

  • Projects move very slowly -- way more slowly than expected.
  • People who are the impetus for starting a project often move on before it's completed.
  • Volunteer coders often implement changes without much coordination, leading to incompatible code.
  • Entire projects are abandoned (or at least forgotten)
  • New coders are often overwhelmed by the learning curve

Some analysis

Some conclusions