Programming for Impact

One of my ambitious goals for the year is to take on 12 programming projects.  The projects I’ll undertake for this challenge have a couple of requirements:

  1. It should be something that I can complete in 1 month of calendar time
  2. it should take less than 40 hours of effort
  3. it should ideally challenge me to learn something new
  4. it should maximize impact for someone other than myself

Trying to think of project ideas that can have a big impact with less than 40 hours of effort is not easy.  Luckily Kenneth Reitz serves as a model for how to accomplish this.  He is best known for authoring the awesome requests library, which is ubiquitous. Over the last while he’s been on a tear.

  • typy.io – a service for sharing text snippets
  • pipenv – a wrapper that combines pip and virtual envs
  • maya – datetimes for humans
  • saythanks.io – a way to send thank you to open source developers

These are potentially high impact projects compared to the effort required to create them. It’s something that I will try to replicate this year with my own projects and an approach to open-source development that I wish more people took.  Flooding the community with high impact contributions enriches us all.

Impact can be a trade off.  A large impact can come from a small improvement for many people or a large benefit for a small number of people. And of course these are all relative to what leverage you have to help.  The audience that Google can have an impact on is vastly different than the number of people I can reach. So I’m trying to be realistic about what kind of impact a 40 hour project can have.

Optimizing for impact seems to be a great goal.  It re-frames the importance of a project; If I could do something in 40 hours that would double someone else’s business it might be a worthy project to consider.  If I could contribute a wrapper for an API that is used by 1000s of developers it could have a wider impact.

Scratching your own itch is the common motivation for open-source development, but in a sense it is inward focused and self-serving. In a world where we increasingly don’t talk to our neighbors or contribute to our communities doing things to help others sounds radical.

Be radical, make an impact.