wonko.com

The eclectic musings of a bitter software engineer.

Software maintenance woes

Saturday April 17, 2004 @ 05:26 PM (PDT)

One of the reasons I spend so much of my spare time writing software, even though that’s the same thing I do for a living, is that I’m incredibly picky about the software I use. I hesitate to say I’m a perfectionist, because that’s not quite true, but I’m almost never satisfied with the way other developers implement things. There’s always something missing or something that could have been done better or something that’s completely unnecessary. So, inevitably, I end up writing my own software to meet my needs.

Since I like sharing and enjoy feedback, I release a lot of my software publicly. Of course, this means writing documentation and managing some kind of stable release cycle and answering questions and all of that; things which I don’t particularly enjoy. And once I stop having a use for something I’ve written, I don’t usually bother continuing to maintain it, which I often feel bad about because this frequently means abandoning users.

The effect of all of this is that there are a million things I want to write in order to meet some need I have, but at the same time I have far too many projects to maintain already. So I shelve the things I want to write in order to keep my grasp on the things I’ve already written, but which I don’t really enjoy maintaining.

I need to find a solution for all of this. In the past, I’ve tried passing projects to other maintainers, but that’s always ended badly (I have yet to meet anyone who shares all of my quasi-perfectionist ideas about project management, much less coding). I’m also extremely wary of popularity; a few of my past open source projects have achieved a fair amount of popularity, resulting in way more work—and way less benefit—than I had ever expected. Successfully running even a small open source project with a lot of users is a huge task.

I feel bad for saying this, but I release my software as open source so that other people can benefit from my code, not because I want to encourage contributions. While code contributions can be (and have been) a huge help, they can also be a huge pain in the ass, and I’m enough of a perfectionist that I’d usually rather write everything myself.

So my conundrum is this: do I keep writing software for myself and just not release it? Or do I continue releasing software publicly and just try not to feel bad about being unable to maintain it?

Comments

I definitely think you should continue to allow yourself to experience the gratification of publishing the stuff you write, if you feel it's something you want to be recognized for.

That said, it would be a good idea to work on your ability to let a project go and live its own life (possibly in the hands of another developer taking over the project) without you being in control. No two developers are the same, so of course things won't get done exactly the way you prefer when someone else adds to the code you've written. Part of the problem is that few developers are as talented as yourself, of course, which doesn't make things easier for you.

This is something you're going to be doing on a regular basis throughout your life, however, so strengthening this skill wouldn't be a bad thing. You should of course be selective in whom you hand your babies over to, and see to it that you give proper instruction to the new caretaker, but from there, things are out of your hands. This doesn't have to be a problem, really. It's just part of life.

Saturday April 17, 2004 @ 06:35 PM (PDT) Posted by GreyStork
I guess the biggest problem I have with turning my projects over to other people is that I don't like having my name attached to things that I don't control. If my name is on something, I feel responsible for it. And yet, at the same time, I don't want to remove my name from my projects because then I don't get the ego boost when someone emails me saying they like my stuff.

I think there are scads of developers more talented than me. I just seem to have a knack for simplifying things combined with an intolerance for sloppiness. I hate to argue with a compliment, but I always feel a little guilty when people compliment me on my code. I'm very good at writing elegant code to solve simple problems, but I quickly get out of my league when I start tackling complex concepts.

Sunday April 18, 2004 @ 12:14 AM (PDT) Posted by Ryan Grove

As you well know, I know very little about programming, though I am trying to learn because I too find the programs out there are often not quite what I want. That said...Is there any way you can have an "original" byline, so that when modifications are made it is clear that the program is somehow different from the original, but you still receive credit for that original? I do think GreyStork is right, especially since you really don't seem to enjoy the maintenance, but do enjoy the creation.

Sunday April 18, 2004 @ 02:49 PM (PDT) Posted by grizelda

If a project is kept somewhere like Sourceforge, you can usually keep track of its history and it's always very clear who is in charge at any given time. Of course, Sourceforge has its own set of other problems, but still...

Sunday April 18, 2004 @ 08:04 PM (PDT) Posted by bedrick
As I read this I got this peculiar feeling that this article was targeted towards me ;)

Sorry for the excessive amount of emails about Poseidon I sent you in the past week. I publish some open source stuff myself and I know what a pain it is responding to users.
Sunday April 18, 2004 @ 09:01 PM (PDT) Posted by rdude

Don't get me started on SourceForge. I have several projects there, and it's been my experience that dealing with SourceForge's bugs and working around its shitty design is more work than it's actually worth. Until recently, I used SourceForge merely for their CVS repository, but since their public CVS servers broke several months ago and apparently still haven't been fixed, I finally just set up my own CVS server.

Sunday April 18, 2004 @ 09:07 PM (PDT) Posted by Ryan Grove
Ack, no no no. You're one of those rare good contributors. The stuff you've sent me has always been good, and you don't bother me with silly questions that are answered in the documentation. You pointed out an actual problem and, even though I wasn't able to reproduce it, you were responsive and helpful when I asked for more information.

Believe me, if there were more users like you, I'd be much less bitter.

Sunday April 18, 2004 @ 09:10 PM (PDT) Posted by Ryan Grove
Post a comment

Basic XHTML (including links) is allowed, just don't try anything fishy. Your comment will be auto-formatted unless you use your own <p> tags for formatting. You're also welcome to use Textile or Markdown.

Don't type anything here unless you're an evil robot:


And especially don't type anything here:

Copyright © 2002-2008 Ryan Grove. All rights reserved.
Powered by Thoth.