It’s been a little while since I’ve posted. Last week I didn’t do an electronic log for my radio show so I couldn’t easily copy and paste my playlist here. And nothing really that eventful has happened so meh. Though, I figured I’d put a little update here nonetheless.
Anyone who knows me knows that I put way too much of my time into a piece of software that I’ve been developing for the radio station that I volunteer at. I’ve spent thousands of hours writing code and debugging it. Most of which has been during free time at work. But more so than time, I’ve invested almost every bit of my sanity that I have. If you have done any software coding, then you know that it can really drive you crazy trying to get things to work sometimes.
Pretty early on, it had been suggested that I try to sell the software to other radio stations. With all of the time and energy that I’ve put into this, it’d be almost silly not to. So that became the ultimate goal for me. I would use RLC, the station I volunteer at, as my testing ground for the software. They would always get to use it for free and, in exchange, I’d get to have a live environment to test the software in.
This March will mark two years since the software first went live (development started in the beginning of December 2005) and I still can’t even imagine trying to sell what I have yet. The list of what my software currently does is pretty impressive thus far:
- Music library databasing
- Review system for music
- Logging of everything that goes over the air
- Storing of contact information for DJs as well as external contacts
- A bulletin system
- A system for reporting and managing issues with equipment and music
- Meeting minutes
- Logging phone calls
- Generating FCC required reports of community affairs programming
The list goes on from there, but those are the major functions…so far. The list of ideas that I have for where to go next is simply crazy.
Right now, there is nothing else out there that can do this much for college radio stations, I could sell this software with no competition. So why am I not selling it yet?
I have set many goals for myself for dates to have this software ready to go by. Every time I get close to one, I push it back another six months to a year. Currently, I am looking at getting this software out the door by September. We’ll see how that goes.
The problem is that every time I add a new feature, I come up with another “essential” feature that I feel NEEDS to be added before I can sell it. Or I find a bug in an existing feature that I need to change. This process becomes endless.
Couple that with the fact that when I started this project, I picked up coding again for the first time in over four years and had to learn many skills that I had never learned the first time. I had to learn multiple new languages as well as database skills that I never to begin with. In fact, data systems were one of the reasons I originally lost interest in computer science back when I was in high school. Because of this, I pretty much had very little idea what I was doing when I started. As the project progressed, so did my skills. I learned more. I got more efficient. Now when I go back to work on things and I see old bits of code, it kills me to look at them. They’re terrible! So I feel that I need to rewrite them and make them better. This has become an obsession that I cannot control.
This isn’t even limited to the code that I wrote prior to v1.0. The software is currently at v3.1.1 and I routinely find coding that makes me cringe from v2.5 or even v3.0. It’s become an endless cycle. I spend more time revamping old bits than I do adding in new ones. The two major functions of the software, music databasing/searching and program logs have both had complete redesigns of the user interface already. I’m very happy with these redesigns and I think that they were necessary, but I can’t stop there. I’m working on redoing the permissions system now. This system is one of the very basic systems that holds the entire project together. Revamping it is literally requiring me to go through tens of thousands of lines of code one by one.
So when will it end? When will I be able to just say “alright, this is ready to hit the market!”
I was reading an interview with Bill Gates today from Engadget discussing his leaving Microsoft and there was something that really hit me:
Well, of course! But are you personally fully satisfied with it?
I’m never fully satisfied with any Microsoft product.
Like the saying, “Software is never complete, only abandoned”?
There are always the features that I wanted to get in, or the things that I wish were a little more polished. The people who are good in these companies are really sort of ridiculously demanding people. They have to sort of know when to back off so that thing can eventually ship. But I look at any product — and I’m better at Microsoft products — and say what I wished what was better about the product.
Now this is something that I need to learn! I need to be able to take a step back and say “alight, people will buy this as it is and the other features can come in the next version.”
Since I decided that I want to sell this software, it has become a dream/goal of mine to start my own software company and go beyond this. But I don’t think that can happen if I can never get software out the door.
So Bill, show me the light! Teach me how to ship something that isn’t perfect, and never could be, in my eyes!