Loading ...
Sorry, an error occurred while loading the content.

[XP] no excuses programming

Expand Messages
  • Steve Metsker
    I wonder if readers think it would be useful to clarify the concept of no excuses programming, and to evaluate its overlap with xp. The no excuses or nx
    Message 1 of 82 , Feb 25, 2000
    • 0 Attachment
      I wonder if readers think it would be useful to clarify the concept of
      "no excuses" programming, and to evaluate its overlap with xp.

      The "no excuses" or "nx" programmer says, when his or her work is done,
      "this is my best". Similar statements are often followed 1) "except
      there wasn't enough time", or 2) "I didn't get good requirements", or
      3) [insert any excuse here]. These qualifiers excuse the developer from
      the nx realm. The nx programmer says, this is my best, no excuses.

      When an nx programmer develops an nx program, he or she utters no
      excuses, and takes full responsibility for the quality of his or her
      work.

      Does nx overlap xp or am I just hitchhiking on xp (for which, of
      course, there is no excuse)? Is the nx notion worth capturing? Is nx
      programming possible?
    • Ken Auer
      ... To throw a twist into this conversation... IMO, it s unprofessional to not ship code because there is still some cruft in it. What is professional? ... it
      Message 82 of 82 , Mar 16, 2000
      • 0 Attachment
        > > IMO, it's unprofessional to ship crufty code...
        >
        > I feel the same way, but why does anyone feel that way? Isn't it more a
        > warrior ethic or creed that makes us want to do our best? I think
        > Xp'ers like writing great-looking code. What is "professional"? I'm not
        > sure the economic argument pans out. Even if it weren't economic to do
        > my best, I'd still do my best.

        To throw a twist into this conversation...

        IMO, it's unprofessional to not ship code because there is still some cruft
        in it.

        "What is professional?"... it is not perfectionism. (I don't remember who
        the original poster of this was, and I'm not accusing anyone in particular
        of anything, just trying to start a different slant on the conversation).

        I constantly find myself leaving code in the system that I think could be
        better. But only when I'm not sure how to make it better. E.g. I find that
        Java's typing model causes me to encapsulate casting in order to keep user's
        of a class from having to cast... (I never had to do that in Smalltalk, but
        that's a completely different thread). So, I often end up, after lots of
        functionality being added and a bunch of refactoring, finding that I have
        small classes that exist mostly to encapsulate the generic stuff underneath
        it and insert some type intelligence. The code looks almost exactly the
        same as a couple of other classes that also add similar type intelligence
        for a different type. I hate it, but it's not always obvious or possible to
        get rid of it.

        Sometimes, later, I learn a new trick that can help me clean up the cruft.
        I typically don't go and find all of the places in the system that I can
        apply the trick. The customer would be pretty bummed out if I took 2-3 days
        to do that and missed the iteration. However, I do communicate the trick
        (often through the pair-vine, but sometimes at a StandUpMeeting or on the
        whiteboard with a small group), and encourage people to apply it when their
        in code containing the particular suspect cruft.

        Eventually, the cruft works itself out and new flavors of cruft works its
        way in. The key is to never insert cruft that has a known cure, and remove
        the old cruft the next time you have to add something where the cruft lives.

        Ken

        -----------------
        Ken Auer <kauer@...>
        The Extreme Programming Software Studio(TM)
        RoleModel Software <http://www.rolemodelsoft.com> (v) 919-557-6352
        5004 Rossmore Dr. (f) 919-552-8166
        Fuquay-Varina, NC 27526 (m) 919-630-5807
        "Christianity is not a plug-in, it's an operating system"
        Mark 12:28-31
      Your message has been successfully submitted and would be delivered to recipients shortly.