Information Technology Dark Side

Struggles of a Self-Taught Coder

Information Technology Dark Side header image 2

Sharing My Code Feels Like That Dream Where I Show Up at School in My Underwear

July 17th, 2010 · 2 Comments

Lately I’ve had a couple of people volunteer to help out with TroopTrack. These are usually scouters who are also programmers. One of them is also a designer with a lot of Rails experience – I find that really, really exciting because there are plenty of places in the TroopTrack UI that make me want to put my fist through my monitor.

I was thinking about these requests and feeling a little embarrassed by the notion of nearly complete strangers poking around in my code. Some of the code really, really sucks. That’s a bit humiliating to me. Also, there are hardly any tests, which is a complete embarrassment given I’m a freaking tester.

The fact that there aren’t many tests is also a total hassle, as it means a lot of regression testing for me whenever I change something. It also means an unfortunate number of regression bugs as well, which drives my users insane.

When I think about other Rails devs poking around in the code, all sorts of insecurities kick in, but mostly it boils down to two things:

1) What if they decide I’m a crappy coder?
2) What if they decide I’m a weak loser when I blame some of the bad code on other people?

Ah, well, it’s nice to have insecurities sometimes to remind you that you’ve still got plenty of room to grow.

So, specifically, here’s my TroopTrack dirty laundry. This is the stuff that I find emabarrassing:
1) Some of the controllers are still not RESTful. I’ve converted most of them, but a couple are still crazy.
2) The home grown authentication really sucks. It needs to be ripped out and replaced with AuthLogic.
3) The before filters for limiting access based on roles are inconsistent and out of control.
4) The UI metaphor is inconsistent.
5) There are a few places where cascading deletes were implemented in the database
6) Just plain crappy code and missing tests, as I already mentioned.

There are other problems that I don’t really find quite so embarrassing – features that aren’t totally mature, etc – that I consider a normal part of software development.

So, what to do about this? I thought about it and decided to put all my dirty laundry right on the README. That way, if someone decides to contribute, digs into the code, and gets all mad about it, I can honestly say that I tried to warn them.

Software is hard. Sheesh.

If you enjoyed this post, make sure you subscribe to my RSS feed!
Stumble it!

Tags: Uncategorized

2 responses so far ↓

  • 1 Rick // Jul 17, 2010 at 11:13 pm

    You know, I had this same problem when I went to release my first Perl module — thinking that OMG MY CODE IS HORRIBLE, that the entire world was going to laugh at me, etc etc. Two things to keep in mind…

    First, the people who are well-known in the open source community don’t always have this stuff spring fully-formed from their foreheads, either. A few years back, I delved into some code written by a certain prominent person and (much to my surprise) found a landslide of glaring omissions and mistakes. At that point I realized that your skill as a programmer isn’t really the measure of one’s open source contributions — it’s creating and sharing things that other people find useful.

    Second, if you put it out there, random people off the internet will start wandering by and fixing your code! This was like a whole ‘nother side to this “open source” thing that I hadn’t realized existed before I released Date::Holidays::CA. People just started showing up and reporting bugs, sending fixes, and so forth. Nobody flamed me over my horrible code. On the contrary, people picked it up and found it helpful — flattering praise. =)

  • 2 The Best that You Can Hope For // Jul 20, 2010 at 1:47 am

    [...] WordPress.org ← Sharing My Code Feels Like That Dream Where I Show Up at School in My Underwear [...]

Leave a Comment