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

[XP] Re: no excuses programming

Expand Messages
  • Ron Lusk
    ... Perfection is finally attained not when there is no longer anything to add but when there is no longer anything to take away, when a body has been stripped
    Message 1 of 82 , Mar 1, 2000
    • 0 Attachment
      >
      > On an XP project, when is it ever worth the additional effort to take
      > code that passes its tests and polish it for presentation? In fact,
      > isn't aiming for perfection a kind of YAGNI violation all along?

      Perfection is finally attained not when there is no longer anything to add
      but when there is no longer anything to take away, when a body has been
      stripped down to its nakedness.

      Antoine de Saint-Exupery

      So perhaps "museum quality" code may approach this perfection: not covered
      with ornaments and doodads, but simple, elegant, effective, and mesmerizing
      in its nakedness.
    • 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.