Tags:
create new tag
, view all tags

Enhancement suggestions for XpTrackerPlugin

This page is the place for all bugs, enhancement suggestions and (re)design proposals. Entries that are likely to be addressed for the next version of the plugin are indicated in red. I'll leave it up the coders working on these features to identify themselves if they wish to do so, since I don't want to put undue pressure on them smile


Bugs

Non-tracking pages named Story cause problems

When a topic appears in the web that ends in "Story" but does not have an associated project and team (e.g., it is just so named by accident) then XPSHOWALLTEAMS shows an empty row in the table for that story.

-- ThomasWeigert - 27 Oct 2002

Parents with no children should still display

I find it somewhat unintuitive that a team or iteration does not show up in the tables until one adds a story to an iteration. If I define an iteration, say, without adding a story and want to come back later to add stories, I need to find the iteration in the index. It seems to me that it should show up as part of the team or project even without any stories. MW: The code was originally designed to have all important data in the story, and have higher levels search the stories. We could reorganize it so parents know about their children, but then there is a danger of a page having multiple parents. Actually, I did not intend to suggest that the parents know about their children, but it could nevertheless be possible to show parents that do not have children. I realize that this involves extra searching and checking.

-- ThomasWeigert - 27 Oct 2002

Partially fixed in 3.2. Iterations without stories will be shown. Projects and teams are more difficult as it involves modifying the caching mechanism.

-- RafaelAlvarez - 28 Jul 2004

Non-numeric sorting of Development Order

The Development order is sorted alphabetically, not numerically. A simple fix is to add "$targetOrder{$a} <=> $targetOrder{$b} || " in front of every "$targetOrder{$a} cmp $targetOrder{$b} || " in the .pm.

-- ShawnDevlin - 07 May 2003

This could lead to performance problems (even a hang up of the application) if numeric and non-numeric values are used in Development Order. Anyway, Development Order is deprecated in favor of Next Story in order to make easier the reordering of stories (in the project I work, we have about 50-100 stories per iteration... imagine reordering that)

-- RafaelAlvarez - 28 Jul 2004

Name of User/Main web hardcoded

Using %XPSHOWLOAD% (v3.1) I ran into the problem that 'Main' is hardcoded into the respective subroutine. IMO it would be better to refer to $mainWebname in this context. To fix this, I added $mainWebname to use vars qw () at the top of the plugin, and changed line 1999 as follows:

                        # straighten $who
                        $who[$x] =~ s/($mainWebname\.)?(.*)/$mainWebname$2/;

-- PatrickHansmeier - 13 Jan 2004


Fixed in 3.2, thanks.

-- RafaelAlvarez - 28 Jul 2004

EDITCELL strings appearing in some tables

When using version 3.3 with TWiki 4.0.1, two of the project tables display in the browser the %EDITCELL% commands. In reading the TWiki:Plugins.EditTablePlugin documentation, for an %EDITCELL% command to work, there must be an %EDITTABLE% at the start of the table.

This can be fixed by adding the following lines:

lib/TWiki/Plugins/XpTrackerPlugin/ShowProjectIterations.pm

Line 50:

$list .= "%<NOP>EDITTABLE{editbutton=\"hide\"}%\n";

lib/TWiki/Plugins/XpTrackerPlugin/ShowTeamIterations.pm

Line 55:

$list .= "%<NOP>EDITTABLE{editbutton=\"hide\"}%\n";

-- PaulOConnor - 24 March 2006

xpshowdevelopertasks: error in "Developer totals" when concatenate 2 developers

I'm trying something like this ...

%XPSHOWDEVELOPERTASKS{DeveloperName1}%
%XPSHOWDEVELOPERTASKS{DeveloperName2}%

But when i do it, i get "Developer totals" for second developer as (sum of all tasks for developer 2) and (sum of "developer totals" for developer 1).

This issue matters because the variables $totalSpent,$totalEtc,$totalEst within developerTasKByProject function are the same ones that variables $totalSpent,$totalEtc,$totalEst in developerTask function.

In order to solve this issue, i changed vars within developerTaskByProject in local vars and make all changes neccesary to get two functions work.

I have solved this issue applying next patch to code (maybe this patch would be commited by some xptrackerplugin developer to svn):

