Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^2: Make it good

by radiantmatrix (Parson)
on Oct 19, 2004 at 13:26 UTC ( #400514=note: print w/ replies, xml ) Need Help??


in reply to Re: Make it good
in thread Make it good

I didn't really mean to suggest that one should wait until all these goals are met perfectly before releasing anything. In fact, I'm pretty sure it's impossible to create the "perfect code". But, what you release should work, at least reliably enough for your target users. Beta releases are somewhat exempt -- that's why they're beta. :)

The development process is, of course, iterative. And the mantra of "release early, release often" is definately valuable in the quest toward good software. You do have a valid point about not waiting until you implement 100% of the features before a release. However, I did say "conforms to the spec" -- what you do implement needs to be as correct as possible. In many cases, you can conform to a spec without implementing every feature of it. In some cases, though, you can't.

radiantmatrix
require General::Disclaimer;
"Users are evil. All users are evil. Do not trust them. Perl specifically offers the -T switch because it knows users are evil." - japhy


Comment on Re^2: Make it good
Re^3: Make it good
by FoxtrotUniform (Prior) on Oct 19, 2004 at 18:27 UTC
    I didn't really mean to suggest that one should wait until all these goals are met perfectly before releasing anything.

    I don't think you did. All I'm saying is that you didn't point out "make it run". I'm not attacking your position, just adding to it.

    But, what you release should work, at least reliably enough for your target users.

    (Emphasis added.) Here's my point: don't get so hung up on technical correctness that you forget about why you're writing the program in the first place. If your target users can get more work done with incomplete, beta software than they can without any software at all, give them the beta while you work on the next release.

    --
    Yours in pedantry,
    F o x t r o t U n i f o r m

    "Lines of code don't matter as long as I'm not writing them." -- merlyn

      I guess I'm still not understanding you. How is "make it run" fundamentally different from "make it work"?

      radiantmatrix
      require General::Disclaimer;
      "Users are evil. All users are evil. Do not trust them. Perl specifically offers the -T switch because it knows users are evil." - japhy
        Having read the thread in a somewhat spotty fashion, I'd say that it's the difference between (make it run) implement the correct features and (make it work) implement the features correctly.

        The emphasis for "make it run" is to get features fast to your users (make the program actually run the code). If it solves problems that aren't the user's problems, it's useless. If it solves a few of the user's problems earlier rather than later, it may be more useful. It sure provides more feedback.

        The emphasis for "make it work" is for your program to not contain bugs. If it solves the user's problems the wrong way, it's broken.

        IMHO,

        /J

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://400514]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2014-09-30 20:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (384 votes), past polls