What is a feature and what is bloat?

ajt on 2003-03-18T18:52:03

I posted a simple meditation over on Perlmonks this morning: When is a feature bloat?. As is often the case I got a nice rep for the node and one or two answers, but not a nice discussion with lots of ideas.

At the moment I've had two suggestions, but I wonder if there are other ideas, that I've not tapped.

  • Break the module down into parts and let people load only the bits they want.
  • Look at the code and decide which interface is more awkward to not have, and provide it first.

So unless I get a screaming hoard of people demanding changes, I'll put in my module what I want, and see what happens.


Bloat or no ...

Ovid on 2003-03-25T14:17:54

Joel Spolsky, of Joel On Software fame, likes to point out that many software companies realize that people frequently use only 10% of the functionality for a given piece of "bloatware". The software company then proceeds to build a product with only that 10%, thinking they'll have a lean, mean, fighting machine.

Uh, but what's that '10%'? I guarantee that a journalist, project manager and screenwriter are going to have radically different ideas of what they want in Microsoft Word and they're all going to complain about the 'bloat' of the other features they are not using.

What I might be inclined to do is start putting out messages to people asking them to send you code where they've used your module. Hit the relevant mailing lists, newsgroups, Perlmonks, etc. If you get any response, you can start looking at their code and find out what they're really using and how they are using it. You can also see what they're doing with the results of the module and perhaps get a sense of other things that you can provide that might assist them. Armed with that knowledge, you'll have a much better understanding of what you should provide.

Re:Bloat or no ...

ajt on 2003-03-25T16:44:47

Again I must thank you for your helpful input, you may recall that it was your helpful comments over on Perlmonks that helped me launch this module in the first place!

Side note:

Over the months I've read your journal, and really become infected with the idea of testing things, most of the actual changes to the distribution of my module on CPAN have been the additions of tests.

So far I've been bitten with earlier changes to the module, not detected until after I've uploaded them to CPAN. As a result I've added more and more tests, and I think the later versions have had less bugs in released code, just because the test suite caught them before the code got into the wild. I know now when test fail where to look into code to fix things, tests have been a real eye-opener for me!

Re:Bloat or no ...

Ovid on 2003-03-25T19:04:41

Well, I suppose it's time to follow up on those helpful comments, then. Amongst other things, I realized that my suggestion to provide a default value to $mode to avoid 'undefined' warnings when testing with a regex was pretty useless since you already had if($mode) before that. That, of course, is a minor nit.

My major problem with my advice was when I criticized the following:

$self->{_xsl_string} = _http_get($uri);

I didn't like that because your helper function wasn't a method. As a result, it couldn't be subclassed and didn't have access to the instance data. I was wrong.

In $functions xor methods I complained about this and was put in my place. Both rjr and tye had strong rebuttals in place. That's yet another reason I like Perlmonks. I put out my ridiculous arguments and get slapped down for them. I don't get no respect and I appreciate that :)

I'm also glad to hear that you've swallowed the testing Kool-Aid (I'm sure the Kool-Aid people aren't too thrilled with the unsubtle cult reference). I think testing is something that's finally helped to really convince me that I can build things as I know longer sit around and fret about whether or not something works. Even if I'm a lousy programmer, have terrible data structures, inefficient IO and gobs of globals, I at least have the tests to back me up and I can then go back and fix the bad stuff with (relative) impunity. Life is good :)

pss ... your company wanna sponsor a Yank?