Index: lib/TWiki/Plugins/XpTrackerPlugin/Show.pm
===================================================================
--- lib/TWiki/Plugins/XpTrackerPlugin/Show.pm   (revisión: 17443)
+++ lib/TWiki/Plugins/XpTrackerPlugin/Show.pm   (copia de trabajo)
@@ -62,9 +62,13 @@
     # todo: build a list of projects/iterations sorted by date
    my ($totalSpent,$totalEtc,$totalEst)= (0,0,0);
     foreach my $project (@projects) {
-       my $text;
-      ($text,$totalSpent,$totalEtc,$totalEst) = &developerTasksByProject($developer,$project,$web);
+       my $text, $projectSpent, $projectEtc, $projectEst;
+   ($text,$projectSpent,$projectEtc,$projectEst) = &developerTasksByProject($developer,$project,$web);
 
+   $totalSpent += $projectSpent;
+   $totalEtc += $projectEtc;
+   $totalEst += $projectEst;
+
       if  (($totalEtc && $totalEtc>0) || ($totalSpent && $totalSpent>0)) {
          $list .= "\n\n\n";
           $list .= "---+++ Project: " . $web.".".$project ."\n\n";
@@ -104,6 +108,8 @@
     
     TWiki::Plugins::XpTrackerPlugin::Cache::initCache($web);
 
+    my ($totalSpent,$totalEtc,$totalEst)= (0,0,0);
+
     my $list="";
     my @teams = &TWiki::Plugins::XpTrackerPlugin::xpGetProjectTeams($project, $web);
     foreach my $team (@teams){

-- AndresManeiro - 24 Aug 2008

I created a bug item with this info, so I won't forget to apply it. Good catch.

Tracked on Bugs:Item5956

-- RafaelAlvarez - 25 Aug 2008

Requests for new functionality

Customization

I'm in a QA department, and this looks like an intersting tool to track testing progress as well as development progress. My only concern about trying to gain buy-in is the nomenclature. I'd love to be able to customize the terminology (Story, Iteration, etc.) to reflect our company's development terms, milestones, and general concepts. I did a find-replace in the pm and templates to suit my needs, and it's working. Still, an easier way to customize would be nice. (Great tool, by the way. I expect it will help my department.)

-- SteveRosenthal - 01 Nov 2003

Steve - out of curiosity, what names did you change, and what did you change them to? The names used in the plugin are fairly standard in the XP world, which is the reason they have not been customisable (so far.) Also I'm interested in how you are using it to track testing progress. Are you adding any additional functionality? If so, patches are always welcome here smile MartinWatt - 06 Nov 2003

Hi, Martin -- I made the following translations:

  • Developer MOVED TO... Tester (self-explanatory)
  • Iteration MOVED TO... Phase (our release cycle is divided into "phases"; one might also use the term "milestone")
  • Story MOVED TO... Area (a major feature group or area of functionality; e.g. Menus)
  • Task MOVED TO... Case (a test case or set of test cases within an Area, but no more atomic than something like "File Menu" (all-encompasing for test cases like Open, Close, Save As, etc.)

There are some other fields in the templates I've changed to reflect our way of doing things, and I'm still thinking about how to make other fields more relevent. For example, the Risk menu doesn't really apply in the same sense for QA as it does for development. We might be more inclined to change the terms "low", "medium", and "high" to some kind of status like "blocked", "feature not implemented", etc. However, in the particular case of the Risk menu, I don't believe the contents of that field percolate up to higher-level views, so it's only semi-useful to us.

Our goal is to keep things fairly high-level: we won't drill down into individual grid items (see the above exaple for Task/Case). Those will be linked-to from the Case Name field.

We're just on the verge of rolling this tool out on a current project, so I'll have to keep you posted as to our progress with it. I haven't added any functionality since I'm not a developer, but I'm working on learning some Perl chops, so maybe someday. :-)

-- SteveRosenthal - 05 Dec 2003

Holidays

Looking at the 3.1 beta, what about taking holidays into account? (Perhaps loosely integrated with the CalendarPlugin?)

-- AnthonPang - 01 Jan 2003

Make the FEA field optional

Should be controllable by a plugin variable, and not enabled by default

-- MartinWatt - 28 Nov 2002

hmm... Agreed.

-- RafaelAlvarez - 28 Jul 2004

Add function to show all iterations and stories for a team

Currently the project level lets you look down 3 levels, ie shows teams, iterations and even stories. Request is for an option to show iterations and stories for a team, to make it easier for a team to locate "lost" stories.

-- MartinWatt - 28 Nov 2002

Pair programming

Since this plug-in called XP tracking (not simply tracking) one major feature is missing - Pair programming. We should able to put two developers in developer task field and calculate velocity for both of them. Current workaround to create two the same tasks for each developer or create paired user name (as Pair1 or something) is awkward to use. This feature will help to make this a real XP tracking.

-- LeanidNazdrynau - 05 Mar 2003

I don't know if this is well known and documented elsewhere, but pair programming seems to work if you separate developers with a space. As long as you put in estimates and the like in the same fashion, the math works out. Check out http://csci.mrs.umn.edu/twiki/view/CSci4654/TeamBottomIterationZero for an example of how this would look.

-- DougMoll - 03 Apr 2003

Doug. I have to admit I'm surprised this works, but it looks like you are right. I'll have to check the code to see how it's doing that smile

-- MartinWatt - 06 Apr 2003

Effectively it works (partially). The second programmer will not get the correct estimate/todo/spend time in his velocity. This was fixed in 3.2.

-- RafaelAlvarez - 28 Jul 2004

Breadcrumbs

Each page that's part of the Xp Tracker Hierarchy should have a breadcrumb that goes all of the way up to the root of the hierarchy to improve navigability.

-- OrionAuld - 12 Mar 2003

I believe this is the same as the item below re using the PARENT tag. Once that is added, the skin should show the whole hierarchy. -- MartinWatt - 12 Mar 2003

Better documentation

Hearing a fair amount of nonpositive noise about the quality of the documentation. Need to tidy up the main page, add info on installing the Tracking web, what the colours mean etc. Also consider merging the documentation on the main XpTrackerPlugin page and the ZenAndXpTracking page.

-- MartinWatt - 02 Apr 2003

Related comment:

Add some more details to the SetupHowto page Could the documentation be changed to indicate that a new Project won't show up on the WebHome page until a Story has been created? It would be a small change, but would save the frustration we had with the plugin until we discovered this via experimentation.

Maybe something (as I added to our SetupHowto page) like:
The Project will not show up in the WebHome page, until you create a Story page belonging to that project. The only page that has a naming requirement is the Story pages, which must end in "Story".

-- BernardFarrell - 03 Apr 2003

Track historical progress

Would be useful to keep a record of progress vs estimates. When I want to do this I currently create a separate spreadsheet and copy the numbers out of the Iteration page each day, but it should be possible for the plugin to track it itself. Not trivial, as it needs a daily job that parses the stories to extract the progress vs schedule each day, and have a way to present the results. A simple short-term step may be to have another field in the Iteration page that shows % actual completion vs estimate.

-- MartinWatt - 06 Apr 2003

Stories I Lead

There was a request from one of the developers on our team to pull up a page that lists the stories where he is the lead. I added a TWiki variable %XPSTORIESILEAD% to the module. I can forward the code to you if you want.

-- ShawnDevlin - 07 May 2003

Reprioritize Stories

When there are many stories in a iteration, adding a new story or needing to reprioritize a story is a major PITA. I added a TWiki variable %XPPRIORITIZESTORIES% to generate a table of stories for an iteration and let the user set the priorities for each story. I can forward the code to you if you want.

-- ShawnDevlin - 07 May 2003

Stories spanning iterations?

We've used XP for software development for over a year and have been very happy with our improvements at predictably delivering a high-quality product. Lately, I haven't been doing a good job at keeping the tracking numbers adequately crunched, and since I had a TWiki install that I was playing with anyway, I decided to install the XpTrackerPlugin. I think it's a great tool, but unfortunately it doesn't seem to match our (traditional XP) development model in some very critical ways.

XP has fixed length iterations, and stories being worked on may or may not complete each iteration. This means that stories in XP may span multiple iterations. It's possible that I'm just being dense, but I can't find any way to represent this with the plugin! In my evaluation I've found the issues that block our use of the tool to be that stories cannot span iterations and that teams cannot span projects

Is there a way I can easily resolve this, beyond major implementation changes?

-- JeredFloyd - 30 Mar 2004

AFAIK, there is no way to represent a story that span multiple iterations, and as the relationship between teams and projects is that of a page with it's parent there is no way to have the same team in multiple projects (but you can have the same people on different projects, as the team is not related to people)

-- RafaelAlvarez - 31 Mar 2004

Jared, there is no way to do what you want without major implementation changes. For myself, I have not found this to be a problem as our stories are always shorter than an iteration. Our iterations are 2-3 weeks, and the end of each iteration is supposed to be a deliverable product. Since it is hard to estimate tasks that will take longer than this, we limit our stories to less than an iteration. For bigger jobs we break them down into multiple stories. A quick google search shows others having stories typically in the 1-3 week range, but of course there are no absolute rules. As for teams spanning projects, I'm not sure how XP that is either. Have you got links that talk about teams working on multiple projects at the same time in XP?

-- MartinWatt - 04 Apr 2004


Design suggestions

Showing dependencies

Recording and displaying dependencies between tasks/stories (eg task A cannot be completed until task B is done.)

-- MartinWatt - 29 Jul 2002

Identifying Stories using metadata

Rather than using the convention that iterations should end in "Story", why don't you use metadata to indicate that a topic represents a story? This will less likely cause confusion, and finding all stories will not be that much slower. It might also be easier to keep the tables in metadata, as in SimpleTableEntryUsingForms. That way, there is less temptation to edit the tables in the topic edit mode....

-- ThomasWeigert - 27 Oct 2002

Use PARENT tag to store dependencies

AnthonPang suggested this first (09 Jan 2003) and PatrickHansmeier ran into a TWiki bug exposed by XpTrackerPlugin not setting the PARENT tag. It seems like a good design to use this existing feature to register dependencies. Maybe there should be a TopicChildren tag too, to speed traversal and remove the need for the current caching feature?

-- MartinWatt - 22 Feb 2003

As TWikiDocumentation#Known_Issues says, "there is no Meta Data support for Plugins". Thus, using TOPICPARENT (or FORM-entries, e.g.) for purposes of XpTracking would require changing/enhancing Meta.pm.

-- PatrickHansmeier - 13 Jan 2004

Add new methods to show all iteration's stories and iteration details by user

From LeanidNazdrynau - see description at XpTrackerPluginDev. Two new tags added: XPSHOWITERATIONBYDEVELOPER and XPSHOWITERATIONTERSEBYDEVELOPER. Need to add into plugin.

-- MartinWatt - 06 Apr 2003

Multiple Projects for a Development Team

It would be nice if multiple projects could be assigned to the same development team. When prompted for a team when creating a project an existing team cannot be specified. We are a small team (8 developers) that work on a multiple projects. True to the pair programming part of XP, everybody works on everything. At the moment we have entered just one Project in order to get the XP module to work for us. I am not sure of the impact this will have on Iterations. Since we are one team, and iterations are tied to a team, completed Stories for an iteration come from many projects. I don't know what impact that would have on the code.

-- ShawnDevlin - 07 May 2003

In other words you want to put Project and Team on the same level. This will complicate initial setup, you will have to link Project to Team. May be we better think about putting each Project/Team/Iteration/ in separate directory in other words to repeat XpTracking structure in file structure and avoid name conflicts not only between Team and Iteration but also between Stories. It also eliminate need to build project from Story level. No more empty projects without Story set. Should be quicker too. We just have to waite till this feature: MultiWebs at TWiki

-- LeanidNazdrynau - 08 May 2003


Items awaiting further feedback

Don't enter default text in fields

When creating an iteration, it probably is not useful to insert end date, duration, previous, and next by default. Neither should Development order, Customer, and Story Lead be defaulted to meaningless text when creating a story. Creating an initial task named "Task" by default is probably not a good idea either.... MW: When creating an iteration, initial text is there to show the format required, eg dates. I guess we could leave these fields blank though... There must be at least one task in an iteration, so I add one with zero days allocated. The "Task" name is a fixed field for every task, and is used by the plugin to search for the tasks in the page. I understand, but there is no obvious reason why a story must have a task...MW: A story must have a task because the tasks are where the time estimates are entered. Time for the story is computed by adding the times for the individual tasks. When there is no task in a story, then obviously the time is 0. It is rather strange to see "fake" tasks in a story just so that the algorithm does not need to check for presence of tasks. Typically, what happens is that you start a project from the top down. You define the iteration, later add a set of stories, later still you go back and start adding tasks. Seeing the "fake" tasks in the meantime is a distraction (not a big deal, but could be easily avoided, in my opinion).

-- ThomasWeigert - 27 Oct 2002

Edit | Attach | Watch | Print version | History: r30 < r29 < r28 < r27 < r26 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r30 - 2008-08-25 - RafaelAlvarez
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.