software-project / scrum-pm

Scrum PM is a plugin for Redmine ticket management system. It adds Scrum items like backlog, dashboard and others.
www.software-project.eu/EN/scrumpm
126 stars 47 forks source link

Cannot remove task from a story 2 #41

Open obobo opened 14 years ago

obobo commented 14 years ago

This issue was marked as closed, but it isn't. Once a task associated with a User Story in the Dashboard, it can't be put back in the stack of unassigned tasks... as far as I can see. If there is a way to do this, please say how.

FiveO commented 14 years ago

Hi obobo, I had exactly the same problem. Then I looked up in the code and saw that the DB field "user_story_id" makes the link between the issue and the corresponding user_story. Well like we both discovered, this field cannot be set to NULL with the UserInterface. So I can recommend you a WorkAround if you are able to connect to the MySQL database: Go to the "issues" table and set the "user_story_id" of the corresponding issue to NULL. SQLStatement: UPDATE issues SET user_story_id = NULL WHERE issues.id=??? LIMIT 1 ;

I hope this helps, although you'll have to do these steps only in case you haven't been able to finish all tasks during a sprint (which not always happens...) Cheers

obobo commented 14 years ago

Thanks FiveO. When I find a moment I'll make a patch for the GUI. I do find I need this more often than just dealing with unfinished tasks - sometimes tasks become unnecessary, or are mistakenly assigned, or turn out to basically be duplicates of other tasks. It's quite important functionality.

jeacott commented 14 years ago

as a workaround for this, you can create an "unassigned tasks" userstory - then add that story to your sprint and you will be able to move the unremovable task to the "unassigned tasks" story. you can then remove the story from your sprint.

obobo commented 14 years ago

hohoho, actually the work around doesn't work. When you delete the user story, creating another user story later on (in a totally different project) results in the tasks associated with the deleted story popping up over there (is it recycling user story ids?). Most irritating... but on the positive side, it is only irritating because otherwise the plugin is one of the most useful pieces of software I have ever found!

jeacott commented 14 years ago

@obobo I never said delete the story. I said "remove" or "move" the story from the sprint. when you eventually find an appropriate story to reassociate a task with, then you can assign the 'unnasigned tasks' to a sprint and move the tasks to the new story. it works. to answer your other question - yes it does annoyingly recycle id's. I've seen a blog somewhere with a solution posted for that and a couple of other enhancements. what I hate is that I cant assign tasks to stories without first assigning a sprint, I cant assign tasks to multiple stories, and I cant assign a story to multiple sprints at the same time. I also dont like that a story is untrackable (think it would have been better implemented if each story was an issue with its own tracker, and tasks as subtasks). Also for me, the reordering of stories really doesnt work well, and the fact that you cant drag issues to stories if the span is bigger than 1 screen height without drpooing the item, scrolling the screen and picking it up again is also really annoying. Its also unnerving that users without edit permission on the dashboard can appear to edit things in the UI. its only upon refresh that it becomes apparent that the permissions have been obeyed. there is still much work to be done in this plugin me thinks :)

obobo commented 14 years ago

Ah! :-D I missed the vital step!

All in all, I find that it's surprisingly usable as it is. Having to assign user stories to Sprints forces you into the SCRUM methodology, in the sense that the Backlog doesn't get abused as a store for mental notes, and the Sprints are the real business units of work.

In that vein, if there were two or three other people who decided - "yes, I find this plugin useful and I am prepared to invest two or three days time into it" - I'd suggest we gather together in a little huddle, decide which features/bugs are most critical, and develop/solve them.

jeacott commented 14 years ago

agreed it does sort of force a scrumminess, but in scrum you should be able to freely add tasks and user stories throughout the process lifecycle. the sprint planning/lifecycle is mostly about selecting , assigning tasks from the backlog and getting them done. - to which end, here is another annoyance with this plugin - if you dont finish everything in a sprint, and need to carry over a user story+tasks to another sprint(s) then it completely destroys any historical tracking.

obobo commented 14 years ago

Agreed, it might be nice to automatically duplicate issues where are incomplete (having them marked as "not completed" but being regarded as finished as far as the sprint plugin, where they then become available for the next sprint... or how would you see it?

jeacott commented 14 years ago

I'm not sure actually. in some cases it would be nice to keep the existing task issue in tact with its task number etc, otherwise tracking could get really messy. I was thinking that perhaps some form of manual "commit" operation would leave a shadow of the past sprint (ie after its been finalised someone hits 'commit', at which point a snapshot of the sprint state is taken, and thats what you would see whenever you viewed that sprint). all not done tasks should be either returned to the backlog (but highlighted somehow), or in the dashboard view, bundled up and put in a 'carried over from previous sprint' bucket so they can be quickly reassigned. I'm not sure if this is really any better than simply duplicating tasks, but it does potentially eliminate the horrible related issue mess that would occur otherwise.

jeacott commented 14 years ago

a few more things for the list. it would be very helpful to see the points allocated for tasks in the dashboard view (I have a custom field called story points). it would be very valuable to be able to see a complete backlog of unfinished tasks. it would be very helpful to be able to assign tasks to stories outside of sprints. - this becomes very important - if any tasks remain unstarted/unfinished at the end of a sprint they should be able to be returned to the backlog - priorities for the following sprint may require that those tasks be postponed. tasks not attached to stories should be allowed in the backlog. stories need to be assignable to multiple sprints (or historical shadows left so that stories can be reassigned.)