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

Re: How do you estimate third-party product integration in XP? (Was Re: [XP] An XP Experiment (long))

Expand Messages
  • Dossy
    ... Pretend you received advice from an expert whose knowledge you respect that the product will meet your customer s needs. Pretend that the expert has
    Message 1 of 29 , Dec 1, 2000
    • 0 Attachment
      On 2000.12.02, John Brewer <jbrewer@...> wrote:
      > > o How do you give an estimate for something like this? Pretend you
      > > have no experience with product XYZ at all, other than the fact
      > that
      > > you know for certain that it will meet your customer's needs.
      >
      > If I have no experience with it, how can I be certain it'll meet my
      > customer's needs?


      Pretend you received advice from an expert whose knowledge you
      respect that the product will meet your customer's needs. Pretend
      that the expert has first-hand experience with the product, and
      you have shown him your story cards---you have just paired on story
      estimation---and he made this recommendation to use product XYZ.

      The gut reaction is "why can't this expert make the estimate?" and
      the quick answer is "perhaps the expert can do it in X days, but
      your team probably won't be able to." No, the expert cannot take
      part in any of the integration, not even to answer questions. (Say,
      the expert is a friend only doing you a favor.)

      Do you ignore what the expert has to say and implement in-house since
      you lack any experience, or... what?


      > > Do you just say "I really have no idea, and no way of making an
      > > educated guess" and go forward with NO estimates? (Scary
      > thought.)
      >
      > You spike. If the spike is going to take a large chunk of time, you
      > get the customer to schedule it.


      What if you can't spike because you can't get an evaluation copy of
      the product to spike with, and you can't convince the customer to
      purchase the product just to run a spike?

      (Most companies will give eval. copies, but this is just a hypothetical.)


      > > (Pretend that no spike you could run would really give you a good
      > > idea of the difficulty with any real level of confidence.
      >
      > If no spike could give me an estimate, then I'd consider it too risky
      > to try.


      That's what I was thinking.


      > > Pretend
      > > that the cost of product XYZ would be the same or less than what
      > you
      > > would charge the customer to develop it yourself, and that time
      > to
      > > integrate product XYZ would be the same or less than the time it
      > > takes to implement it yourself.)
      >
      > Which one? If integration can cost as much as doing it ourselves,
      > then any cost of product XYZ represents an additional cost to the
      > customer.


      The win is speed or cost. Let me expand what I said into what I
      was really trying to express (un-refactoring, whatever we used to
      call this back in Algebra class... multiplying out?):

      If it would cost the same, it would take less time to buy the
      product.

      If it would take the same amount of time, it would cost less to
      buy the product.


      - Dossy

      --
      Dossy Shiobara mail: dossy@...
      Panoptic Computer Network web: http://www.panoptic.com/
    • Tim Mackinnon
      Guys - be careful with this approach. I would reccomend viewing connecting to something real (even if its fake) as a kind of System test which is allowed to
      Message 2 of 29 , Dec 3, 2000
      • 0 Attachment
        Guys - be careful with this approach. I would reccomend viewing
        connecting to something real (even if its fake) as a kind of System
        test which is allowed to fail.

        I say this because by virtue of the protocols involved you often get
        one-off failures when you run your unit tests (its hard to guarantee
        that you started your server in time to run tests against it,
        similarly shutting it down can be tricky as well).

        We have stuff like this, and we are slowly getting rid of it and
        replacing it with objects we can mock up - e.g. Url is final in Java
        but we have wrapped it and we use something we call a WebConnection.
        We pass this object around and for our tests we pass in a fake
        version that does no url connections at all. This is great for
        repeatable unit testing.

        We then have some separate "system tests" (I say system because they
        aren't really acceptance/functional becuase the user didn't really
        write them) that connect to live things and prove some of the lower
        level connectivity. These tests will sometimes fail, but that is
        acceptable within reason (e.g. 1 time in 10 or something like that).

        Tim

        --- In extremeprogramming@egroups.com, ejfried@c... wrote:
        > I think Paul Michali wrote:
        > > Laurent Bossavit wrote:
        > >
        > > > If it's not automated, it's not a test. Install a local mail
        server
        > > > (I recommend the shareware ArgoSoft it you're using Win32). Do
        the
        > > > Simplest Thing and rely on J2EE's JavaMail API to send mail as
        well
        > > > as read it (or, if the JavaMail API isn't congenial with you,
        have a
        > > > look at OROInc's NetComponents). In your test, send mail to
        > > > "localhost" (SMTP), then retrieve mail from "localhost" (POP3);
        check
        > > > that it is the same mail.
        > >
        > > Hmm. Hadn't thought of using a local mail server. I've never set
        one
        > > up, so I don't know how hard that is. This is one area that I'm
        hung on
        > > (how to test e-mailing). Maybe I should do a spike to see how to
        do
        > > this.
        > >
        > > I'll need to look into the JavaMail API too, as I forgot that
        this is
        > > something I can use. My old app opened a socket to our mail
        server to
        > > send e-mail. I was thinking of using a socket and have a thread
        that
        > > listens on the socket for the message and then send my "mail" to
        that
        > > socket instead.
        > >
        >
        >
        > I did precisely this on a recent project: wrote a tiny SMTP + POP3
        > mail server for testing purposes only. I put them both in the same
        > server, so there was no persistent message store; the SMTP server
        > received messages and put them into a HashMap of ArrayLists by
        > username, and the POP3 server pulled the messages out of the HashMap
        > and returned them. It was actually pretty easy -- you only need to
        > implement a few commands. You're not testing SMTP or POP3 protocol
        > compliance, so you can be pretty lax about what you accept. Use
        > JavaMail for the client side -- it's pretty painless.
        >
        >
        >
        > ---------------------------------------------------------
        > Ernest Friedman-Hill
        > Distributed Systems Research Phone: (925) 294-2154
        > Sandia National Labs FAX: (925) 294-2234
        > Org. 8920, MS 9012 ejfried@c...
        > PO Box 969 http://herzberg.ca.sandia.gov
        > Livermore, CA 94550
      • Laurent Bossavit
        ... Given the above assumptions, isn t there an extra risk involved when choosing the integration strategy over the development strategy ? The above
        Message 3 of 29 , Dec 4, 2000
        • 0 Attachment
          > Pretend that no spike you could run would really give you a good
          > idea of the difficulty with any real level of confidence. Pretend
          > that the cost of product XYZ would be the same or less than what
          > you would charge the customer to develop it yourself, and that time
          > to integrate product XYZ would be the same or less than the time it
          > takes to implement it yourself.

          Given the above assumptions, isn't there an extra risk involved
          when choosing the "integration" strategy over the "development"
          strategy ? The above implies that the "time", "scope", and "cost"
          variables are controlled, leaving what variable unconstrained ?..


          ========================================
          Bless n'a pas de modele : son ambition
          est d'en devenir un.
          ========================================
          Laurent Bossavit - Software Architect
          >>> laurent.bossavit@... <<<
          >>> 06 68 15 11 44 <<<
          >> ICQ#39281367 <<
          Agence Bless http://www.agencebless.com/
          ========================================
        • Dossy
          ... The idea was that quality, scope and cost would be fixed by choosing the third-party component. Quality, time and cost could be fixed by implementing
          Message 4 of 29 , Dec 4, 2000
          • 0 Attachment
            On 2000.12.04, Laurent Bossavit <laurent.bossavit@...> wrote:
            > > Pretend that no spike you could run would really give you a good
            > > idea of the difficulty with any real level of confidence. Pretend
            > > that the cost of product XYZ would be the same or less than what
            > > you would charge the customer to develop it yourself, and that time
            > > to integrate product XYZ would be the same or less than the time it
            > > takes to implement it yourself.
            >
            > Given the above assumptions, isn't there an extra risk involved
            > when choosing the "integration" strategy over the "development"
            > strategy ? The above implies that the "time", "scope", and "cost"
            > variables are controlled, leaving what variable unconstrained ?..

            The idea was that quality, scope and cost would be fixed by choosing
            the third-party component. Quality, time and cost could be fixed
            by implementing in-house.

            Still, my question really was: how do you give estimates for something
            you've never done before, and either there IS no spike that would give
            you an estimate you have confidence in, or you can't think of a spike,
            or the spike itself would be too time consuming/costly.

            It seems the common theme amongst the XP'ers is: "Too risky, don't
            do it."


            - Dossy

            --
            Dossy Shiobara mail: dossy@...
            Panoptic Computer Network web: http://www.panoptic.com/
          • Russell Giebelhaus
            I am currently reading Martin Fowler s book Refactoring: Improving the Design of Existing Code. I was intrigued to read about the Smalltalk Profiler for
            Message 5 of 29 , Dec 8, 2000
            • 0 Attachment
              I am currently reading Martin Fowler's book Refactoring: Improving the
              Design of Existing Code.
              I was intrigued to read about the Smalltalk Profiler for discovering and
              pinpointing performance concerns in the code.

              Are there similar profilers available for Java code?
              We are currently writing a transparent persistence layer (utilizing XP) and
              will soon be at the stage of needing to pinpoint performance issues.

              Thank you for your help,
              Russell Giebelhaus

              Developer, Web Solutions, net-linx Americas Inc.
              200, 12420 - 104 Avenue, Edmonton, Alberta, Canada T5N 3Z9
              russell.giebelhaus@...
            • Jason Yip
              ... wrote: ... It s like these things come in groups... PerfAnal,
              Message 6 of 29 , Dec 8, 2000
              • 0 Attachment
                --- In extremeprogramming@egroups.com, "Russell Giebelhaus"
                <russell.giebelhaus@n...> wrote:
                <snip>
                > Are there similar profilers available for Java code?
                > We are currently writing a transparent persistence layer (utilizing
                > XP) and will soon be at the stage of needing to pinpoint
                > performance issues.

                It's like these things come in groups...

                PerfAnal,
                http://developer.java.sun.com/developer/technicalArticles/Programming/
                perfanal/

                or jProf, http://www.inttek.com/~jlnance/mozilla/jprof/
              • Chad Fowler
                ... For a cheap solution, try java -prof . It s not beautiful to read, but it can be helpful.
                Message 7 of 29 , Dec 9, 2000
                • 0 Attachment
                  >
                  > Are there similar profilers available for Java code?

                  For a cheap solution, try "java -prof <your class>". It's not
                  beautiful to read, but it can be helpful.
                • Kevin Lewis
                  The commercial players I know about: http://www.optimizeit.com/ http://www.jprobe.com/software/jprobe/ I do think that the profiling support in the JDK is
                  Message 8 of 29 , Dec 16, 2000
                  • 0 Attachment
                    The commercial players I know about:
                    http://www.optimizeit.com/
                    http://www.jprobe.com/software/jprobe/

                    I do think that the profiling support in the JDK is pretty good.

                    --
                    Kevin Lewis
                    Axys Solutions
                    http://www.AxysSolutions.com/
                  Your message has been successfully submitted and would be delivered to recipients shortly.