XP Project Tracking Tool
--------------------------------------------------------------------------
General Notes
--------------------------------------------------------------------------
Security issues are not addressed beyond simple user names and passwords for login. All users of the
product are assumed to be well intentioned. Not encryption, etc. is required.
Obviously for a compact development like this semester some things are not realistic. I have marked a
“first release” and in normal development the implication is I see some business value for it. In this
case, a system that allows creation of a project structure but no data entry is not so useful, but it is
better to do a small first release anyway. And the first release I have selected will give a documentary
view of a project so it does have some standalone value.
The database should be in Microsoft Access. By writing the project in Java, we achieve portability, while
we can still access non-portable Access over the network through Java's ODBC capability.
System interface will be via the Web. I do not care what Web server technology you choose to use…
servlets, tomcat, apache, JSP, whatever you know or can learn the best.
--------------------------------------------------------------------------
First Release: User Stories
--------------------------------------------------------------------------
2 week release date: March 26
Project Database
Actor: system
A central database is maintained on the server side. The database will contain information about
multiple projects. For each project it will maintain team membership information (login name,
password, real name, email address, leader/engineer/client category); a list of user stories, ranked;
subset of user stories in current release being worked on; status of each story (unstarted, started,
completed). Each project will have a list of work sessions. A session consists of a date, start/stop
time, a pair (who did the work), a category (programming, acceptance testing, meeting, other). Other
data to keep includes completion date for each release; cost estimate for each user story; business
value estimate for each story; active/inactive status for each story.
--------------------------------------------------------------------------
Register
Actor: user
Access the project database via the Web interface and register as a user of the system. User will give
real name, login id, password, email address. Doing this action will allow subsequent access to
functions like create project and will make the user available to be added to projects.
--------------------------------------------------------------------------
Create project
Actor: registered user
Access the project database via the Web interface and create a new project. Doing so establishes the
registered user as team leader, and allows the leader to access other functions such as add/delete
team members.
--------------------------------------------------------------------------
Log in
Actor: registered user
Log on to the system by login id and password. Successful login will show the user a selection of
projects to work on (the projects the team member is registered as part of). If a user is on only one
project, then go directly to it rather than forcing a choice. If either the user name or the password is
invalid, the request will be denied.
--------------------------------------------------------------------------
Add/delete project team member
Actor: XP team leader
A team leader selects a project and adds (deletes) a person to (from) the team. Team members
categories include leader, engineer, and client. Each class of user will have different capabilities and
when logged in will see only those functions that are valid for their category.
--------------------------------------------------------------------------
Add user stories
Actor: any team member
A team member selects a project and adds user stories: a word description of the scenario, cost of the
function, business value of the function. The stories are set to be "active" and "not started" by default.
Only members in the leader and engineer categories may enter stories.
--------------------------------------------------------------------------
Second Release: User Stories
--------------------------------------------------------------------------
2 week release date: April 9
View user stories
Actor: XP team member
A team member selects a project and views all the user stories and related information.
--------------------------------------------------------------------------
View user stories
Actor: Client
A client selects a project and views all the user stories and related information of this project.
--------------------------------------------------------------------------
Update pair work information
Actor: XP team member
A team member selects a project and his/her pair. He/she can then update the start/stop time of
programming activity, planning activity, standup meeting and functional testing.
--------------------------------------------------------------------------
Modify user stories
Actor: XP team member
A team member selects a project and modifies a user story, such as resetting the cost of a function, or
re-setting the priority/ranking of a story
--------------------------------------------------------------------------
Check project progress
Actor: XP team member
A team member selects a project. The progress of all users stories are listed. The progress information
of each story includes: whether the story is active, whether it is started, the starting date of the story,
the time of completion of the story, etc. We need several status values for a user story: started(date),
completed(date) or not started. Also we need to see a relative progress indicator that shows how many
hours are put on the story so far compared to the estimate (cost).
--------------------------------------------------------------------------
Update project progress
Actor: team member
A team member selects a project and modifies the progress information of a story. A story can be
explicitly marked "completed". A story is implicitly changed to "started" once an entry is made showing
a pair having worked on it.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Third Release: User Stories
--------------------------------------------------------------------------
release date: April 23
Enter/modify project statistics
Actor: XP team member
A team member selects a project and enters initially project statistics such as code size. A team
member selects a project and modifies existing project statistics such as code size. Metrics to keep
per project are: code size, number of unit tests written, number of acceptance tests given by client;
number of acceptance tests passed.
--------------------------------------------------------------------------
Check single-project statistics and plot
Actor: XP team member
A team member selects a project and views the statistics data on the project. A boxplot function is used
for this analysis/viewing. Data to see plots for are the duration of pair sessions. These plots will have a
single bar if requested for an entire project. The user may also select a set of user stories and see a
bar for each user story… one bar would show the data for all the sessions devoted to that story, for
example. Another plot to do shows the ratio of time worked / cost estimate for the entire project… one
bar where the values for each user story constitute the data set. Also allow to show bars for the lines of
code written per session, as you show the duration of each session.
--------------------------------------------------------------------------
Check cross-project statistics and plot
Actor: XP team member
A team member selects one or more sets of projects and views the statistics data on the projects. A
boxplot function is available for this viewing/analysis across selected sets of the projects in the system.
Boxplot output should be available for comparing project code size; for project duration (actual time
worked); for ratio of duration / cost-estimate; for number of unit tests written; for number of
acceptance tests passed; and for ratio of acceptance tests given / acceptance tests passed. Another
value to plot over a set of projects is the productivity (lines of code / duration) for each project. In this
case we need two versions: duration to be total person-hours, and duration to be total clock-hours.
If a single collection of projects is selected, then the boxplot will have one output bar. Allow the user to
select several subsets of projects to plot, giving several bars on the output plot.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Other User Stories
--------------------------------------------------------------------------
Delete user story
Actor: XP team leader
A team leader selects a project and deletes user stories. If the person is not the team leader of that
project, the request will be denied.
--------------------------------------------------------------------------
Change team member status
Actor: XP team leader
A team leader selects a programmer and makes him/her team leader. In general, a team leader selects
a team member and changes the member's classification. A team leader may change him/her self into
non-leader status. This does allow, from a single seed leader, a development where all team members
have equivalent capabilities in the system.
--------------------------------------------------------------------------