What story mapping tools are you using in conjunction with SpiraTeam?

Tuesday, September 26, 2017
Avatar

Today SpiraTeam doesn't have a story mapping tool (although I hope that they do someday). Are any of you using a story mapping tool (e.g. craft.io or storiesonboard.com) in conjunction with SpiraTeam? If so, how are you syncing your stories back and forth between the tools?

5 Replies
Friday, September 29, 2017
Avatar
re: cher Tuesday, September 26, 2017

I don’t think there’s a way to automatically sync with craft.io or storiesonboard. We are definitely exploring how to bring more free form content / cards into working with SpiraTeam - either within the app or as an integration. 

What for you are the key features you would want? E.G. Cards that can be reordered or grouped, then selectively added as user stories?

Friday, September 29, 2017
Avatar
re: inflectra.clark Friday, September 29, 2017

We want to be able to track user journey maps / story mapping for each major area of functionality (component or potentially subcomponent). Each card would be a "step" in the journey, epic, story or "split" story.  Keep in mind that the "step" level, would likely be different then how we organize the requirement hierarchy in the requirement list. 

On the story cards, I would like to be able to see the status (requested, accepted, etc), the personna targeted, the owner, story points (ideally this could be configurable). I would like to be able to color cards on the map. 

The story map would be divided into releases/sprints/backlog/future considerations (i.e. requests). 

There should also be the option to hide the stories which have already been released. 

Ideally I could a select a story and split it into sub stories. I would love to collaborate with your PM on this and potentially show some story maps we have done in the past. 

Here is a good video on story mapping (but it will only be available for the next week or so https://www.betteruserstories.com/courses/better-user-stories/videos/1).

 

Monday, October 2, 2017
Avatar
re: cher Friday, September 29, 2017

Thanks so much for this information. I will add this to our internal system. There is a balance inside the application of making something freeform enough that it is quick to use and edit, vs with enough structure (when needed) to help with tracking. I expect this will feed into discussions for SpiraTeam 6.0. If we are able to take this forward I am sure the team would really appreciate your input.

Tuesday, October 3, 2017
Avatar
re: inflectra.clark Monday, October 2, 2017

If anyone is interested, I created a report that I can export into StoriesOnBoard. It isn't perfect, but it helps a lot. 

First I created a "Map Step"  custom field and I populated it for the requirements which I wanted on my board (my field was CUST_07) then I used this query to export an excel file. To import into StoriesOnBoard, you have to open in Excel, remove the top row, then save as a real Excel file (when you open a file exported from SpiraTeam, Excel will complain that the file isn't a valid excel file, just ignore that). 

This SQL assumes your components in SpiraTeam are the major User Activities in your story map, that the custom field "Map Step" represents the High level tasks flow for the user, and the Requirements represent the detailed cards/subtasks that the user wants to accomplish. 

Here is the custom section SQL.  You will notice that I striped some of the html out, and then added a link to our spirateam site...  Be sure to replace "URL" below with the right path for your SpiraTeam install. In case you are wondering, I did try to remove the HTML using the XML output option, but then the descriptions ran over multiple lines in excel, which didn't work for importing into StoriesOnBoard. I did leave in a <br> for a carriage return, because I couldn't figure out how to insert a real carriage return in entity SQL (neither char(13) or chr(13) worked). If anyone knows how to do that, I would love to know! 

Select R.Component_name as Activity, R.Cust_07 as Task, R.Name  + ' (RQ:' +  Cast(R.REQUIREMENT_ID as edm.string) +')'  as SubTask, 
    (CASE 
        WHEN R.DESCRIPTION IS NULL THEN 'http://URL/SpiraTeam/' + cast(r.project_id as edm.string) + '/' + cast(r.requirement_id as edm.string) + '.aspx '
        ELSE Replace(Replace(Replace(Replace(Replace(Replace(REPLACE(REPLACE(REPLACE(R.Description,'&nbsp;', ' '),'<p>',''),'</p>',' <br>'),'</span>',' '),'<ul>',''),'</ul>',''),'<span style="font-size:16px">',''),'<li>','-'),'</li>','<br>') + '   http://URL/SpiraTeam/' + cast(r.project_id as edm.string) + '/' + cast(r.requirement_id as edm.string) + '.aspx' 
    END) as SubtaskDescription,
    (CASE 
        WHEN R.REQUIREMENT_STATUS_NAME ='In Progress' THEN 'Doing'
        WHEN R.REQUIREMENT_STATUS_NAME ='Ready for Test' THEN 'Ready' 
        WHEN R.REQUIREMENT_STATUS_NAME ='Completed' THEN 'Done' 
        ELSE 'Todo'
    END)  as Status,    
    R.Estimate_points as Estimation, R.RELEASE_VERSION_NUMBER as Release
from SpiraTestEntities.R_Requirements as R
Where R.Component_name <> '' and R.Cust_07 <> '' and R.PROJECT_ID = ${ProjectId}
Order by R.INDENT_LEVEL

 

 

Wednesday, October 11, 2017
Avatar
re: cher Tuesday, October 3, 2017

Some tweaks to the SQL (was returning stories that had been deleted, and there was an error in the URL)

Select R.Component_name as Activity, R.Cust_07 as Task, R.Name  + ' (RQ:' +  Cast(R.REQUIREMENT_ID as edm.string) +')'  as SubTask, 
    (CASE 
        WHEN R.DESCRIPTION IS NULL THEN 'http://URL/SpiraTeam/' + cast(r.project_id as edm.string) + '/Requirement/' + cast(r.requirement_id as edm.string) + '.aspx '
        ELSE Replace(Replace(Replace(Replace(Replace(Replace(REPLACE(REPLACE(REPLACE(R.Description,'&nbsp;', ' '),'<p>',''),'</p>',' <br>'),'</span>',' '),'<ul>',''),'</ul>',''),'<span style="font-size:16px">',''),'<li>','-'),'</li>','<br>') + '   http://URL/SpiraTeam/' + cast(r.project_id as edm.string) + '/Requirement/' + cast(r.requirement_id as edm.string) + '.aspx' 
    END) as SubtaskDescription,
    (CASE 
        WHEN R.REQUIREMENT_STATUS_NAME ='In Progress' THEN 'Doing'
        WHEN R.REQUIREMENT_STATUS_NAME ='Ready for Test' THEN 'Ready' 
        WHEN R.REQUIREMENT_STATUS_NAME ='Completed' THEN 'Done' 
        ELSE 'Todo'
    END)  as Status,    
    R.Estimate_points as Estimation, R.RELEASE_VERSION_NUMBER as Release
from SpiraTestEntities.R_Requirements as R
Where R.Component_name <> '' and R.Cust_07 <> '' and R.PROJECT_ID = ${ProjectId} and R.Is_deleted != TRUE
Order by R.INDENT_LEVEL

Spira Helps You Deliver Quality Software, Faster and With Lower Risk

And if you have any questions, please email or call us at +1 (202) 558-6885

 

Statistics
  • Started: Tuesday, September 26, 2017
  • Last Reply: Wednesday, October 11, 2017
  • Replies: 5
  • Views: 8184