Create Iteration for a Space #409
Comments
|
The model req's for iterations may be complex. Open Questions are:
|
|
Chatlog: |
|
Iterations are owned by the user that created the iteration. @michaelkleinhenz the project owner could also be an iteration owner? |
|
I don't see a need for iterations to be 'owned' by anyone. They are part of a project, and there will eventually be a permission model which determines who can do what to an iteration. Both start dates and end dates should be optional for iterations. |
|
@qodfathr on the owner: I removed the req from the story, but this introduces some uncertainty in the implementation at the current state. The team will surely ask who will be in the current state be allowed to edit the title. As we don't have the authZ scheme in place, whou would that be? Maybe everyone, but that contradicts that we are currently introducing owners and very basic "owner-only" permissions into the system. Can you clarify on that problem? On the date: are you sure? Omitting dates from the iteration I think removes the basic meaning of iterations, degrading them to just a list of WIs..equivalent to a simple keyword/tag or category. |
|
@maxandersen @qodfathr suggestion: Iterations can be contained in iterations (or in other words, iterations are hierarchical). That makes sense. The goal for this story (and every story, for that matter) is, to keep it reasonably small while not restricting someting that comes later or creating throwaway code. So, I would for this story restrict the contents of iterations to work items and add a later story to allow Iterations being added to Iterations (or let the user CRUD a hierarchical iteration model). I would note that on the story to give hints for design decisions. The reasoning behind my suggestion is more about the UI req's than for the core req's here. The core might provide hierarchical iterations easily, but for the UI this would be a different beast. Not necessarily very complex, but definitely beyond something that should all be crammed into one single story. |
|
@michaelkleinhenz Yes, I'm very sure that dates should be optional. Iterations are hierarchical -- that was the plan. Users will generally interact with them as paths. e.g., "Release 1/Sprint 4". An iteration is just a special data type (essentially a path with a predefined set of paths available), and all work items have a single iteration field of this data type. In a large project, there can be multiple, overlapping iterations. e.g, imagine the following: Foo As you can see, Foo/Release 3/Sprint 1 runs at the same time as Bar/Carnation Release/Sprint 131, although they do not end of the same date. Moreover, Sprint vNext is currently open-ended with no end date. Also, none of the intermediate 'nodes' (e.g. Bar, Carnation Release, etc.) have any dates, although they are all valid iterations (i.e. a WI may be assigned to "Bar" or "Foo/Release 3") In cases like this, the notion of a 'Team' is important. Typically, in this overlapping world, Teams are 'rooted' at an intermediate iteration node. e.g., Team A may have its default iteration set to "Foo/Release 3" and Team B is set to "Bar/Carnation Release." This helps to determine which iterations are then generally exposes in the UI (although members of the team can assign WIs to any iteration, even ones outside of their default parent). Lastly, on ownership -- iteration definitions are basically part of the overall project definition, so, absent of a permission model, just limit the CRUD of iteration definitions to the project creator for now. |
|
@qodfathr ok, updated the story. |
|
Thanks all, this is a helpful discussion. Dates on iterations seem to be I agree with Todd, that permissions would set and control who can edit the -Monica On Mon, Oct 31, 2016 at 8:03 AM, Michael Kleinhenz <notifications@github.com
|
|
With regard to iteration ownership: |
|
This is the impression I have.... On Mon, Oct 31, 2016 at 2:38 PM, Len DiMaggio notifications@github.com
|
|
I'm not sure I understand the need (or concept) of an iteration or a Sprint Michael On Mon, Oct 31, 2016 at 2:56 PM, MonicaGran notifications@github.com
|
|
@maxandersen @michaelkleinhenz What are WITs and WILTs? |
|
WIT = Work Item Types |
|
@michaelvirgil and @ldimaggi I believe the "ownership" @qodfathr and @michaelkleinhenz refer to here is not about who is assigned/owning it but who have permissions to create/delete/update iterations. And suggestion is for simplicty sake for now just have it that the one who created a project can do so. This of course become problematic if we introduce organization - but until we have that keeping it simple. |
|
@michaelvirgil @ldimaggi as @maxandersen said, the ownership defined here is just about modifying the iteration's data like title, dates etc... As we are intruducing basic authZ now in other stories, it makes sense to define who are allowed to make changes to this data. |
|
We probably should start a document outlining all of the various permissions we eventually need to model, and the level at which they exist. We can then prioritize which ones we want to implement. e.g. Org Level Permissions Project Level Permissions |
|
@qodfathr sounds like an epic or at least an architectural runway story to me. |
|
@michael Kleinhenz +! and this needs to be conceptually laid out as well. On Mon, Nov 7, 2016 at 5:22 AM, Michael Kleinhenz notifications@github.com
|
|
A few questions @maxandersen @michaelkleinhenz @Mgranfie @qodfathr @michaelvirgil
|
|
@Essjaysee I think an iteration might just not have any time fixture at all. In general, iterations may be sprints, but may also be something completely different. Iterations are on the backside of the system just a group of work items plus some metadata. Sprints are just modelled using iterations. Also, coming back to actual sprints, I think it would make sense to allow users to create a sprint just by adding work items and not giving any start or end date. |
|
@Essjaysee on the sorting of iterations: interesting problem, I don't have a solution for that yet. But thats also not part of this story. Currently, new iterations are just appearing in dropdowns on different views once created. But this might be missing from #410, because in order to change the metadata of an iteration, the user has to select it somehow. |
|
@Essjaysee on multiple iterations: yes, we will have multiple concurrent iterations. |
|
We should provide dates at some point, not necessary out of the gate for On Tue, Nov 8, 2016 at 8:40 AM, Michael Kleinhenz notifications@github.com
|
|
@michaelkleinhenz Thanks for your replies. Actually, I do need to figure out the ordering of the iteration for this story, because after a new iteration is created, I need to specify where to show it within the list. Details, details! :) @Mgranfie Alphabetical seemed the most sensible to me too. My understanding was that dates would always be optional, so how we decide to order those without dates is always going to be relevant. |
|
+1 SJ On Tue, Nov 8, 2016 at 9:46 AM, Sarahjane Clark notifications@github.com
|
|
@Essjaysee details is why we are here :-) |
Yes. Look at jira and VSO they both does this afics.
Yes.
Just reordering yes - see jira and VSO. All have ways for that. github provides multiple ways to do ordering of iterations
Yes, but I expect a Team will only have one active iteration.
I don't follow that. The iterations will be ordered, why not use that order by default ? Alphabetic means very little if anything at all for iterations/sprints. |
Why not just have an order from day one ? |
|
We can do that. Also see #410 (comment) for Todds comment on this issue. Looks like the create date should be the order. |
Related to fabric8-services#409
Allows a workitem to be associated with an iteration Related to fabric8-services#409
Allows a workitem to be associated with an iteration Related to fabric8-services#409
Mounts: GET /api/projects/n/iterations POST /api/projects/n/iterations POST /api/iterations/n GET /api/iterations/n WorkItemType can now old KindIteration system.planneritem contain system.iteration Iteration exposed as a Relationship on the WorkItem API (only supported via Patch on Workitem) Related to fabric8-services#409
Mounts:
GET /api/projects/n/iterations
POST /api/projects/n/iterations
POST /api/iterations/n
GET /api/iterations/n
WorkItemType can now old KindIteration
system.planneritem contain system.iteration
Iteration exposed as a Relationship on the WorkItem API
(only supported via Patch on Workitem)
Related to #409
|
@joshuawilson @aslakknutsen @maxandersen @michaelkleinhenz Wireframes for iterations: https://redhat.invisionapp.com/share/KA9CAYL7M |
|
Thanks, @Essjaysee . A few comments:
|
|
This issue was moved to fabric8-ui/fabric8-planner#646 |

Precondition Note: to make definitions clearer: Iterations are not Sprints! Iterations can be used to model the sprint concept, but are a general concept to be able to model larger or different concepts. This is also the reason why dates are optional.
Description
As a user, I can create an iteration for a space.
Functional Acceptance Criteria
Note: Iterations are tied to spaces but could later contain work items from foreign spaces as well. This is not a direct functional requirement, but a hint for design decisions.
Note: Iterations are not owned by a user in the final system. There must be some authZ scheme in place that controls who can modify the iteration base data (title, dates). For now, the owner of the spaces enclosing the iteration has write access to the iteration data. Also, orgs are out of context for this story.
Note: Iterations are hierarchial, an iteration can be a "sub-iteration". This is not represented in this story, but mentioned as input for design decisions.
Non-functional Acceptance Criteria
Dependencies
Wireframes
https://redhat.invisionapp.com/share/KA9CAYL7M from the comment.
The text was updated successfully, but these errors were encountered: