Matt's Blog: while { coding }
    Back to Matt's Homepage   |   Hire Matt

30 in 30, a Personal Challenge

I’ll try to step out of my usual wordy style in this post. I’m trying something new. This is not an experiment, exactly. It’s more of an endurance trial.

I’m going to do 30 software releases in 30 days.

To clarify, I’m not starting 30 companies or shipping 30 products. I’m shipping 30 software projects. Some of these projects I’d like to see pay off in some way. Some are for clients. Others are just for fun.

I have a few reasons for doing this. For starters, I never got my Christmas Wish.

For another thing, I’ve been so busy with work and family the past few years that every time I get an idea for a project (even a little one) I have to immediately shelve it. That gets depressing after a while. It also blocks further creativity. When you’ve got a lot of old “coulda/shoulda” ideas floating around in your head it is hard to get new ideas to grow. I’m hoping to exorcise some of those ideas and be free of them.

And frankly, I haven’t been satisfied with my development velocity lately. My inner prima donna has kicked in and I’ve been spending way too much time on how things should be instead of how things need to be to get out the door. In my last “regular job” I was doing late-stage R&D on a distributed system, so some prima donna action was warranted. But as a self-employed programmer that is bad business!

My software development business has recently slowed in the “New” New Economy, so I figured I might as well hone my skills and “sharpen the saw”. And the sword. And those axes over there…

Some thoughts:

  1. It’s not natural to ship software like this. I will very likely fail.
  2. That’s ok with me. The personal challenge and the experience are the main points.
  3. 30 in 30 is an average. Some days I won’t release anything.
  4. What I release will probably look and work like shit until I can refine and polish. No bitching! :)
  5. These won’t be cookie cutter projects. I’ll certainly be reusing code opportunistically, but I intend to mix it up a bit and try some new things out.
  6. I only have about 10 firm project ideas right now.
  7. I will cheat and fight dirty. I reserve the right to redefine terms, be unoriginal, punch your mom, and declare myself successful at any point, even if all signs point to failure.
  8. In fact, I’ve already cheated. I got a head start on this two days ago. I’m rolling out my second release tonight. So yeah, I’m already behind. :)
  9. I’m going to blog brief descriptions of each thing I ship. If time allows I’ll also talk about technical hurdles and miscellaneous geekery.
  10. Tempting as it may be, I’m not going to declare that every single build of a project is a new release. That would be bullshit. Then again I’m not going to declare hard and fast rules about what constitutes a release. Or a project. Or software, for that matter. Feel free to call bullshit at anytime in the comments. Just remember that my blog is not a democracy and we censor like Pravda around here.

Wish me luck!