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

[XP] Re: fix or rewrite?

Expand Messages
  • Phlip
    From: Chris Bitmead ... Is the project presently deployed and giving a customer value? The old-fashion answer: If code that sucks is in the field making money,
    Message 1 of 20 , Apr 2, 2000
    • 0 Attachment
      From: Chris Bitmead

      > What do people think? If a project has been pretty soundly bodged, but
      > somehow has been able to be patched together with duct-tape and chicken
      > wire, is there any hope of incrementally fixing it to come up with
      > something of quality, or should it always be thrown out and re-done?

      Is the project presently deployed and giving a customer value?

      The old-fashion answer: If code that sucks is in the field making money,
      blow that money to re-write from scratch. "Throw good money after bad."

      The new-fangled answer: If code that sucks is in the field making money,
      RefactorMercilessly trumps re-writing.

      XP (in this case) turns liabilities into leverage: The current version of
      the program acts as a reference point against which new versions can be
      tested. Testing is good; it lets you RM. RM means _any_ code translation:
      >From structures to objects, or from one language to another, or from one
      library to another, or from sucking to not.

      Turn the question around: If you were given a raw spec, would you just start
      typing? or would you look for _any_ example code anywhere that already does
      _something_ in the spec? If you already had that code, would you throw it
      away? or apply The Process to it? The old-fashioned Process mined the code
      for requirements & design. The XP Process will hammer that code into its new
      design.

      Phlip
      ======= http://users.deltanet.com/~tegan/home.html =======
    • nick.thurn@db.com
      ... I can only answer as an XP Skeptic, but... on Robert Martin s site there s a very frank and honest example of a re-write. I suspect that toss is a better
      Message 2 of 20 , Apr 2, 2000
      • 0 Attachment
        > What do people think? If a project has been pretty soundly bodged, but
        > somehow has been able to be patched together with duct-tape and chicken
        > wire, is there any hope of incrementally fixing it to come up with
        > something of quality, or should it always be thrown out and re-done?

        > Companies never like to admit they screwed up and have blown their $$.
        > On the other hand I usually think a project that has gone way off-course
        > is unrecoverable, or at least uneconomic to recover. But then
        > programmers like new code, so maybe I'm biased. What do others think?

        I can only answer as an XP Skeptic, but...

        on Robert Martin's site there's a very frank and honest example of a
        re-write. I suspect that "toss" is a better solution when the test
        infrastructure is not in place.

        cheers
        Nick
      • Eric Hodges
        Not an XP answer, but one from my personal history: Everything I ever wrote twice came out near perfect the second time. Rewriting is a serious luxury, and
        Message 3 of 20 , Apr 2, 2000
        • 0 Attachment
          Not an XP answer, but one from my personal history: Everything I ever wrote
          twice came out near perfect the second time. Rewriting is a serious luxury,
          and can't be afforded all the time, but when it can it tends to produce high
          quality code. If you can get the original authors to rewrite it from the
          ground up, they have the concepts clear in their minds and they usually
          stick them together in a much simpler way than they did the first time.

          In the end it all gets down to economics. If there is some way to make more
          money from a higher quality product, it might be worth it. Usually it
          isn't, though.


          ----- Original Message -----
          From: "Chris Bitmead" <chrisb@...>
          To: <extremeprogramming@...>
          Sent: Sunday, April 02, 2000 8:38 PM
          Subject: [XP] fix or rewrite?


          >
          > What do people think? If a project has been pretty soundly bodged, but
          > somehow has been able to be patched together with duct-tape and chicken
          > wire, is there any hope of incrementally fixing it to come up with
          > something of quality, or should it always be thrown out and re-done?
          >
          > Companies never like to admit they screwed up and have blown their $$.
          > On the other hand I usually think a project that has gone way off-course
          > is unrecoverable, or at least uneconomic to recover. But then
          > programmers like new code, so maybe I'm biased. What do others think?
          >
          > ------------------------------------------------------------------------
          > To Post a message, send it to: extremeprogramming@...
          > To Unsubscribe, send a blank message to:
          extremeprogramming-unsubscribe@...
          > Ad-free courtesy of objectmentor.com
          >
          > ------------------------------------------------------------------------
          > -- Easily schedule meetings and events using the group calendar!
          > -- http://www.egroups.com/cal?listname=extremeprogramming&m=1
          >
          >
          >
        • Andy Glew
          ... Beware of Second System Syndrome . In the rewrite, the programmer is tempted to do things the right way, add features, create extensibility, etc. It is
          Message 4 of 20 , Apr 3, 2000
          • 0 Attachment
            > Not an XP answer, but one from my personal history: Everything I ever wrote
            > twice came out near perfect the second time. Rewriting is a serious luxury,
            > and can't be afforded all the time, but when it can it tends to produce high
            > quality code. If you can get the original authors to rewrite it from the
            > ground up, they have the concepts clear in their minds and they usually
            > stick them together in a much simpler way than they did the first time.


            Beware of "Second System Syndrome".

            In the rewrite, the programmer is tempted to do things
            the "right" way, add features, create extensibility, etc.
            It is reported that "second systems" often fail
            due to bloat.
          • Eric Hodges
            ... From: Andy Glew To: Sent: Monday, April 03, 2000 10:13 AM Subject: Re: [XP] Re: fix or rewrite? ...
            Message 5 of 20 , Apr 3, 2000
            • 0 Attachment
              ----- Original Message -----
              From: "Andy Glew" <glew@...>
              To: <extremeprogramming@egroups.com>
              Sent: Monday, April 03, 2000 10:13 AM
              Subject: Re: [XP] Re: fix or rewrite?


              > > Not an XP answer, but one from my personal history: Everything I ever
              wrote
              > > twice came out near perfect the second time. Rewriting is a serious
              luxury,
              > > and can't be afforded all the time, but when it can it tends to produce
              high
              > > quality code. If you can get the original authors to rewrite it from
              the
              > > ground up, they have the concepts clear in their minds and they usually
              > > stick them together in a much simpler way than they did the first time.
              >
              >
              > Beware of "Second System Syndrome".
              >
              > In the rewrite, the programmer is tempted to do things
              > the "right" way, add features, create extensibility, etc.
              > It is reported that "second systems" often fail
              > due to bloat.

              Hmmm. I've never seen this happen. Perhaps this is a benefit of laziness.
              I don't think adding features etc., is the "right" way. The second time I
              write something, it tends to be smaller and simpler.
            • Eric Hodges
              You have only yourself to blame if you let the customer know you are rewriting something. Of course they will ask for changes. They see it as an opportunity
              Message 6 of 20 , Apr 3, 2000
              • 0 Attachment
                You have only yourself to blame if you let the customer know you are
                rewriting something. Of course they will ask for changes. They see it as
                an opportunity to get what they want, and rightly so. The sorts of rewrites
                I've done aren't anyone's business but the coders.


                ----- Original Message -----
                From: "Urberg, John" <jurberg@...>
                To: <extremeprogramming@egroups.com>
                Sent: Monday, April 03, 2000 11:06 AM
                Subject: [XP] Re: fix or rewrite?


                > A worse problem than the programmer adding stuff is when the users find
                out
                > that you are rewriting the system and start inundating you with changes!
                >
                > > ----- Original Message -----
                > > From: "Andy Glew" <glew@...>
                > > To: <extremeprogramming@egroups.com>
                > > Sent: Monday, April 03, 2000 10:13 AM
                > > Subject: Re: [XP] Re: fix or rewrite?
                > >
                > >
                > > > > Not an XP answer, but one from my personal history: Everything I
                ever
                > > wrote
                > > > > twice came out near perfect the second time. Rewriting is a serious
                > > luxury,
                > > > > and can't be afforded all the time, but when it can it tends to
                > > produce
                > > high
                > > > > quality code. If you can get the original authors to rewrite it
                from
                > > the
                > > > > ground up, they have the concepts clear in their minds and they
                > > usually
                > > > > stick them together in a much simpler way than they did the first
                > > time.
                > >
                > >
                > > Beware of "Second System Syndrome".
                > >
                > > In the rewrite, the programmer is tempted to do things
                > > the "right" way, add features, create extensibility, etc.
                > > It is reported that "second systems" often fail
                > > due to bloat.
                > >
                >
                >
                > To Post a message, send it to: extremeprogramming@...
                >
                > To Unsubscribe, send a blank message to:
                extremeprogramming-unsubscribe@...
                >
                > Ad-free courtesy of objectmentor.com
                >
                >
              • Ron Jeffries
                ... It s a pretty famous syndrome. I ve fallen prey to it a few times myself. Ron Jeffries www.XProgramming.com
                Message 7 of 20 , Apr 3, 2000
                • 0 Attachment
                  At 11:04 AM 4/3/2000 -0500, you wrote:
                  > > In the rewrite, the programmer is tempted to do things
                  > > the "right" way, add features, create extensibility, etc.
                  > > It is reported that "second systems" often fail
                  > > due to bloat.
                  >
                  >Hmmm. I've never seen this happen. Perhaps this is a benefit of laziness.
                  >I don't think adding features etc., is the "right" way. The second time I
                  >write something, it tends to be smaller and simpler.

                  It's a pretty famous syndrome. I've fallen prey to it a few times myself.

                  Ron Jeffries
                  www.XProgramming.com
                • Ron Jeffries
                  ... If the customer needs changes, they should get them, it seems to me. Isn t that kind of a basic XP principle? There must be something lurking here that I
                  Message 8 of 20 , Apr 3, 2000
                  • 0 Attachment
                    At 11:28 AM 4/3/2000 -0500, you wrote:
                    >You have only yourself to blame if you let the customer know you are
                    >rewriting something. Of course they will ask for changes. They see it as
                    >an opportunity to get what they want, and rightly so. The sorts of rewrites
                    >I've done aren't anyone's business but the coders.

                    If the customer needs changes, they should get them, it seems to me. Isn't
                    that kind of a basic XP principle? There must be something lurking here
                    that I don't understand ...

                    Ron Jeffries
                    www.XProgramming.com
                  • Eric Hodges
                    ... From: Ron Jeffries To: Sent: Monday, April 03, 2000 11:45 AM Subject: Re: [XP] Re: fix or rewrite?
                    Message 9 of 20 , Apr 3, 2000
                    • 0 Attachment
                      ----- Original Message -----
                      From: "Ron Jeffries" <ronjeffries@...>
                      To: <extremeprogramming@egroups.com>
                      Sent: Monday, April 03, 2000 11:45 AM
                      Subject: Re: [XP] Re: fix or rewrite?


                      > At 11:28 AM 4/3/2000 -0500, you wrote:
                      > >You have only yourself to blame if you let the customer know you are
                      > >rewriting something. Of course they will ask for changes. They see it
                      as
                      > >an opportunity to get what they want, and rightly so. The sorts of
                      rewrites
                      > >I've done aren't anyone's business but the coders.
                      >
                      > If the customer needs changes, they should get them, it seems to me. Isn't
                      > that kind of a basic XP principle? There must be something lurking here
                      > that I don't understand ...

                      1. I'm not an XP user, just an interested observer.
                      2. Customers should get the changes they want if and only if it makes good
                      business sense. If they want something but aren't willing to pay for it,
                      they shouldn't get it.
                      3. There are times when an organization needs to serve itself before the
                      customer. One example is rewriting a component. Sometimes this is none of
                      the customer's business, and they don't need to be in the loop. As long as
                      the rewrite doesn't harm the customer.
                    • Ron Jeffries
                      ... Who s paying? Ron Jeffries www.XProgramming.com
                      Message 10 of 20 , Apr 3, 2000
                      • 0 Attachment
                        At 12:47 PM 4/3/2000 -0500, you wrote:
                        >3. There are times when an organization needs to serve itself before the
                        >customer. One example is rewriting a component. Sometimes this is none of
                        >the customer's business, and they don't need to be in the loop. As long as
                        >the rewrite doesn't harm the customer.

                        Who's paying?

                        Ron Jeffries
                        www.XProgramming.com
                      • Eric Hodges
                        ... From: Ron Jeffries To: Sent: Monday, April 03, 2000 1:31 PM Subject: Re: [XP] Re: fix or rewrite?
                        Message 11 of 20 , Apr 3, 2000
                        • 0 Attachment
                          ----- Original Message -----
                          From: "Ron Jeffries" <ronjeffries@...>
                          To: <extremeprogramming@egroups.com>
                          Sent: Monday, April 03, 2000 1:31 PM
                          Subject: Re: [XP] Re: fix or rewrite?


                          > At 12:47 PM 4/3/2000 -0500, you wrote:
                          > >3. There are times when an organization needs to serve itself before the
                          > >customer. One example is rewriting a component. Sometimes this is none
                          of
                          > >the customer's business, and they don't need to be in the loop. As long
                          as
                          > >the rewrite doesn't harm the customer.
                          >
                          > Who's paying?

                          The customer. That's part of their job.

                          It doesn't do the customer any good in the long run if a company serves
                          their needs to the point that it goes bankrupt. That's why sometimes a
                          company has to take care of itself first. Just like a biological organism,
                          a certain amount of self interest is needed to survive.
                        • Ron Jeffries
                          ... I m sorry, but while I agree that the company shouldn t go bankrupt, I m not happy with the idea that you can long survive if not delivering business
                          Message 12 of 20 , Apr 3, 2000
                          • 0 Attachment
                            At 02:10 PM 4/3/2000 -0500, you wrote:
                            > > Who's paying?
                            >
                            >The customer. That's part of their job.
                            >
                            >It doesn't do the customer any good in the long run if a company serves
                            >their needs to the point that it goes bankrupt. That's why sometimes a
                            >company has to take care of itself first. Just like a biological organism,
                            >a certain amount of self interest is needed to survive.

                            I'm sorry, but while I agree that the company shouldn't go bankrupt, I'm
                            not happy with the idea that you can long survive if not delivering
                            business value. XP is about delivering business value all the time.

                            It's true that you can get buried. If you do, then the best thing may be to
                            start over ... but to start over by delivering new business value,
                            incrementally, all the time. Takes creativity, but I'd rather have to be
                            creative than explain why my coders weren't delivering value for any
                            extended period. That way lies big trouble. Been there, done that, got the
                            boot. ;->

                            R
                          • Kent Beck
                            The two risks are that you can t do today what you need to do today and you can t do tomorrow what you need to do tomorrow. If you have working code, you ve
                            Message 13 of 20 , Apr 3, 2000
                            • 0 Attachment
                              The two risks are that you can't do today what you need to do today and you
                              can't do tomorrow what you need to do tomorrow. If you have working code,
                              you've taken care of the former. Never lose that. Add tests and refactor
                              incrementally.

                              If you have crappy code that doesn't work, flush it. The bigger the pile,
                              the faster you should flush.

                              Kent
                            • Malte Kroeger
                              We have developed a product for about 7 years. It s been installed some hundred times and is currently delivering value for a 100 people company. The system
                              Message 14 of 20 , Apr 3, 2000
                              • 0 Attachment
                                We have developed a "product" for about 7 years.
                                It's been installed some hundred times and is currently delivering value
                                for a 100 people company. The system is C/C++. There was no refactoring,
                                no tests.

                                We have a very hard time delivering new functionality, because the system
                                is way too complicated. There seams to be no way to refactor your way out
                                of it. Rewrite is faster & easier.
                                We've already lost the pool position in the market, due to lack of new
                                functionality and missing robustness.

                                This is a situation when you have to do a rewrite behind the scenes, cause
                                there is no other way left.
                                And hope the company survives and can catch up afterwards when the new
                                lean and mean system is up and running.

                                Malte
                              • Eric Hodges
                                I think we may be talking about different kinds of customers. If I had developed a component for one particular user and no one else, then I can see your
                                Message 15 of 20 , Apr 3, 2000
                                • 0 Attachment
                                  I think we may be talking about different kinds of customers. If I had
                                  developed a component for one particular user and no one else, then I can
                                  see your point. But if I've got components that are used by dozens or
                                  hundeds or thousands of customers, and espeically if those components don't
                                  have direct visibility to the customers, then it's my business how to manage
                                  them.

                                  I don't expect any of my current customers to embrace XP. They don't care
                                  what process I use to develop the software, they just want to buy it. I
                                  think this is another example of how generalizations are always false. :)
                                  Usually.


                                  ----- Original Message -----
                                  From: "Tracie Karsjens" <tracie.karsjens@...>
                                  To: <extremeprogramming@egroups.com>
                                  Sent: Tuesday, April 04, 2000 2:22 AM
                                  Subject: Re: [XP] Re: fix or rewrite?


                                  > > > >3. There are times when an organization needs to serve itself before
                                  > the
                                  > > > >customer. One example is rewriting a component. Sometimes this is
                                  > none of
                                  > > > >the customer's business, and they don't need to be in the loop. As
                                  > long as
                                  > > > >the rewrite doesn't harm the customer.
                                  > > >
                                  > > > Who's paying?
                                  > >
                                  > > The customer. That's part of their job.
                                  > >
                                  > > It doesn't do the customer any good in the long run if a company serves
                                  > > their needs to the point that it goes bankrupt. That's why sometimes a
                                  > > company has to take care of itself first. Just like a biological
                                  > organism,
                                  > > a certain amount of self interest is needed to survive.
                                  > >
                                  >
                                  > I'm with Ron on this. This is one of the hardest parts for me in terms of
                                  > shifting my mindset to XP. For me to trust the customer and keep the
                                  > customer in the loop and not do stuff "they don't need to know about" is
                                  > tough. But how can we expect the customers to trust us to do what we are
                                  > good at (program) if we don't trust them to do what they are good at (make
                                  > business decisions)? The problem (and the challenge) is that rarely do
                                  > programmers just program - of course we're involved with the business at
                                  > some level.
                                  >
                                  > While I understand and fully identify with the sentiment of "It doesn't do
                                  > the customer any good in the long run if a company serves their needs to
                                  the
                                  > point that it goes bankrupt," I wouldn't want a business person to say "We
                                  > can't trust the programmers to XXX - after all it's not in their best
                                  > interest if the project fails."
                                  >
                                  > That said, I see it that I have the responsibility to protect the customer
                                  > from himself by telling him my concerns (communication) and listening to
                                  his
                                  > reasons (feedback). If he makes a decision I disagree with in spite of the
                                  > conversation, I have to do my best in that situation and not do my thing
                                  > anyway. (courage)
                                  >
                                  > Which leads me to my final conclusion that customers that only survive
                                  > because of cowboy coders and by not knowing things, may not be the best
                                  > candidates for XP - at least at first. Of course, the customer who
                                  embraces
                                  > XP, knows and approves of Continuous Refactoring, so in theory you would
                                  > never need to scrap and rewrite a component.
                                  >
                                  >
                                  >
                                  > To Post a message, send it to: extremeprogramming@...
                                  >
                                  > To Unsubscribe, send a blank message to:
                                  extremeprogramming-unsubscribe@...
                                  >
                                  > Ad-free courtesy of objectmentor.com
                                  >
                                  >
                                • Ron Jeffries
                                  ... Yes, you re right, we re talking about different situations. It is entirely appropriate for your company to make an internal investment decision to redo or
                                  Message 16 of 20 , Apr 3, 2000
                                  • 0 Attachment
                                    At 04:11 PM 4/3/2000 -0500, you wrote:
                                    >I think we may be talking about different kinds of customers. If I had
                                    >developed a component for one particular user and no one else, then I can
                                    >see your point. But if I've got components that are used by dozens or
                                    >hundeds or thousands of customers, and espeically if those components don't
                                    >have direct visibility to the customers, then it's my business how to manage
                                    >them.

                                    Yes, you're right, we're talking about different situations. It is entirely
                                    appropriate for your company to make an internal investment decision to
                                    redo or restructure some old technology. In that case, your marketing
                                    department or your VP R&D is the customer in the XP sense.

                                    At the same time, in JUST that situation, I've buried myself more than
                                    once. I'd try to refactor my way out, as much as I hate that solution,
                                    because I think it's safer. As Kent said above, if you have something that
                                    works, it's generally best to hold on to it.

                                    Regards

                                    Ron Jeffries
                                    www.XProgramming.com
                                  • Eric Hodges
                                    Now that I think about it, my experience with rewriting is mostly from my pre-refactoring (prefactoring?) days. I can t think of anything I ve had to rewrite
                                    Message 17 of 20 , Apr 3, 2000
                                    • 0 Attachment
                                      Now that I think about it, my experience with rewriting is mostly from my
                                      pre-refactoring (prefactoring?) days. I can't think of anything I've had to
                                      rewrite since I started consciously refactoring my code. Perhaps merciless
                                      refactoring removes the need for total rewrites.


                                      ----- Original Message -----
                                      From: "Ron Jeffries" <ronjeffries@...>
                                      To: <extremeprogramming@egroups.com>
                                      Sent: Monday, April 03, 2000 4:36 PM
                                      Subject: Re: [XP] Re: fix or rewrite?


                                      > At 04:11 PM 4/3/2000 -0500, you wrote:
                                      > >I think we may be talking about different kinds of customers. If I had
                                      > >developed a component for one particular user and no one else, then I can
                                      > >see your point. But if I've got components that are used by dozens or
                                      > >hundeds or thousands of customers, and espeically if those components
                                      don't
                                      > >have direct visibility to the customers, then it's my business how to
                                      manage
                                      > >them.
                                      >
                                      > Yes, you're right, we're talking about different situations. It is
                                      entirely
                                      > appropriate for your company to make an internal investment decision to
                                      > redo or restructure some old technology. In that case, your marketing
                                      > department or your VP R&D is the customer in the XP sense.
                                      >
                                      > At the same time, in JUST that situation, I've buried myself more than
                                      > once. I'd try to refactor my way out, as much as I hate that solution,
                                      > because I think it's safer. As Kent said above, if you have something that
                                      > works, it's generally best to hold on to it.
                                      >
                                      > Regards
                                      >
                                      > Ron Jeffries
                                      > www.XProgramming.com
                                      >
                                      >
                                      > To Post a message, send it to: extremeprogramming@...
                                      >
                                      > To Unsubscribe, send a blank message to:
                                      extremeprogramming-unsubscribe@...
                                      >
                                      > Ad-free courtesy of objectmentor.com
                                      >
                                      >
                                    • Ron Jeffries
                                      ... It s certainly supposed to ... Ron Jeffries www.XProgramming.com
                                      Message 18 of 20 , Apr 3, 2000
                                      • 0 Attachment
                                        At 05:29 PM 4/3/2000 -0500, you wrote:
                                        >Now that I think about it, my experience with rewriting is mostly from my
                                        >pre-refactoring (prefactoring?) days. I can't think of anything I've had to
                                        >rewrite since I started consciously refactoring my code. Perhaps merciless
                                        >refactoring removes the need for total rewrites.

                                        It's certainly supposed to ...

                                        Ron Jeffries
                                        www.XProgramming.com
                                      • nick.thurn@db.com
                                        ... From: Andy Glew ... This is also my experience. Perhaps it proves the point of YouAintGonnaNeedIt. cheers Nick
                                        Message 19 of 20 , Apr 3, 2000
                                        • 0 Attachment
                                          ----- Original Message -----
                                          From: "Andy Glew" <glew@...>
                                          > >
                                          > > Beware of "Second System Syndrome".
                                          > >
                                          > > In the rewrite, the programmer is tempted to do things
                                          > > the "right" way, add features, create extensibility, etc.
                                          > > It is reported that "second systems" often fail
                                          > > due to bloat.

                                          > Hmmm. I've never seen this happen. Perhaps this is a benefit of laziness.
                                          > I don't think adding features etc., is the "right" way. The second time I
                                          > write something, it tends to be smaller and simpler.

                                          This is also my experience. Perhaps it proves the point
                                          of YouAintGonnaNeedIt.

                                          cheers
                                          Nick
                                        • nick.thurn@db.com
                                          ... This is a pretty clear question however the answer is a bit ambiguous. In a sane organisation the organisation is paying and oversees the direct customer.
                                          Message 20 of 20 , Apr 3, 2000
                                          • 0 Attachment
                                            Ron Jeffries wrote:
                                            > Someone wrote:
                                            > >3. There are times when an organization needs to serve itself before the
                                            > >customer. One example is rewriting a component. Sometimes this is none of
                                            > >the customer's business, and they don't need to be in the loop. As long as
                                            > >the rewrite doesn't harm the customer.
                                            >
                                            > Who's paying?

                                            This is a pretty clear question however the answer is a bit ambiguous.

                                            In a sane organisation the organisation is paying and oversees the direct
                                            customer. The question "should we do this at all?" has been asked and
                                            answered up front with a "yes". Oversight of the customer's use of funds
                                            occurs periodically and the original decision is revisited based on this
                                            information. In this case the customer is paying but there is an organisational
                                            escalation point/s (Steering Commitee) that may be sympathetic to the wider
                                            issue.

                                            In many organisations (particularly big ones) oversight of the
                                            customer may not occur on a per project level just an overall budget.
                                            The supplier of the budget may be ambiguous, chargeback's? global HO?
                                            local direct? regional HO? In this case the customer is pretty free to
                                            do what he/she likes with funds for or against the interests of the
                                            organisation. No escalation point really available but the organisation
                                            is still paying somewhere, somehow.

                                            cheers
                                            Nick
                                          Your message has been successfully submitted and would be delivered to recipients shortly.