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

Re: [XP] Is XP Dead?

Expand Messages
  • John A. De Goes
    Code reviewing is not equivalent to pair programming. Code reviewing is to pair programming as QA is to automated tests. Sure, in theory, it s possible to have
    Message 1 of 17 , Apr 28, 2008
    • 0 Attachment
      Code reviewing is not equivalent to pair programming. Code reviewing
      is to pair programming as QA is to automated tests.

      Sure, in theory, it's possible to have no automated tests and to let
      QA catch all bugs. But that's grossly expensive, because the cost of
      fixing a defect is proportional to the time since defect injection.
      Fix it 30 seconds after it's injected, and the cost is trivial. Fix it
      2 weeks after it's injected, and the cost is dramatically increased.

      Code reviews -- assuming you can actually get them implemented in a
      useful way -- are done hours, days, or weeks after the code is
      written, usually after the code is integrated. So more dependencies on
      the code will have been created, the original developer will be less
      familiar with the code (the reasons for his decisions becoming
      increasingly hazy), and other developers or QA may have wasted time
      tracking down defects or side effects related to the code. Moreover,
      when the code is poorly designed, there's a whole lot more of it to
      throw away or to refactor -- possibly so much, that the cost of fixing
      the code is too high to justify.

      Now if that same code had been pair programmed, then most typos, many
      logical errors, and much poor design would be detected almost
      instantaneously, which leads to tremendous savings. Combine that with
      all the other benefits of pair programming, such as knowledge
      transfer, bottleneck elimination, and so forth, and I can't see a case
      for code reviews.


      John A. De Goes
      N-BRAIN, Inc.
      [n minds are better than n-1]

      On Apr 27, 2008, at 7:58 PM, Gary Brown wrote:

      > Hi, Jeff,
      > ----- Original Message -----
      > From: "arioch022000" <Thomasjeffreyandersontwin@...>
      > To: <extremeprogramming@yahoogroups.com>
      > Sent: Sunday, April 27, 2008 3:08 PM
      > Subject: Re: [XP] Is XP Dead?
      > > --- In extremeprogramming@yahoogroups.com, "Gary Brown"
      > > <glbrown@...> wrote:
      > >> When someone tells me that they are doing Agile Software
      > > Development, I have
      > >> found that what they really mean is, I won't do XP or Scrum, so
      > > I'm doing
      > >> what I want and calling it Agile. This is what they were doing
      > > before, but
      > >> now they have a new word that gives them permission to hack out
      > > crappy code.
      > >>
      > >
      > > Gary,
      > > I agree that a lot of people may claim to be doing agile, but really
      > > just using this as a cover to have no structure whatsoever.
      > >
      > > I think the same thing is true for a lot of teams teams who pretend
      > > to do XP, scrum, and even RUP. I think XP and RUP are probably the
      > > most abused turns that I've heard that from my clients. (mostly
      > > government and financial services)
      > >
      > > It's like the two are a rubberstamp you just apply to a project
      > > without any thought or consideration.
      > >
      > > I tend to be one of "those guys" who leads teams who just say they
      > > are using agile, and no, I'm not using it as an excuse for my team
      > > to build crappy code. I'm just not following every practice from any
      > > specific approach. Which I think is the whole point of agile anyway.
      > >
      > > Also, as an independent system integrator/consultant, I don't always
      > > have the exact choice of the environment I am being placed into, I
      > > have to be pragmatic, and choose best practices that I think will
      > > succeed.
      > >
      > > Clients will not always let you pair program.
      > I gave up on RUP years ago, so I can't speak to that. There is no
      > Agile
      > Software Development method. Agile is an umbrella alliance of XP,
      > Scrum,
      > Lean, Crystal, and maybe others, which I am not familiar, with
      > similar goals
      > and shared principles.
      > I think that if you squint hard enough at Agile, you'll find that
      > Lean is
      > Agile for organizations, Scrum is Agile for product and project
      > management,
      > and XP is Agile for developers. All of these defined Agile methods,
      > have
      > the idea of "adjust for local conditions". So it is OK to choose the
      > practices that you think will succeed, after you have tried all of the
      > practices long enough to know what will succeed. Many decide before
      > they
      > have learned the lesson.
      > When you choose to remove a practice, you need to replace it with a
      > functionally equivalent practice. For example, if you choose not to
      > do pair
      > programming, then you need to replace it with design and code reviews.
      > Otherwise, you're just hacking.
      > GB.

      [Non-text portions of this message have been removed]
    Your message has been successfully submitted and would be delivered to recipients shortly.