<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 26 Sep 2016, at 9:47, Thomas Mäder wrote:</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<p dir="auto">Hi folks,</p>

<p dir="auto">I think the question how to represent iterations hinges on whether iterations are an extension or an intrinsic concept.</p>
</blockquote>

<p dir="auto">I see iterations as intrinsic - they are the "thing" used to model any kind of repeated steps in any development process wether agile, waterfall or something in future.</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<p dir="auto">If we expect to have different kinds of "iterations" with different properties, they should be represented as WIT's (or something similar). If we intend to have a predefined, fixed set of iteration objects, we should model them explicitly.</p>
</blockquote>

<p dir="auto">Yes, they could eventually grow into be generically defined but I think to start with we could start very basic - I for one do not think they should be munged into being work item/work item types at our API level. Not everything is a java.lang.Object either ;)</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<p dir="auto">Max, I suspect the fear you have is that the work item types degenerate to a simple hashmap and that all the business logic will end up in the client. However, I maintain that clients will know certain types of work items (Bug, Story) and will hard-code against them.</p>
</blockquote>

<p dir="auto">I think I agree with you, but I fear if you think clients are going to hard code against the level of "Bug" and "Story" then I think we failed and made the workitem API's too diluted and too generic.</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<p dir="auto">On the other hand, modeling iterations as work item types gives us a range of nice opportunities for reuse, I try to highlight them below:</p>

<p dir="auto">/Thomas</p>

<p dir="auto">On 09/23/2016 04:23 PM, Max Rydahl Andersen wrote:</p>

<blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999">
<p dir="auto">That said - I agree that things like iterations and other data that are used<br>
for grouping/categorizing should be as nice and light to use. Nothing worse<br>
having to do several clicks to just put something in a specific bucket when<br>
it could be done by typing a label/version/iteration etc. and have it created on the fly.</p>
</blockquote>

<p dir="auto">We may still implement this in a light way: just creating an iteration work item in the background if none exists.</p>
</blockquote>

<p dir="auto">Yes, that is what I mean - we can have a pretty rich model behind but still make it easy and lightweight to use.</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<p dir="auto">If we decide that iterations are just labels, then let's treat them like labels: they will not be a concept in our system.</p>
</blockquote>

<p dir="auto">Labels would be a useful concept in the system - even if just a simple name. Not following the logic here.</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999">
<p dir="auto">My preference for anything use for categorisation/grouping is to<br>
allow defining strictly hierarchical taxonomies via a path like structure.</p>
</blockquote>

<p dir="auto">+1 on that. But what I would do is to generalize the concept of "containment" as a flag on a relationship between work items. This would in one fell swoop take care of all kinds of containment hierarchies. We can query subtrees easily be materializing the "parent" field as a parent path. So containment of "areas" in "components" is really just the same as containment of stories in an epic.<br>
This will also take care of having arbitrary depth containment and multiple containment hierarchies, something that is lacking in Jira, for example.</p>
</blockquote>

<p dir="auto">I agree on the power of this and this is why I suggested generalising it - but I do feel we are overdoing it if we end up representing <em>everything</em> as the same thing (i.e. iterations, labels, components are all considered work items).</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999">
<p dir="auto">Same for areas/components/labels could be useful as hierarchies that can be created on the fly<br>
or if a project chooses "locked" down.</p>
</blockquote>

<p dir="auto">I don't understand the "locked down" part and how it pertains to the issue.</p>
</blockquote>

<p dir="auto">i.e. git does not allow everyone to add lables, jira does not allow everyone to add components - these are "locked" down.</p>

<p dir="auto">jira does allow everyone to add labels - they are not locked down.</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999">
<p dir="auto">Now writing through these one could maybe just have a "Categorisation type"<br>
  and "Categorisation" and say work items can have fields of type "Categorization".</p>

<p dir="auto">i.e. Areas, Components, Labels, Iterations, ...</p>

<p dir="auto">And these have name, (optional) description, (optional) time frame (start/stop).</p>
</blockquote>

<p dir="auto">-> that's a work item in anything but name, no?</p>
</blockquote>

<p dir="auto">Just like everything is a hash map :)</p>

<p dir="auto">I see this more as they share a lot of the same traits, but they are not the same thing.</p>

<p dir="auto">/max<br>
<a href="http://about.me/maxandersen" style="color:#3983C4">http://about.me/maxandersen</a></p>
</div>
</div>
</body>
</html>