Go directly to workshop page for Leveraging Drupal

Using PFT to build PFT from scratch: user stories

Background: Different disciplines lead to different relationships between the user stories and other elements

At this point we just want to be able to get the user stories into the PFT system

Create user story content type

Edit 2009-02-25: Using node2node module for drilling down and zooming out because it allows many to many relationships AND semantic role names, so not using NAT anymore.

 

Create Vocabulary Role to contain user stories, configure NAT to add roles to role and sync

Create Vocabulary User story to contain, for now, user stories (recursive splitting of a single user story into child user stories).

Configure NAT to add user stories to user stories

Enter user stories

Some kind of drilling down from project to user stories

Build info

ToDo

Background: Different disciplines lead to different relationships between the user stories and other elements:

The business model (meme map) gives rise to a list of features.

Just as we can drill down:

  • project
    • roles
      • user stories

And in planning and tracking we can drill down:

  • project
    • release
      • iteration
        • user story
          • task / defect / change request
          • tasks allow multiple developers to work on a single story
          • tasks encapsulate bursts of analysis and design (including the user story analysis and design that gives rise to the disaggregation into tasks)
          • tasks are estimated and then tracked; they are the unit of estimation and tracking.

So we can drill down in business modelling:

  • project
    • meme map
      • features
        • user stories

And in architecture we can drill down:

  • project
    • roles
      • user stories
        • task
          • domain analytical classes
          • map to Drupal modules and semantics

Create user story content type

Label Name Type
Type

field_user_story_type Text
Owner

field_user_story_owner User reference (multiple)
User Story Points

field_user_story_points Integer
Conversation

group_conversation Standard group
Conversation

field_user_story_conversation Textarea (multiple)
Confirmation

group_confirmation Standard group
Confirmation

field_user_story_confirmation Textarea (multiple)

Much use could be made later of field level permissions.

By the way: remember to always set Create new revision in the workflow settings for all of these, so versions never get lost.

Added permissions for team leaders and team members (we will have organic groups manage access later on: projects, and all artifacts will be either public or organization-wide.

Create Vocabulary Role to contain user stories, configure NAT to add roles to Role and sync, configure in theme

Done

Create Vocabulary User story to contain, for now, user stories (recursive splitting of a single user story into child user stories), configure in theme.

Done

Configure NAT to add user stories to user stories

Done

Enter user stories

Done

Some kind of drilling down from project to user stories

Made two views (thanks to NAT! but it was very simple, did not use NAT views integration) and node templates to match.

View roles_in_project lists the roles containted in a given project by listing all roles containing a taxonomy term equal to the title of the project.

View user_stories_in_roles lists all the user stories containing a taxonomy term equal to the title of the role.

These views are then embedded into the corresponding node template in the theme directory. For example, here is the content div of node-role.tpl.php:

  <div class="content">
<?php print $content ?>
<?php
$view_name = 'user_stories_in_roles';
$args = array(0 => $node->title);
$view = views_get_view($view_name);
$view->set_arguments($args);
print $view->execute_display(0, $args);
?>
</div>

Build info: Changeset #17

ToDo

  • Drill down to tasks (see issue tracking and change management); at least task disaggregation.

  • Add diagrams to user stories and tasks