eXtreme .NET: Introducing eXtreme Programming Techniques to .NET Developers [Electronic resources]

Neil Roodyn

نسخه متنی -صفحه : 117/ 82
نمايش فراداده

Exercise 3-7: The Unfinished Solution

This is such a common scenario that I had to include it as one of the exercises. The real problem here is that you do not really know what you are starting with, and the customer has already gone through explaining what he wants and does not want to go through the whole thing again.

Stories:

    Validate existing code

    Allow user to enter message

    Allow user to add tags to message

    Send message to each contact in list

    Customize e-mail message for each contact based on tags in profile and e-mail message

Tasks for Story 1: Validate Existing Code

Task

Estimated Time

Skim through existing code to understand classes

20 minutes

Write tests to validate any theories about how the code works

30 minutes

Check into source control and integrate with existing system

5 minutes

Tasks for Story 2: Allow User to Enter Message

Task

Estimated Time

Test to disallow a blank e-mail

10 minutes

Test to validate correct processing of non character input to the message

20 minutes

Test for a message of maximum length (string length?)

10 minutes

Code to pass tests

20 minutes

User interface to allow user to type the message

10 minutes

Connect code to user interface

10 minutes

Check into source control and integrate with existing system

5 minutes

Tasks for Story 3: Allow User to Add Tags to Message

Task

Estimated Time

Test that a tag in any profile can be added to the message

15 minutes

Test that a tag that doesn't exist in any profile cannot exist in a message

10 minutes

Test that a message can contain no tags

15 minutes

Test that a message can contain only tagged input

15 minutes

Code to pass tests

20 minutes

User interface to allow user to select a tag for input

10 minutes

Connect code to user interface

10 minutes

Check into source control and integrate with existing system

5 minutes

Tasks for Story 4: Send Message to Each Contact in List

Task

Estimated Time

Test that each contact in the list is sent the message

10 minutes

Test when the contact list is empty

10 minutes

Test when the contact list contains a maximum number of contacts (have to autogenerate contacts)

15 minutes

Test when message is empty

10 minutes

Code to pass tests

20 minutes

User interface to allow user to send message (button?)

10 minutes

Connect code to user interface

10 minutes

Check into source control and integrate with existing system

5 minutes

Tasks for Story 5: Customize E-mail Message for Each Contact Based on Tags in Profile and E-mail Message

Task

Estimated Time

Test that a profile with no tags is not sent a message containing only tags

10 minutes

Test that a profile with all the tags receives the correct message

10 minutes

Test that a known (hard-coded) profile receives the correct message from a hard-coded tagged message

15 minutes

Test when message is empty

10 minutes

Code to pass tests

20 minutes

Integrate code with user interface from story 4

10 minutes

Check into source control and integrate with existing system

5 minutes