File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Agile and Other Processes and the fly likes Get Ready for Martin Fowler Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » Agile and Other Processes
Bookmark "Get Ready for Martin Fowler" Watch "Get Ready for Martin Fowler" New topic
Author

Get Ready for Martin Fowler

Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 4462
    
    6

Hi All,
(Note: This thread was started last week, before the "Planning XP" book giveaway was announced. jlacar 4-4-01)
Hoping to stir up some of the dust that's been settling pretty thick in this forum...
It looks like Martin Fowler is going to be hanging around here a bit in April to promote his book "Planning XP". The book is available online on one of the XP sites (I'm sure a quick search on Google will turn up something). I haven't read it yet but I have already read the original white book and skimmed through the pink one (XP Installed).
Anyway, I recently read the article "Extreme Programming Episode" in which Bob Martin and Bob Koss take the reader through a pair-programming session. Although the authors say that the article is a faithful re-enactment of a programming episode, I couldn't help get the feeling that it was skewed a little to show how even a simple UML diagram can lead you astray. Hopefully, that was not their intention. Personally, I would not have gone down the road they did in that article. In fact, I tried my hand at writing a program with the same functionality and came out with something that I thought, in all modesty, was cleaner. (More on this in subsequent posts)
So anyway, I was wondering if anybody here would be interested in actually trying to expand on the work the Bobs presented in that article. What I would like to see happen is this:
- Somebody acts as the USER. This person (or persons) will provide the user stories. In this case, the stories would be for the bowling league application. This is the initial description from the article:
"...an application that keeps track of a bowling league. It needs to record all the games, determine the ranks of the teams, determine the winners and losers of each weekly match, and accurately score each game."
Ideally, the volunteer user would know something about how bowling leagues are run. I like to bowl myself but I have never participated in a league. So hopefully, we could have somebody who knows how to answer questions like "What about handicaps? How are those handled/scored?" and "How many people can there be on a team?" and "How do we get the team scores and determine who won?"
The USER will also be the one who decides which stories will be included in the iteration and will be responsible for writing functional tests to validate the delivered product.
- Everybody else who cares to join in will act as developers. We will try to go through a two-week XP iteration, get the stories, do the planning game, and maybe do online pair/group programming, etc. Obviously, we won't be fully XP since we'll be doing everything through this forum but I'm hoping the exercise will give us all a better idea of what happens on an XP project.
Other things that participants might get from this exercise: a look at how refactoring is done, at how unit testing with JUnit is done and how it helps improve quality, a look at how test-first design is done.
At the very least, this should stir up some good discussion and maybe we'll actually have something interesting to talk to Martin about when he swings by our part of town.
So, is anybody here game for this? Who wants to be the USER?
J.Lacar

[This message has been edited by JUNILU LACAR (edited April 03, 2001).]


Junilu - [How to Ask Questions] [How to Answer Questions]
Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 4462
    
    6

Still all by my lonesome and talking to myself after 24 hours...isn't anybody in JavaRanch interested in XP at all?
OK, so let me just list down those user stories from the Bobs' article:
User Stories:

  1. Keeps track of a bowling league
  2. Record all the games
  3. Determine the ranks of the teams
  4. Determine the winners and losers of each weekly match
  5. Accurately score each game

  6. Now what? I guess we go do some estimation (?)...
shailesh sonavadekar
Ranch Hand

Joined: Oct 12, 2000
Posts: 1874
why you feel so ? We All are there . As you know software engineering , Process may sounds Abstruse stuff to many . Definitely there are less people involved in this. I am there. Why you are worried? Since , it is Weekend , People may not be logging to net ?
It is nice to see some XP inthusiasts like you. You have mentioned something about dust on this forum ? isn't it. See if knowledgable people in the area gather , how the forum can be dead forum ? So , i would like People Like you have active particiaption in this forum. Discussion shall not only be XP , but other Processes also.
You have mentioned about Mr.Martin Fowler. As moderator of the forum , I would really like to know , How you know he is suppose to hang in ? Are you any way related to ThoughtWorks ?
It seems that Real Entusiasts & knowledgable people are coming to this forum . Great days are coming back to this forum.
AM I right ?
Your Friendly Bartender
Shailesh.
Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 4462
    
    6

Hi Shailesh,
I saw a list of upcoming book promotions and IIRC, Martin Fowler is expected to be hanging around here for a week or so from April 2. I can't seem to find the link to the book promotions page anymore though I'm sure one of the Sheriffs can confirm this.
Glad to see things finally starting to pick up again around here. Gotta sign off for now but I'll be back tomorrow night (US Eastern time).
J.Lacar

[This message has been edited by JUNILU LACAR (edited March 25, 2001).]
shailesh sonavadekar
Ranch Hand

Joined: Oct 12, 2000
Posts: 1874
so , you are having feeling that somebody is having interest in XP , isn't it ? Frank is already here. I Think John will also be here. These are the people with whom this exercise can be great fun.
I have gone through the article most probably two weeks back. I didn't find time to do something with that. Nice to see iterative development in making on Javaranch . Many People shall participate , I hope so.
You are in U.S. I am india. Hence , there will time lag . When you are going to sleep , I am going to log.
Shailesh.
Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 4462
    
    6

All right, time to get this ball rolling again (pun intended)
I found a decent looking set of bowling league rules that could be used as a source for user requirements. Would anybody care to discuss how to come up with initial release and iteration plans for this app?
J.Lacar

[This message has been edited by JUNILU LACAR (edited April 03, 2001).]
Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 4462
    
    6

Bowling League User Stories:

  1. Keeps track of a bowling league
  2. Record all the games
  3. Determine the ranks of the teams
  4. Determine the winners and losers of each weekly match
  5. Accurately score each game

  6. If estimation were the next step, then I would say the first story would still need further elaboration from the user.
    The rest look like they can be broken down into smaller tasks. For example, "Determine the ranks of the teams" might be broken down and estimated as:
    - Calculate team scores (1 day)
    - Sort teams by scores from highest to lowest (1 day)
    - Generate report "Team Ranking" (2 days)
    Question to XPer Martin: how small do you go with estimates? In my non-XP experience, it is possible to be assigned a task that is supposed to take only 1/2 day. However, with test-design-coding all rolled up together in completing a task in XP, a half day doesn't seem enough for anything but the most trivial tasks.
    J.Lacar
Frank Carver
Sheriff

Joined: Jan 07, 1999
Posts: 6920
As a non-bowler, I think your "user stories" are more like the bullet-point "features" listed on software packaging than actual stories. I always try to make sure stories have someone (or some process) which does something, to produce some effect. Your stories don't really tell me (as a domain-ignorant developer) anything about the proposed system.
How about something like (note, these are probably very wrong, but serve as indicators of the sort of stories which will be useful:

  1. someone starts a league, initially with no teams in it, but decides how many teams the league will be for.
  2. some players (is there a fixed number, or an upper/lower limit?) form a team, and are allocated a place in a the league with a starting score of 0
  3. when all the team "slots" are allocated, the teams begin playing against each other
  4. two teams (or is it more?) play a match, and the team scores are increased by (the total points scored/the best team players score/the score difference/2 for the winning team and one for the loosing team or whatever?)
  5. after each match a summary sheet of each team's total score, number of matches played, matches left to play and overall ranking is placed on the league noticeboard.
  6. after every team has played every other the team with the highest score is declared the winner
  7. if two teams both get the same "winning" score, a throw off is held and the first team to not get a strike, loses the league.

  8. I hope you can see how these are more useful to someone unfamiliar with the problem domain, and help to encourage more useful discussion about error cases and so on (the last point arose from just such a consideration, I'm sure there would be many more during development).


Read about me at frankcarver.me ~ Raspberry Alpha Omega ~ Frank's Punchbarrel Blog
martin fowler
Author
Ranch Hand

Joined: Dec 11, 2000
Posts: 53
As headings, they are alright for stories. Remember that the story is a note for a future conversation, with the emphasis on conversation. So you'd sit down with a customer and ask "so tell me more about bowling leagues". They'd talk for a bit and that would give you more of an idea of what the story means.
The best way to estimate is to compare the story to something you've done in the last few months - "oh that's as big as scoring the county championship" and then seeing how long that took you. The new story will probably take the same time. It's often easier to compare work than it is to try and guess days. Of course this doesn't work so well for the first story, but it does tend to improve pretty rapidly.


author of:<br /><a href="http://www.amazon.com/exec/obidos/ASIN/0201485672/electricporkchop" target="_blank" rel="nofollow">Refactoring : Improving the Design of Existing Code</a><br /><a href="http://www.amazon.com/exec/obidos/ASIN/020165783X/electricporkchop" target="_blank" rel="nofollow">UML Distilled, Second Edition: A Brief Guide to the Standard Object Modeling Language</a><br /><a href="http://www.amazon.com/exec/obidos/ASIN/0201895420/electricporkchop" target="_blank" rel="nofollow">Analysis Patterns : Reusable Object Models</a><br /><a href="http://www.amazon.com/exec/obidos/ASIN/0201710919/electricporkchop" target="_blank" rel="nofollow">Planning Extreme Programming</a>
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Get Ready for Martin Fowler