james mckay dot net
because there are few things that are less logical than business logic

The future of Comment Timeout

A colleague of mine mentioned to me the other day that I ought to read The Mythical Man-Month by Fred Brooks. I haven’t done so yet, but I was interested to see from the various reviews that it talks about the “second-system effect” — that the second version of a system that you design will tend to be over-engineered, since it has all the features that you thought about for the first version but didn’t implement due to time constraints. It means going from a small, elegant, successful system to something large, feature-laden and bloated. Scope creep, in other words.

I’ve been thinking about this as far as the next version of my Comment Timeout plugin is concerned. The original idea was quite simple: to close comments on your blog entries after a certain length of time. The current version has extended well beyond that remit, with a whole bunch of other features that, while useful and maybe related from a technical perspective, aren’t really related from the end user’s point of view to what the plugin is ostensibly trying to do. I wonder if this is probably a bit confusing for users and making it a bit difficult to determine whether issues are due to bugs in the code itself or people misunderstanding what it’s supposed to be doing.

I think the answer is probably to separate it out into different plugins, each of which concentrates on doing a single thing and doing it well. At the moment, I’m thinking of separating it into three different plugins, perhaps something along these lines:

  • Comment Timeout 2.0: a trimmed-down version, which concentrates solely on the job of closing comments on old posts after a certain length of time.
  • The Black Hole: the functionality to nuke comments altogether if they contain BBCode, too many hyperlinks, or certain keywords, so they don’t even make it as far as your spam queue.
  • Three Strikes and You’re Out: the bit that examines your Bad Behavior logs and spam queue and closes comments to IP addresses that are persistently causing trouble.

I’d be interested to know what people think of this idea. Would it make it easier to understand, or would it just make things a bit more confusing? Leave me a comment and let me know what you think.

6 comments:

  • # Reply from jay1951 at 10:39 on 26 Apr 2007

    I think this is a great idea because it would make trouble shooting much easier.

    Right now I’m not using this because it turns off all comments and my blog is only 1 week old.

  • # Reply from AJ at 05:09 on 3 May 2007

    Hi,
    I just started using the plugin and I think it’s a great idea. One feature I would like to have is either have reject or put the comments to an old post into the moderation queue instead of rejecting them altogether.
    With a lot of traffic coming in from the search engines, one never knows when a user stumbles upon an old post.

    Thanks for the plugin 🙂

  • # Reply from James Schultz at 16:01 on 9 May 2007

    I think that splitting into three plugins is the way to go. I love the comment timeout feature, but I don’t really need the other two. If they were separate, I could easily get just what I need.

  • # Reply from Erdla Jonsdottir at 08:07 on 12 May 2007

    I’ve just installed your plugin – thankyou!

    – On general principles I’d agree that splitting the plugin up is a good idea. I do some coding myself and am painfully familiar with “scope creep” I try to remind myself of something that a tutor of mine once said.

    “I’d rather have a set of simple programs each of which does its job superbly than one program where you have to wade through 5 menus just to save the file.”

    There is perhaps something about people who write software that makes us want to put in all the sparkling good ideas into version 2? So we add in lots of extra features (and if you are me lots of extra bugs 🙁 ) and then after it is debugged we wind up wondering why the end user clicked all the “wrong” options and is now making endless support requests.

    Having said that I like the suggestion made by “AJ” very much.

    (PS: “My” blog is run by several people I am not sure if that comes under the heading of “personal blog” my apologies if it does not)

  • # Reply from Tim McCormack at 22:00 on 23 May 2007

    I like the approach Erdla Jonsdottir’s tutor outlined — keep the modules small, well-defined, and powerful (I’ve also heard this described as “Unix” :-P). The tentative plan to split it into three plugins sounds good — I’d like to use several of those, but probably not all three.

  • # Reply from James at 23:37 on 3 Jun 2007

    Thanks for all the feedback, folks — the first alpha versions of the new plugins are now available (though I decided on the name Link Limits rather than The Black Hole in the end). AJ: nice suggestion, I’ve included it as an option in version 2.0.

Comments are closed.