Open stevenklassen8376 opened 10 years ago
Just my 2 ct:
Regarding this whole issue: I'd prefer you tried finding existing tickets for your feedback instead of creating a new issue with several mainly unrelated suggestions. You should know that this is not the way issue tracking works, instead forums and mailing lists have been designed for discussions like that.
You are correct, I should have placed this into a forum. I will add some additional comments here, then in a short while I will close this issue and replace it with a few specific issues as mentioned at the bottom of this comment.
My main point with the intrusiveness is that agile development methodologies are exactly that - development methodologies and redmine can encompass much more than just the software development phase. In fact software development is only one part of a product's life cycle. In our company we use three different trackers - "Bug", "Feature Request", and "Internal Enhancement" to track the change requests in our software and these are the three trackers that we added as stories in backlogs. But we also use redmine for our project planning phases (trackers "Project Proposal", "Requirement", and "Constraint") and for the customer support phases (trackers "Problem Report", "Change Request", "Question", and "Support Activity"). These all tie into the software development. For example customer support will take the "Problem Report"s from customers and will create "Bug"s and "Feature Request"s based on them, but will leave them unprioritised. Sales and management decides on their importance and assigns them a priority of "Immediate" - implies the fix must be a patch sent to customers in short order which implies an interruption in our current sprint, "Urgent" - implies it should be included in the next project plan, "High" - it should be included in one of the next two project plans, "Normal" - is only included if time allows, and "Low" - will not be done unless other needs change its priority. This is all outside of the actual software development hence has nothing to do with the development methodology. (All the while the new issues raised are either child issues of the "Requirement" or related to issues of the "Problem Report"s allowing sales and management to track the progress of the various items without the details being visible by the customer.) This is what is choosing what is to be included in a release. From the agile point of view this is how development is to choose what will be included in the sprints that make up a release. And the backlog plugin "blew away" the priority field which is an important one in our overall process.
In addition, not every software process is an agile one. Our product includes both software and hardware. And the firmware that is developed for the hardware does not follow an agile process but something much closer to a cleanroom approach. It is important that the backlog plugin not interfere with the processes of that team. That is what I mean by it being intrusive.
In fact whenever I see a comment such as "you should promote your {idea/religion/policy/process} to {someone else}" I have to ask if the person making the comment is perhaps limiting their view to their particular part of the organization. At the very least "promoting" should not imply "forcing". Software development is not the only part of the story. Unless you are willing to work without being paid you also have to deal with cost management, customer requests, and yes, even office politics.
With that said, we have, since I raised this "issue", determined how we can use the plugin without it interfering with our overall product life cycle. We are going to do this in a couple of ways, and I wouldn't mind your comments if you think there are better ways we can do this.
First, our redmine projects follow a hierarchy that separates the project planning, software development, and customer support phases of the lifecycle. As part of this all the software products are sub-projects of a parent project called "Software". By turning on the sprint sharing and making the sprints in the overall "Software" project we can continue to use the "Target Version" field for its intended use - specifying the version that the issue is targeted for inclusion, and the "Roadmap" functionality should still work. The only restriction would be that developers must only drag issues into the "sprints" of the "Software" project and must ignore the "sprints" that backlogs creates for the "Target Versions" of the sub-projects. This also has the advantage that our developers only need to watch one task board that crosses multiple projects. (We still have to determine how we are going to manage separate teams - so far only one team is following this process but we will soon add a second team - and in particular how we will deal with developers who are on both teams. I suspect we will use separate sprints for each team and those (few) developers on both teams will have to monitor two task boards.)
Second, instead of including "Bug", "Feature Request", and "Internal Enhancement" issues as stories we will create a new tracker called "Story". And we will modify our practices so that when a given issue is targeted for a release (i.e. when we set the "Target Version") we will create a child issue of type "Story". Then only the "Story" issues will be included in the backlogs. In this way the backlogs plugin can change the "Priority" and "Target Version" fields to its heart's content without it affecting the original issue. (As an additional bonus this will also handle the case where a "Feature Request" would not fit in a single sprint - we will just create multiple "Story" issues for it.)
That said, it would be nicer if we could include our original issues as stories as most of the time an issue is small enough to fit in a sprint and having to make a shadow issue seems like extra overhead. To that end, I will shortly close this "issue" and add the following ones which would allow us to do that.
My new requests (to be entered soon)...
I totally agree with all points you made. It's obviously up to the specific company how to apply scrum and in particular how to adapt it to fit into existing or otherwise required "conflicting" processes. Don't get me wrong - my company faced that, too. We've been choosing another way to cope with that, but I won't tell anybody this is the way to go.
In the end we agree on that the backlogs plugin should defensively accept as much as default redmine functionality as possible and make as less assumptions as possible about how it gets used.
I'm looking forward to positive discussions regarding the new issues you gonna create.
Looks like my first issue, and the most important one in my view, of the priority not being changed isn't an issue with this plugin at all but is an issue of redmine itself. The priority of a parent task is set to be the highest priority of all of its children. This is already logged as a defect in the redmine project but it looks like they have no current plans to fix it despite the rather large number of people who have commented that this functionality disallows them from using the child issues.
It looks like your original request 2:
Tasks being issues with a "Task" tracker. This significantly pollutes our issue queries and displays. We would greatly prefer that tasks not be issues at all but be a separate type of object attached to the issues. Basically we have had to edit most of our custom queries to add an "if not Task" filter.
And your updated request 3:
The plugin should not assume that all child issues are Tasks. We use child issues for a number of things and having them changed to Tasks when we dragged the "Feature Request" into a sprint was rather annoying (and came as a surprise) and was quite time consuming to undo. Our plan to create a "Story" tracker will alleviate this but in general the fact that all tasks are child issues should not imply that all child issues are tasks. I would consider the current functionality to be a bug in the plugin.
These are each requested in multiple other tickets, but it seems the main one for tracking the feature request is #184.
We have recently added Backlogs to our Redmine and while for the most part we love it, it has a number of areas that are more intrusive than a plugin should be and have causes us some grief. I would suggest that a plugin should be adding functionality as opposed to removing or retasking existing functionality. In particular, the following:
Don't get me wrong. We love this plugin and it is the best agile plugin of those that we tested. However we would love to see the above items changes. Personally, if I had been creating an agile plugin I would have made a couple of significant design decisions differently. First I would not turn an issue into a story. And second I would not make a task a tracker. Rather I would have created new objects called stories and tasks and would have related them back to the original issue allow issue management and tracking to work as before but adding agile methodologies on top.