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

strictly minimal

Expand Messages
  • Wayne Dawson
    Hi everyone, I m wondering how strict people are in minimizing in XP. Earlier I was creating a very simple database table for a club website. The club has a
    Message 1 of 23 , Dec 30, 2003
    • 0 Attachment
      Hi everyone,
      I'm wondering how strict people are in minimizing in XP.
      Earlier I was creating a very simple database table for a club
      website. The club has a few offices (8), and of course a member for each
      office, (ie. President, Secretary, etc.).
      I just want to make it so they can change their list of officers on the
      web without giving them the ability to upload files to the site, which I am
      hosting.
      A strict minimalist approach would demand that I have two fields in the
      table: office (President, etc.), person (Joe Schmoe). It occurs to me,
      however, that it might be useful to have a few dates in the table: date
      entered, officeholder's start date, officeholder's end date.
      Should I be very strict and avoid putting these extra fields in the
      table, or is it not that big of a deal?

      Thanks,
      Wayne Dawson

      _____________________________________________________________________
      Domain Names for sale! http://LibertarianDomainNames.com/

      Need an experienced programmer who knows both the Unix and Microsoft worlds?

      Then you need to hire Wayne: http://HireWayne.com Wayne@...
      _____________________________________________________________________
    • david nicol
      ... I saw Gosford Park again last night. A good servent anticipates. Balancing anticipation with minimalism is tricky. How big of a deal it is to add a
      Message 2 of 23 , Dec 30, 2003
      • 0 Attachment
        On Tue, 2003-12-30 at 19:47, Wayne Dawson wrote:
        > A strict minimalist approach would demand that I have two fields in the
        > table: office (President, etc.), person (Joe Schmoe). It occurs to me,
        > however, that it might be useful to have a few dates in the table: date
        > entered, officeholder's start date, officeholder's end date.
        > Should I be very strict and avoid putting these extra fields in the
        > table, or is it not that big of a deal?

        I saw "Gosford Park" again last night. "A good servent anticipates."
        Balancing anticipation with minimalism is tricky. How big of a deal it
        is to add a field depends entirely on the implementation you are using.



        --
        david nicol
        And now for something boldly anticlimactic.
      • yahoogroups@jhrothjr.com
        From: Wayne Dawson Sent: Tuesday, December 30, 2003 8:47 PM Subject: [XP] strictly minimal ...
        Message 3 of 23 , Dec 30, 2003
        • 0 Attachment
          From: "Wayne Dawson"
          <YahooGroups.at.LibertyServer.com@...>
          Sent: Tuesday, December 30, 2003 8:47 PM
          Subject: [XP] strictly minimal


          > Hi everyone,
          > I'm wondering how strict people are in minimizing in XP.
          > Earlier I was creating a very simple database table for a club
          > website. The club has a few offices (8), and of course a member for each
          > office, (ie. President, Secretary, etc.).
          > I just want to make it so they can change their list of officers on the
          > web without giving them the ability to upload files to the site, which I
          am
          > hosting.
          > A strict minimalist approach would demand that I have two fields in the
          > table: office (President, etc.), person (Joe Schmoe). It occurs to me,
          > however, that it might be useful to have a few dates in the table: date
          > entered, officeholder's start date, officeholder's end date.
          > Should I be very strict and avoid putting these extra fields in the
          > table, or is it not that big of a deal?

          It's basically a matter of what the user wants. I assume you're setting
          the specs (that is, you're playing the part of the user.)

          The only thing I'd have a problem with is a "dangling field." That is,
          a field that's entered in the data base but not used for anything. If it's
          used for display (which I assume it is from your comments) then it's
          not dangling.

          The other respondant's comment is also to the point: you need to
          consider how easy it is to change the data base schema. The easier
          it is, the less you need to put in "extra" fields in case you need them
          later. See Scott Ambler's site (www.agiledata.org) for a very good
          and very professional writeup on how to handle data bases.

          John Roth



          >
          > Thanks,
          > Wayne Dawson
        • Ron Jeffries
          ... Do you have a test for that? Ron Jeffries www.XProgramming.com It is better to have less thunder in the mouth and more lightning in the hand. -- Apache
          Message 4 of 23 , Dec 30, 2003
          • 0 Attachment
            On Tuesday, December 30, 2003, at 8:47:43 PM, Wayne Dawson wrote:

            > I'm wondering how strict people are in minimizing in XP.
            > Earlier I was creating a very simple database table for a club
            > website. The club has a few offices (8), and of course a member for each
            > office, (ie. President, Secretary, etc.).
            > I just want to make it so they can change their list of officers on the
            > web without giving them the ability to upload files to the site, which I am
            > hosting.
            > A strict minimalist approach would demand that I have two fields in the
            > table: office (President, etc.), person (Joe Schmoe). It occurs to me,
            > however, that it might be useful to have a few dates in the table: date
            > entered, officeholder's start date, officeholder's end date.
            > Should I be very strict and avoid putting these extra fields in the
            > table, or is it not that big of a deal?

            Do you have a test for that?

            Ron Jeffries
            www.XProgramming.com
            It is better to have less thunder in the mouth
            and more lightning in the hand. -- Apache proverb
          • William E Caputo
            ... Minimalism, in this context has no correlation with XP per se. What would determine the inclusion (or exclusion) of these date fields on an XP project
            Message 5 of 23 , Dec 30, 2003
            • 0 Attachment
              Wayne Dawson:
              >A strict minimalist approach would demand that I have two fields in the
              >table: office (President, etc.), person (Joe Schmoe). It occurs to me,
              >however, that it might be useful to have a few dates in the table: date
              >entered, officeholder's start date, officeholder's end date.

              Minimalism, in this context has no correlation with XP per se. What would
              determine the inclusion (or exclusion) of these date fields on an XP
              project would be the existence (or absence) of a story that needed such
              fields to be completed.

              If we never work on a story that required persisting these dates then
              these date fields will never be created.

              If we have a story that includes date persistence, then will add implement
              something (quite possibly these date fields) exactly when that story
              enters an iteration. If for some reason we feel its really important to
              have this design decision made early (e.g. the database is really, really
              hard to change), then we must convince our customer that the story is best
              done early (or communicate to them the additional cost of delay).

              Simple (a related but IMO distinct concept from Minimal) as expressed in
              the (oft abused an misunderstood) XP aphorism "The Simplest Thing That Can
              Possibly Work" is (again IMO) only applicable in the context of the
              stories our designs are meant to implement. We implement Nothing More --
              but also (this is the part people often miss) -- Nothing Less that what is
              needed for the features we in present (and past) iterations.

              Strictly adhere to that and you are doing XP-style evolutionary design, no
              matter how many (or few) objects your database ultimately has.

              Best,
              Bill

              William E. Caputo
              ThoughtWorks, Inc.
              http://www.williamcaputo.com
              --------
              idia ktesis, koine chresis
            • William Pietri
              ... A yet more strictly minimalist approach would say: why use a database? William P.S. I agree with the others: The product manager gets to decide the
              Message 6 of 23 , Dec 30, 2003
              • 0 Attachment
                On Tue, 2003-12-30 at 17:47, Wayne Dawson wrote:
                > A strict minimalist approach would demand that I have two fields in the
                > table: office (President, etc.), person (Joe Schmoe).

                A yet more strictly minimalist approach would say: why use a database?

                William

                P.S. I agree with the others: The product manager gets to decide the
                user-facing behavior of the product. If you're playing both the role of
                product manager and the role of developer, that can be tricky. In your
                shoes, I would get the version with two fields up and working. Then I'd
                see whether or not I wanted to go back and add more features.
              • Wayne Dawson
                ... I m only doing ad hoc testing. I m so new to this, I m wet behind the ears. How do you recommend writing tests for a small web app? Thanks, Wayne
                Message 7 of 23 , Dec 30, 2003
                • 0 Attachment
                  On Tuesday, December 30, 2003, at 8:47:43 PM, Wayne Dawson wrote:

                  > I'm wondering how strict people are in minimizing in XP.
                  > Earlier I was creating a very simple database table for a club
                  > website. The club has a few offices (8), and of course a member for each
                  > office, (ie. President, Secretary, etc.).
                  > I just want to make it so they can change their list of officers on the
                  > web without giving them the ability to upload files to the site, which I am
                  > hosting.
                  > A strict minimalist approach would demand that I have two fields in the
                  > table: office (President, etc.), person (Joe Schmoe). It occurs to me,
                  > however, that it might be useful to have a few dates in the table: date
                  > entered, officeholder's start date, officeholder's end date.
                  > Should I be very strict and avoid putting these extra fields in the
                  > table, or is it not that big of a deal?

                  At 09:48 PM 12/30/03, Ron Jeffries <ronjeffries@...> wrote:
                  >Do you have a test for that?

                  I'm only doing ad hoc testing.

                  I'm so new to this, I'm wet behind the ears. How do you recommend writing
                  tests for a small web app?

                  Thanks,
                  Wayne
                • William Pietri
                  ... Web apps, like GUIs, are a little hard. The easiest way to start is testing individual objects. Then I next go for integration tests that check the
                  Message 8 of 23 , Dec 30, 2003
                  • 0 Attachment
                    On Tue, 2003-12-30 at 19:39, Wayne Dawson wrote:
                    > I'm so new to this, I'm wet behind the ears. How do you recommend writing
                    > tests for a small web app?

                    Web apps, like GUIs, are a little hard. The easiest way to start is
                    testing individual objects. Then I next go for integration tests that
                    check the system's response to simulated requests in a simulated
                    environment.

                    Then to make sure it really, really works I like end-to-end tests with
                    something like HttpUnit, so that I'm testing the full system in exactly
                    the way a user would interact with it. But those tests are slower and
                    more demanding to write and run than the other sorts of tests.


                    William

                    ----
                    http://scissor.com/
                  • Ron Jeffries
                    ... It s OK to be wet behind the ears. On the other hand, Testing is actually an XP practice, and Minimalism isn t. I d suggest starting XP with its practices,
                    Message 9 of 23 , Dec 31, 2003
                    • 0 Attachment
                      On Tuesday, December 30, 2003, at 10:39:32 PM, Wayne Dawson wrote:

                      > On Tuesday, December 30, 2003, at 8:47:43 PM, Wayne Dawson wrote:

                      > > I'm wondering how strict people are in minimizing in XP.
                      > > Earlier I was creating a very simple database table for a club
                      > > website. The club has a few offices (8), and of course a member for each
                      > > office, (ie. President, Secretary, etc.).
                      > > I just want to make it so they can change their list of officers on the
                      > > web without giving them the ability to upload files to the site, which I am
                      > > hosting.
                      > > A strict minimalist approach would demand that I have two fields in the
                      > > table: office (President, etc.), person (Joe Schmoe). It occurs to me,
                      > > however, that it might be useful to have a few dates in the table: date
                      > > entered, officeholder's start date, officeholder's end date.
                      > > Should I be very strict and avoid putting these extra fields in the
                      > > table, or is it not that big of a deal?

                      > At 09:48 PM 12/30/03, Ron Jeffries <ronjeffries@...> wrote:
                      >>Do you have a test for that?

                      > I'm only doing ad hoc testing.

                      It's OK to be wet behind the ears. On the other hand, Testing is actually
                      an XP practice, and Minimalism isn't. I'd suggest starting XP with its
                      practices, not with one's own interpretation of its principles, because to
                      me, it is the practices that really teach us what it's all about.

                      "Do you have a test for that?" is sort of a trick question, used to remind
                      us of the following series of thoughts when we start to implement
                      something, like perhaps a few dates in a table. Using today's thinking, XP
                      programmers never write a line of code unless they have a test that
                      requires those lines. And they never write a test unless they have a story
                      -- a user requirement -- that calls for the test.

                      So when I ask if there is a test for those dates, I'm asking whether there
                      is, in our hands right now, a requirement calling for those dates, and
                      whether those dates are something that we are working on this very minute.

                      I can't always resist adding in things like the date fields just because
                      I'm passing through, but I always try. For me, things go better when I do
                      less speculation.

                      So even without tests, I'd use the question to get the answer, for me,
                      which would be not to put the dates in yet. When they do need to go in, we
                      know right where they'll go, into a <dd></dd> right after the name, and
                      there will be little more impact than that. So my guess is that there's
                      work to do to put dates in, but not much payback in terms of what I learn
                      about the app, or about XP, compared to what I learn from putting in a
                      minimal table.

                      That's just me ... but I would try not to do the date fields first time
                      out.

                      > I'm so new to this, I'm wet behind the ears. How do you recommend writing
                      > tests for a small web app?

                      It's a hard question. What tools are you using? When I do web things, I
                      work in two ways:

                      1. Either I generate the pages from input data, using XSLT, or
                      2. I write them in C# and ASP.NET.

                      I've just started doing the latter, and I'm not very good at it yet. What I
                      like about that way, though, is that in .NET, it is easy to keep all the C#
                      code as separate C# classes, and I can test those the same way I would test
                      any other C# code, namely with the NUnit testing framework (analogous to
                      jUnit for Java, sUnit for Smalltalk, and so on).

                      It's really hard to test my XSLT stuff and I have never found a good way to
                      do it. Some of my site generation code is in Ruby, and that I am able to
                      write in a test-driven fashion. But the XSLT I have not yet learned to test
                      well, and it causes me great trouble, because ad hoc testing leads to ad
                      hoc debugging, which is very time-consuming. The result is that I am very
                      reluctant to change the layout of my web site, or anything else that is
                      closely tied to the XSLT part of my site. I've written my very own legacy
                      code! A wonderful situation to be in for a guy who is supposed to be an XP
                      spokesmodel!

                      Having learned that lesson for the thousandth time, I can only resolve
                      again not to make the same mistake again. Thus the XSLT to .NET transition,
                      which is just starting.

                      What does this mean to you? Well, it means that starting with a simple web
                      app makes it hard to do some of the XP practices, but not impossible. Thus
                      my question about how you're doing the app, in hopes that we have some
                      tools and ideas that can help you. And it means that I would work hard to
                      put the logic of the app off separate from the layout, so that I could
                      write unit tests for as much of it as possible.

                      So ... tell us more ...

                      Ron Jeffries
                      www.XProgramming.com
                      The main reason that testing at the end of a development cycle finds
                      problems is not that problems were put in near the end, it is that
                      testing was put off until then.
                    • Jeff Grigg
                      ... And if your (Wayne s) immediate reaction is, But I *NEED* a database, because I ll have screens that update the data. , then it will be helpful to realize
                      Message 10 of 23 , Dec 31, 2003
                      • 0 Attachment
                        > On Tue, 2003-12-30 at 17:47, Wayne Dawson wrote:
                        >> A strict minimalist approach would demand that I have
                        >> two fields in the table: office (President, etc.),
                        >> person (Joe Schmoe).

                        --- William Pietri <william@s...> wrote:
                        > A yet more strictly minimalist approach would say:
                        > why use a database?

                        And if your (Wayne's) immediate reaction is, "But I *NEED* a
                        database, because I'll have screens that update the data.", then it
                        will be helpful to realize that with 8 officer records, it will
                        probably be /a lot/ faster to read and write a small text file
                        containing all the data than to do a single relational database
                        transaction. If you still think we're crazy, see the
                        http://www.prevayler.org/ web site. This "eight officer records"
                        application is not complicated enough to need Prevayler, but reading
                        about it could be inspiring. ;->
                      • Chris Morris
                        ... Another option is to drive the browser. Using Ruby and IE, it s not very difficult to get some good testing going. I ve been piecing together a helper
                        Message 11 of 23 , Dec 31, 2003
                        • 0 Attachment
                          Wayne Dawson wrote:

                          >I'm so new to this, I'm wet behind the ears. How do you recommend writing
                          >tests for a small web app?
                          >
                          >
                          Another option is to drive the browser. Using Ruby and IE, it's not very
                          difficult to get some good testing going. I've been piecing together a
                          helper library as well, with some others, though it's not very thorough.
                          You can get more info here: http://clabs.org/wtr

                          --
                          Chris
                          http://clabs.org/blogki
                        • J. B. Rainsberger
                          ... Questions: * How might it be useful? To whom? * How much does it cost you to add that now? * What s the worst that happens if you don t add that now? ...
                          Message 12 of 23 , Dec 31, 2003
                          • 0 Attachment
                            Wayne Dawson wrote:

                            > Hi everyone,
                            > I'm wondering how strict people are in minimizing in XP.
                            > Earlier I was creating a very simple database table for a club
                            > website. The club has a few offices (8), and of course a member for each
                            > office, (ie. President, Secretary, etc.).
                            > I just want to make it so they can change their list of officers on the
                            > web without giving them the ability to upload files to the site, which I am
                            > hosting.
                            > A strict minimalist approach would demand that I have two fields in the
                            > table: office (President, etc.), person (Joe Schmoe). It occurs to me,
                            > however, that it might be useful to have a few dates in the table: date
                            > entered, officeholder's start date, officeholder's end date.

                            Questions:

                            * How might it be useful? To whom?
                            * How much does it cost you to add that now?
                            * What's the worst that happens if you don't add that now?

                            > Should I be very strict and avoid putting these extra fields in the
                            > table, or is it not that big of a deal?

                            Later, when you find out that those dates were the wrong fields to add,
                            but instead you need to add these other fields, how will you feel about
                            the time you spent adding the dates?
                            --
                            J. B. Rainsberger,
                            Diaspar Software Services
                            http://www.diasparsoftware.com :: +1 416 791-8603
                            Let's write software that people understand
                          • J. B. Rainsberger
                            ... William, surely you meant HTMLUnit. :) -- J. B. Rainsberger, Diaspar Software Services http://www.diasparsoftware.com :: +1 416 791-8603 Let s write
                            Message 13 of 23 , Dec 31, 2003
                            • 0 Attachment
                              William Pietri wrote:

                              > On Tue, 2003-12-30 at 19:39, Wayne Dawson wrote:
                              >
                              >>I'm so new to this, I'm wet behind the ears. How do you recommend writing
                              >>tests for a small web app?
                              >
                              > Web apps, like GUIs, are a little hard. The easiest way to start is
                              > testing individual objects. Then I next go for integration tests that
                              > check the system's response to simulated requests in a simulated
                              > environment.
                              >
                              > Then to make sure it really, really works I like end-to-end tests with
                              > something like HttpUnit, so that I'm testing the full system in exactly
                              > the way a user would interact with it. But those tests are slower and
                              > more demanding to write and run than the other sorts of tests.

                              William, surely you meant HTMLUnit. :)
                              --
                              J. B. Rainsberger,
                              Diaspar Software Services
                              http://www.diasparsoftware.com :: +1 416 791-8603
                              Let's write software that people understand
                            • Edmund Schweppe
                              ... Potentially silly question: what have you found to be the really hard part of testing XSLT? I haven t done it in a while, but about a year ago I TDD d
                              Message 14 of 23 , Dec 31, 2003
                              • 0 Attachment
                                Ron Jeffries wrote:

                                > It's really hard to test my XSLT stuff and I have never found a good way to
                                > do it. Some of my site generation code is in Ruby, and that I am able to
                                > write in a test-driven fashion. But the XSLT I have not yet learned to test
                                > well, and it causes me great trouble, because ad hoc testing leads to ad
                                > hoc debugging, which is very time-consuming.

                                Potentially silly question: what have you found to be the "really hard"
                                part of testing XSLT? I haven't done it in a while, but about a year ago
                                I TDD'd several XSLT stylesheets for generating HTML pages; the trick to
                                testing them, I found, was to (a) make sure the resulting HTML was also
                                good XML and (b) use lots of XPath queries to test the results of the
                                transforms.

                                --
                                Edmund Schweppe -- schweppe@... -- http://schweppe.home.tiac.net
                                The opinions expressed herein are at best coincidentally related to
                                those of any past, present or future employer.
                              • Ron Jeffries
                                ... I m probably just ignorant or lazy. My XSLT transforms are quite complex, between the complexity of the XProgramming pages, the use of CSS, the creation of
                                Message 15 of 23 , Dec 31, 2003
                                • 0 Attachment
                                  On Wednesday, December 31, 2003, at 2:15:19 PM, Edmund Schweppe wrote:

                                  >> It's really hard to test my XSLT stuff and I have never found a good way to
                                  >> do it. Some of my site generation code is in Ruby, and that I am able to
                                  >> write in a test-driven fashion. But the XSLT I have not yet learned to test
                                  >> well, and it causes me great trouble, because ad hoc testing leads to ad
                                  >> hoc debugging, which is very time-consuming.

                                  > Potentially silly question: what have you found to be the "really hard"
                                  > part of testing XSLT? I haven't done it in a while, but about a year ago
                                  > I TDD'd several XSLT stylesheets for generating HTML pages; the trick to
                                  > testing them, I found, was to (a) make sure the resulting HTML was also
                                  > good XML and (b) use lots of XPath queries to test the results of the
                                  > transforms.

                                  I'm probably just ignorant or lazy. My XSLT transforms are quite complex,
                                  between the complexity of the XProgramming pages, the use of CSS, the
                                  creation of the indexes, and so on.

                                  I never learned or was taught a good way to write a tiny module of XSLT,
                                  test it to see if it worked (other than by inspection), and then embed it
                                  back into the big XSLT picture.

                                  In programming, I'd be writing and testing functions and methods. In XLST I
                                  don't know how to do that. It could be easy -- I just don't know how to do
                                  it.

                                  Ron Jeffries
                                  www.XProgramming.com
                                  Scientists discover the world that exists;
                                  engineers create the world that never was.
                                  -- Theodore von Karman
                                • William Pietri
                                  ... Ooh, that s exciting. I hadn t seen it before, so I ll give the link: http://htmlunit.sourceforge.net/ Their basic gripe with HttpUnit, that it s at the
                                  Message 16 of 23 , Dec 31, 2003
                                  • 0 Attachment
                                    On Wed, 2003-12-31 at 09:45, J. B. Rainsberger wrote:
                                    >
                                    > William, surely you meant HTMLUnit. :)

                                    Ooh, that's exciting. I hadn't seen it before, so I'll give the link:

                                    http://htmlunit.sourceforge.net/

                                    Their basic gripe with HttpUnit, that it's at the wrong level of
                                    abstraction for typical web tests, is one I agree with. When I started
                                    using HttpUnit a couple years back, I ended up writing a custom wrapper
                                    that provided a lot of that abstraction. But I'm delighted that somebody
                                    has taken the time to redo things from the ground up. How do you like
                                    it?

                                    William
                                  • Wayne Dawson
                                    Thanks, everybody who has responded so far. I ve decided to put up a simple page that meets my minimum requirements and then get input from someone who will
                                    Message 17 of 23 , Jan 1, 2004
                                    • 0 Attachment
                                      Thanks, everybody who has responded so far.

                                      I've decided to put up a simple page that meets my minimum requirements and
                                      then get input from someone who will actually use it before going
                                      farther. (Main requirement is to allow them to change the officers on the
                                      website instead of asking me to do it.) By the way, in case anybody is
                                      interested, it is at http://LibertarianToastmasters.org/. It really is a
                                      rather simple website.

                                      Regarding tools, I'm just using a plain text editor (WordPad on Windows)
                                      and uploading my php code to a linux box running Apache and mySQL.

                                      I'm using a database for a couple of reasons:
                                      1) It seems an easy way for me to control how the user(s) interact with the
                                      website (although I might change to having my form processor generate an
                                      include file, since someone suggested a text file),
                                      2) To learn about mySQL, which I've never used before. (My host has mySQL
                                      available, but not PostgreSQL, which I have a good bit of experience with.).

                                      Why I'm thinking XP on this: it's the first project I've started working
                                      on since I learned of XP, and I just automatically started thinking, "gee,
                                      how would XP deal with this?" Specifically in relation to the extra fields
                                      for future use. I've decided that the "future use" thing is really against
                                      the XP philosophy.

                                      I'm currently reading Extreme Programming Explained, but in the mean time,
                                      which XP practice is the most important one to implement? Ie. which one
                                      should I start using first?

                                      Thanks,
                                      Wayne

                                      _____________________________________________________________________
                                      Domain Names for sale! http://LibertarianDomainNames.com/

                                      Need an experienced programmer who knows both the Unix and Microsoft worlds?

                                      Then you need to hire Wayne: http://HireWayne.com Wayne@...
                                      _____________________________________________________________________
                                    • J. B. Rainsberger
                                      ... Well, I was fortunate to be on its first project, and I rather liked it. I much prefer writing tests like page := getPage(url) saveButton :=
                                      Message 18 of 23 , Jan 1, 2004
                                      • 0 Attachment
                                        William Pietri wrote:

                                        > On Wed, 2003-12-31 at 09:45, J. B. Rainsberger wrote:
                                        >
                                        >>William, surely you meant HTMLUnit. :)
                                        >
                                        > Ooh, that's exciting. I hadn't seen it before, so I'll give the link:
                                        >
                                        > http://htmlunit.sourceforge.net/
                                        >
                                        > Their basic gripe with HttpUnit, that it's at the wrong level of
                                        > abstraction for typical web tests, is one I agree with. When I started
                                        > using HttpUnit a couple years back, I ended up writing a custom wrapper
                                        > that provided a lot of that abstraction. But I'm delighted that somebody
                                        > has taken the time to redo things from the ground up. How do you like
                                        > it?

                                        Well, I was fortunate to be on its first project, and I rather liked it.
                                        I much prefer writing tests like

                                        page := getPage(url)
                                        saveButton := page.findButton("save")
                                        responsePage := saveButton.click
                                        assert...

                                        than worrying about low-level HTTP stuff. I cover HTMLUnit as my
                                        end-to-end web app testing tool of choice in my upcoming book. I think I
                                        might mention HTTPUnit in passing.... I don't /hate/ HTTPUnit, but I
                                        much prefer HTMLUnit.

                                        What I have /not/ tried is jWebUnit, which appears to be very similar to
                                        HTMLUnit in approach. Apparently people rather like it.
                                        --
                                        J. B. Rainsberger,
                                        Diaspar Software Services
                                        http://www.diasparsoftware.com :: +1 416 791-8603
                                        Let's write software that people understand
                                      • Jeff Grigg
                                        ... Libertarian Toastmasters; now that s bound to be interesting. Being a CTM myself, I d recommend even more strongly against prematurely putting dates into
                                        Message 19 of 23 , Jan 1, 2004
                                        • 0 Attachment
                                          --- Wayne Dawson <YahooGroups@L...> wrote:
                                          > [...] http://LibertarianToastmasters.org/ [...]

                                          Libertarian Toastmasters; now that's bound to be interesting.

                                          Being a CTM myself, I'd recommend even more strongly against
                                          prematurely putting dates into the officers table. All Toastmasters
                                          clubs I've seen elect all the officers at once, to serve the same
                                          term. And rarely does anyone care who the officers were last year or
                                          the year before. (And if they cared, they would probably already
                                          know. ;-) Generally, the only question of relevance is, "Who are
                                          the officers /now/?" (IE: today)

                                          (And I'm a "card carrying Libertarian" too. ;-)


                                          > Regarding tools, I'm just using a plain text editor (WordPad
                                          > on Windows) [...].

                                          (Anyone for the "Visual Notepad" IDE? ;-)


                                          > I'm using a database for a couple of reasons: [...]

                                          The XP approach is to "Do The Simplest Thing That Could Possibly
                                          Work." And then enhance it later, if needed. So one could start
                                          with a text file, or a serialized stream of Java objects, and later
                                          refactor it to use the relational database.

                                          > [...] I've decided that the "future use" thing is really
                                          > against the XP philosophy.

                                          (...and that's why people are challenging the database. You can go
                                          ahead and do use the database if you really want, but you'll
                                          not /really/ be following the "true" XP philosophy. Try doing
                                          without it. See what happens. ;-)


                                          > I'm currently reading Extreme Programming Explained, but
                                          > in the mean time, which XP practice is the most important
                                          > one to implement? Ie. which one should I start using first?

                                          Testing. I recommend starting with testing. I find that a number of
                                          the other practices tend to follow from that, like simple design and
                                          refactoring, if you start by focusing on testing. And the longer you
                                          go without Test Driven Development style testing, the harder it will
                                          be to get it going once you start.
                                        • Charlie Poole
                                          Hi Wayne, ... It s relatively simple to install a copy of php - preferably the same version as your host s - on Windows. Then you can create some defines based
                                          Message 20 of 23 , Jan 1, 2004
                                          • 0 Attachment
                                            Hi Wayne,

                                            > Regarding tools, I'm just using a plain text editor (WordPad on Windows)
                                            > and uploading my php code to a linux box running Apache and mySQL.

                                            It's relatively simple to install a copy of php - preferably the same
                                            version as your host's - on Windows. Then you can create some defines
                                            based on the url on which you are called and base all your other accesses
                                            on those defines.

                                            For example, my sites listed below are also available to me on my
                                            local machine. That allows me to make small changes very quickly,
                                            then deploy the changed files to my host where they almost always
                                            work the first time.

                                            Charlie Poole
                                            cpoole@...
                                            www.pooleconsulting.com
                                            www.charliepoole.org
                                          • William E Caputo
                                            ... Two things I want to note before I answer your question: 1) Many (most?) people start out with XP by themselves, learning it and then trying to apply it.
                                            Message 21 of 23 , Jan 1, 2004
                                            • 0 Attachment
                                              Wayne Dawson:
                                              >I'm currently reading Extreme Programming Explained, but in the mean time,

                                              >which XP practice is the most important one to implement? Ie. which one
                                              >should I start using first?

                                              Two things I want to note before I answer your question:

                                              1) Many (most?) people start out with XP by themselves, learning it and
                                              then trying to apply it.

                                              2) XP is fundamentally a team software methodology. As such, you will not
                                              really understand XP until you do it as part of a team of programmers
                                              working with a customer (I know I didn't).

                                              I introduce these two caveats, not to discourage you, but so that you have
                                              the proper expectations of what you can accomplish alone. You can learn a
                                              lot of the practices of XP alone, and some of them will be useful to you
                                              even if you never work as part of a team -- but you will not really be
                                              learning (or practicing) XP.

                                              OK, caveats aside, Here's what I feel are the best practices for starting
                                              out alone, using Ron's ever-helpful "What is XP?" page for the definition
                                              of the practices
                                              (found here: http://www.xprogramming.com/xpmag/whatisxp.htm):

                                              *Simple Design*

                                              For more on this, there are probably hundreds of pages at the c2 wiki,
                                              here is a good starting point:
                                              http://www.c2.com/cgi/wiki?DoTheSimplestThingThatCouldPossiblyWork)

                                              *Test-Driven Development*

                                              IMO Kent's book "Test-Driven Development by Example" is the best resource
                                              for learning this

                                              *Design Improvement*

                                              aka Refactoring. Although the definition of TDD includes refactoring, its
                                              still valuable to keep it as a separate concept ("TDD" was originally
                                              "write tests before writing code", and "design improvement" was
                                              "refactor". Since Test, Code, Refactor is the smallest period of work in
                                              XP, its natural that these two practices have moved closer together over
                                              the last few years). Martin Fowler's book "Refactoring: Improving the
                                              Design of Existing Code is practically the canonical source for learning
                                              this technique. Please don't confuse Refactoring, with Rewriting. Its an
                                              overused buzzword. People here tend to use the term correctly.

                                              These three practices are probably enough to get you started. From here,
                                              you can really only approximate what XP is like since the other practices
                                              all involve interactions with other people (and some like Pairing make no
                                              sense when working alone). Probably the most accessible when working alone
                                              are the story and planning practices:

                                              *Planning Game*

                                              Writing and estimating stories even by yourself is often useful, if for no
                                              other reason than that the act of doing so is a good way to help you
                                              determine the scope of the project you have set yourself. While its also a
                                              good way to practice the technique, its *not* a very accurate substitute
                                              for having a Customer write the stories, and then having the Programmers
                                              estimate them (because the real practice involves two people trying to
                                              come to a common understanding). Kent and Martin's book "Planning eXtreme
                                              Programming" is a good (if possibly a little dated) place to start. I
                                              learned XP planning before that book came out so its the last book I read
                                              on the topic. Others may be able to provide other references.

                                              *Small Releases*

                                              Getting your stuff in front of people who will use it is always the best
                                              way to find out what you missed, and to pierce that bubble of
                                              self-delusion that we create around our ideas when no one else is
                                              involved. Get your stuff "live" as quickly as is practical (when working
                                              alone, you could probably release after nearly every work session).

                                              *Customer Tests*

                                              aka Acceptance Tests, Story Tests, Functional Tests, etc -- are important,
                                              but really hard to understand when working alone. The idea is that you
                                              should write (and automate) tests that are oriented to your stories and
                                              thus demonstrating functionality from the perspective of the Customer
                                              (hence the name). They also generally test more end-to-end functionality
                                              than TDD tests (nee XP unit tests, or programmer tests). Finally, they
                                              (and not the TDD tests!) take on a verification role that you are building
                                              the right thing. TDD is a *design* activity; TDD tests play only a
                                              secondary role in regression, and nearly nothing in the way of saying we
                                              built the right thing (but they do say we built the thing the way we
                                              expected to). In short, Customer Tests are really necessary, but you
                                              probably won't get them right working alone, so you might want to put off
                                              learning this practice until you are comfortable working with the ones
                                              listed above. If you do try to write some, I suggest checking out the tool
                                              fit (http://fit.c2.com)

                                              Hope that helps. That should certainly keep you busy for several months
                                              (years?). I still feel like I am learning how to do these six practices,
                                              so don't let their apparent simplicity fool you. OTOH, you can get
                                              competent/productive with the first three in a couple of weeks, and get
                                              working versions of the second three in a similar amount of time, and find
                                              yourself with a productive personal process that may be totally
                                              satisfactory for you. Regardless, I hope you enjoy the experience.

                                              Best,
                                              Bill

                                              William E. Caputo
                                              ThoughtWorks, Inc.
                                              http://www.williamcaputo.com
                                              --------
                                              idia ktesis, koine chresis
                                            • Ron Jeffries
                                              ... Great report, Bill! Well done, thanks! Would you like to convert that to an XProgramming article, by the way? Ron Jeffries www.XProgramming.com I could be
                                              Message 22 of 23 , Jan 1, 2004
                                              • 0 Attachment
                                                On Thursday, January 1, 2004, at 2:58:02 PM, William E Caputo wrote:

                                                > OK, caveats aside, Here's what I feel are the best practices for starting
                                                > out alone,

                                                Great report, Bill! Well done, thanks!

                                                Would you like to convert that to an XProgramming article, by the way?

                                                Ron Jeffries
                                                www.XProgramming.com
                                                I could be wrong, of course. It's just not the way to bet.
                                              • Charlie Poole
                                                Hi Bill, I m saving this one! Charlie Poole cpoole@pooleconsulting.com www.pooleconsulting.com www.charliepoole.org
                                                Message 23 of 23 , Jan 1, 2004
                                                • 0 Attachment
                                                  Hi Bill,

                                                  I'm saving this one!

                                                  Charlie Poole
                                                  cpoole@...
                                                  www.pooleconsulting.com
                                                  www.charliepoole.org



                                                  > -----Original Message-----
                                                  > From: William E Caputo [mailto:wecaputo@...]
                                                  > Sent: Thursday, January 01, 2004 11:58 AM
                                                  > To: extremeprogramming@yahoogroups.com
                                                  > Subject: Re: [XP] club officers (was "strictly minimal")
                                                  >
                                                  >
                                                  > Wayne Dawson:
                                                  > >I'm currently reading Extreme Programming Explained, but in the
                                                  > mean time,
                                                  >
                                                  > >which XP practice is the most important one to implement? Ie. which one
                                                  > >should I start using first?
                                                  >
                                                  > Two things I want to note before I answer your question:
                                                  >
                                                  > 1) Many (most?) people start out with XP by themselves, learning it and
                                                  > then trying to apply it.
                                                  >
                                                  > 2) XP is fundamentally a team software methodology. As such, you will not
                                                  > really understand XP until you do it as part of a team of programmers
                                                  > working with a customer (I know I didn't).
                                                  >
                                                  > I introduce these two caveats, not to discourage you, but so that
                                                  > you have
                                                  > the proper expectations of what you can accomplish alone. You can learn a
                                                  > lot of the practices of XP alone, and some of them will be useful to you
                                                  > even if you never work as part of a team -- but you will not really be
                                                  > learning (or practicing) XP.
                                                  >
                                                  > OK, caveats aside, Here's what I feel are the best practices for starting
                                                  > out alone, using Ron's ever-helpful "What is XP?" page for the definition
                                                  > of the practices
                                                  > (found here: http://www.xprogramming.com/xpmag/whatisxp.htm):
                                                  >
                                                  > *Simple Design*
                                                  >
                                                  > For more on this, there are probably hundreds of pages at the c2 wiki,
                                                  > here is a good starting point:
                                                  > http://www.c2.com/cgi/wiki?DoTheSimplestThingThatCouldPossiblyWork)
                                                  >
                                                  > *Test-Driven Development*
                                                  >
                                                  > IMO Kent's book "Test-Driven Development by Example" is the best resource
                                                  > for learning this
                                                  >
                                                  > *Design Improvement*
                                                  >
                                                  > aka Refactoring. Although the definition of TDD includes refactoring, its
                                                  > still valuable to keep it as a separate concept ("TDD" was originally
                                                  > "write tests before writing code", and "design improvement" was
                                                  > "refactor". Since Test, Code, Refactor is the smallest period of work in
                                                  > XP, its natural that these two practices have moved closer together over
                                                  > the last few years). Martin Fowler's book "Refactoring: Improving the
                                                  > Design of Existing Code is practically the canonical source for learning
                                                  > this technique. Please don't confuse Refactoring, with Rewriting. Its an
                                                  > overused buzzword. People here tend to use the term correctly.
                                                  >
                                                  > These three practices are probably enough to get you started. From here,
                                                  > you can really only approximate what XP is like since the other practices
                                                  > all involve interactions with other people (and some like Pairing make no
                                                  > sense when working alone). Probably the most accessible when
                                                  > working alone
                                                  > are the story and planning practices:
                                                  >
                                                  > *Planning Game*
                                                  >
                                                  > Writing and estimating stories even by yourself is often useful,
                                                  > if for no
                                                  > other reason than that the act of doing so is a good way to help you
                                                  > determine the scope of the project you have set yourself. While
                                                  > its also a
                                                  > good way to practice the technique, its *not* a very accurate substitute
                                                  > for having a Customer write the stories, and then having the Programmers
                                                  > estimate them (because the real practice involves two people trying to
                                                  > come to a common understanding). Kent and Martin's book "Planning eXtreme
                                                  > Programming" is a good (if possibly a little dated) place to start. I
                                                  > learned XP planning before that book came out so its the last book I read
                                                  > on the topic. Others may be able to provide other references.
                                                  >
                                                  > *Small Releases*
                                                  >
                                                  > Getting your stuff in front of people who will use it is always the best
                                                  > way to find out what you missed, and to pierce that bubble of
                                                  > self-delusion that we create around our ideas when no one else is
                                                  > involved. Get your stuff "live" as quickly as is practical (when working
                                                  > alone, you could probably release after nearly every work session).
                                                  >
                                                  > *Customer Tests*
                                                  >
                                                  > aka Acceptance Tests, Story Tests, Functional Tests, etc -- are
                                                  > important,
                                                  > but really hard to understand when working alone. The idea is that you
                                                  > should write (and automate) tests that are oriented to your stories and
                                                  > thus demonstrating functionality from the perspective of the Customer
                                                  > (hence the name). They also generally test more end-to-end functionality
                                                  > than TDD tests (nee XP unit tests, or programmer tests). Finally, they
                                                  > (and not the TDD tests!) take on a verification role that you are
                                                  > building
                                                  > the right thing. TDD is a *design* activity; TDD tests play only a
                                                  > secondary role in regression, and nearly nothing in the way of saying we
                                                  > built the right thing (but they do say we built the thing the way we
                                                  > expected to). In short, Customer Tests are really necessary, but you
                                                  > probably won't get them right working alone, so you might want to put off
                                                  > learning this practice until you are comfortable working with the ones
                                                  > listed above. If you do try to write some, I suggest checking out
                                                  > the tool
                                                  > fit (http://fit.c2.com)
                                                  >
                                                  > Hope that helps. That should certainly keep you busy for several months
                                                  > (years?). I still feel like I am learning how to do these six practices,
                                                  > so don't let their apparent simplicity fool you. OTOH, you can get
                                                  > competent/productive with the first three in a couple of weeks, and get
                                                  > working versions of the second three in a similar amount of time,
                                                  > and find
                                                  > yourself with a productive personal process that may be totally
                                                  > satisfactory for you. Regardless, I hope you enjoy the experience.
                                                  >
                                                  > Best,
                                                  > Bill
                                                  >
                                                  > William E. Caputo
                                                  > ThoughtWorks, Inc.
                                                  > http://www.williamcaputo.com
                                                  > --------
                                                  > idia ktesis, koine chresis
                                                  >
                                                  >
                                                  >
                                                  >
                                                  > To Post a message, send it to: extremeprogramming@...
                                                  >
                                                  > To Unsubscribe, send a blank message to:
                                                  > extremeprogramming-unsubscribe@...
                                                  >
                                                  > ad-free courtesy of objectmentor.com
                                                  >
                                                  > Yahoo! Groups Links
                                                  >
                                                  > To visit your group on the web, go to:
                                                  > http://groups.yahoo.com/group/extremeprogramming/
                                                  >
                                                  > To unsubscribe from this group, send an email to:
                                                  > extremeprogramming-unsubscribe@yahoogroups.com
                                                  >
                                                  > Your use of Yahoo! Groups is subject to:
                                                  > http://docs.yahoo.com/info/terms/
                                                  >
                                                  >
                                                Your message has been successfully submitted and would be delivered to recipients shortly.