The utility of side projects

When I look back at all the side projects I've built post college, after you know, "starting my career," I have the following:

  1. A local resources app for learning (my first rails app) that never launched.
  2. A weight lifting tracking application - that partially launched (reached about 300) members, before I took it down.
  3. A task management app - I finished, and then decided it just wasn't right. Never launched. It was also my first app to utilize highcharts.
  4. A trading application (80% done - will revisit in the next few years), and my first app to utilize KnockoutJS & Resque & Stripe.
  5. An app for remotely managing error pages, and my first app to utilize AngularJS. This one launched - 404engine.com.

I've been out of college 5 years now, so I'm creating these things at a rate of about 1 per year, which certainly isn't bad. 

The obvious problems

  1. I'm not launching enough of these.
  2. I'm doing absolutely no customer development.
  3. I'm not getting paid.
The value is much higher
  1. Each one of these exists in git as a portfolio piece
  2. Each one taught me to be a better designer
  3. Each one taught me to be a better rails coder
  4. Each one taught me to be a better javascript coder
  5. Each one taught be to think about XYZ market differently
  6. Each one taught me how to embrace new technology
  7. They all gave me massive experience on both ends of building an app (design to backend)
  8. They all increase my value to any employer
  9. They all increase my confidence
  10. They increased my skill set.
  11. They take initiative.
  12. They teach me about solving my own needs.
  13. They teach me about solving needs that never existed.
  14. They teach me about failure.
  15. They push me to be better.
  16. They set me apart.

Developers who say they don't know design, are simply developers who haven't failed at design enough times.

I went to school for business. Yet I'm paid to be a user experience designer/engineer and developer. I get to work in photoshop, HTML/CSS, Rails, & Javascript every day at work - and its incredible. I'm extremely confident in what I do - a formal education in CS or design may have provided a different foundation to let me move faster, but it can't touch years of just trying shit out.

The first web site I built, I was 12. Today I turned 27. So 15 years ago, I made a site on Angelfire called, "Jack from the moon's galaxy" - it was based on an inside joke from summer camp. The web site had links to pages I liked, and an image for the movie "Idle Hands" which had been my current favorite. And it of course had a counter. It looked like dog shit.

The next web site I built also looked like dog shit, and so did the next one. But they looked a little bit less like shit each time. I was never a naturally good designer. I love that. I have no emotional connection to my designs. I want them to look good, and want to love them - but if they're ineffective, and user's don't like them, I want to throw them the fuck out and start over. Good design for me, is iteration & testing.

This has been exactly the same with every project I've taken - personal, freelance, career - every project I should be getting better as a designer, coder, business guy, marketer, etc. Every project is just the next iteration of myself.

And thats how side projects should be viewed:

  1. Yes, try to at least have a business model.
  2. Yes, at least think about customer development
  3. Yes, try to get paid
  4. But do it for the experience
  5. Do it to learn
  6. Do it for fun
  7. Do it to be better