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

Re: [XP] Why pay now when we can pay later?

Expand Messages
  • geoffrey_slinker
    ... I know that Victor understand the saying why pay now when we can pay later . For those that are new or are lurking that doesn t understand this agilism I
    Message 1 of 18 , Nov 1, 2006
    • 0 Attachment
      --- In extremeprogramming@yahoogroups.com, yahoogroups@... wrote:
      I know that Victor understand the saying "why pay now when we can pay
      later".

      For those that are new or are lurking that doesn't understand this
      agilism I think John describes it very well.

      >
      > In the case of code, doing it now rather than later has
      > defered opportunity costs (you aren't doing something else)
      > and the risk of doing something with limited information.
      > (You'll know more later).

      There is another agilism that is relevant. YAGNI. You ain't gonna need
      it. It has to do with feature creep, gold plating, etc.

      Often developers will add functionality because the anticipate it will
      be useful. Don't "pay" for software until it is needed.

      I have fallen into the gold plating trap before. I remember when
      writing some service libraries I would try to supply a method for
      every conceivable set of parameters.

      void UpdatePersonRecord(PersonRecord person)
      void UpdatePersonRecord(string firstName, string lastName, string
      recordInfo)
      void UpdatePersonRecord(int personId, string recordInfo)

      I thought I was being thorough. Instead I made some unnecessary
      wrappers and wasted time.

      If the additional interfaces would have been added when they were
      needed it would have been easy to do so.

      >
      > In the case of testing, the costs of defered testing go up
      > superlinearly. The same is true of letting the design degrade
      > by not refactoring. These are things that it's cheaper to do
      > now rather than later.

      Sometimes referred to as Code Debt.

      Thanks John.


      Geoff Slinker
      http://digerati-illuminatus.blogspot.com/
    • J. B. Rainsberger
      ... I know this is obvious, but whenever there is a tradeoff between paying less now for less return and more later for more return, I ignore profit and only
      Message 2 of 18 , Nov 2, 2006
      • 0 Attachment
        Victor wrote:
        >
        >
        > Ron Jeffries tag line says:
        >
        > > I know we always like to say it'll be easier to do it now than it
        > will be to do it later. Not likely. I plan to be smarter later than
        > I am now, so I think it'll be just as easy later, maybe even easier.
        > Why pay now when we can pay later?
        >
        > Somebody could argue:
        > Why make the tests run now?
        > Why refactor now?
        >
        > So, without context the above line is confusing. Why use it now?

        I know this is obvious, but whenever there is a tradeoff between paying
        less now for less return and more later for more return, I ignore profit
        and only consider cashflow. If I have enough cash to get me from now to
        then, I /always/ pay more later for more return. So what's cashflow for
        a software team? Some combination of time-until-a-release and customer
        confidence/trust, I guess. Anything else? Anything better?
        --
        J. B. (Joe) Rainsberger :: http://www.jbrains.ca
        Your guide to software craftsmanship
        JUnit Recipes: Practical Methods for Programmer Testing
        2005 Gordon Pask Award for contribution Agile Software Practice
      • Ron Jeffries
        Hello, Carfield. On Wednesday, November 1, 2006, at 9:28:31 AM, ... Well, I took Victor s question to relate to the fact that a signature isn t an article. In
        Message 3 of 18 , Nov 2, 2006
        • 0 Attachment
          Hello, Carfield. On Wednesday, November 1, 2006, at 9:28:31 AM,
          you wrote:

          > In fact may be I understand the question wrong at the beginning, what
          > I understand the question is "If there we can refactoring or unit test
          > later, why we do this now? May be put more effort to make my code
          > work" . In my working environment, some of my coworker actually doing
          > that, however, the result is they haven't write single unit test
          > before they change their job.

          Well, I took Victor's question to relate to the fact that a
          signature isn't an article.

          In any case, leaving testing or refactoring until later does make it
          cost more, so we should do it now. Building a feature that isn't
          going to be used costs more now and not later so we should do it
          later. In general, one might read the sig as inviting the thoughtful
          reader to think about the impact of doing something now, vs waiting
          until later, and to make the wisest decision she's capable of.

          > So what my immediate feedback of the question is, if you don't put
          > these task is an important priority and do this first, then you will
          > never have time to do that, once you finish the current task and like
          > to move on to write unit test, the other task will come and the code
          > missing unit test accumulate and you will not bother to touch that
          > eventaully.

          I think it depends on the task. Would you agree?

          Ron Jeffries
          www.XProgramming.com
          War remains the decisive human failure.
          -- John Kenneth Galbraith
        • Carfield Yim
          ... It will be hard to disagree. For me it sound something like what this article mentioned -
          Message 4 of 18 , Nov 2, 2006
          • 0 Attachment
            > > So what my immediate feedback of the question is, if you don't put
            > > these task is an important priority and do this first, then you will
            > > never have time to do that, once you finish the current task and like
            > > to move on to write unit test, the other task will come and the code
            > > missing unit test accumulate and you will not bother to touch that
            > > eventaully.
            >
            > I think it depends on the task. Would you agree?
            >

            It will be hard to disagree. For me it sound something like what this
            article mentioned -
            http://www.jamesshore.com/Blog/CardMeeting/Voluntary-Technical-Debt.html
            . And I think many of developer try to work on this approach, but most
            of them fail to management the debt before they quit. Just like most
            people pay more debt than he like to pay for credit card expense. Of
            course, may be someone earn of lot from getting more debt and have
            clever investment, but I don't think I can. Thus I personally like to
            be more conservative have having debt, In finance and also
            development. And I like to work with conservative people also.

            In fact, I have email Victor privately and know that I miss something
            at the original question.
          Your message has been successfully submitted and would be delivered to recipients shortly.