[almighty] Idea: modelling iterations

Max Rydahl Andersen manderse at redhat.com
Mon Sep 26 09:07:17 UTC 2016


On 26 Sep 2016, at 9:47, Thomas Mäder wrote:

> Hi folks,
>
> I think the question how to represent iterations hinges on whether 
> iterations are an extension or an intrinsic concept.

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.

> 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.

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 ;)

> 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.

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.

> 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:
>
> /Thomas
>
> On 09/23/2016 04:23 PM, Max Rydahl Andersen wrote:
>> That said - I agree that things like iterations and other data that 
>> are used
>> for grouping/categorizing should be as nice and light to use. Nothing 
>> worse
>> having to do several clicks to just put something in a specific 
>> bucket when
>> it could be done by typing a label/version/iteration etc. and have it 
>> created on the fly.
> We may still implement this in a light way: just creating an iteration 
> work item in the background if none exists.

Yes, that is what I mean - we can have a pretty rich model behind but 
still make it easy and lightweight to use.

> If we decide that iterations are just labels, then let's treat them 
> like labels: they will not be a concept in our system.

Labels would be a useful concept in the system - even if just a simple 
name. Not following the logic here.

>> My preference for anything use for categorisation/grouping is to
>> allow defining strictly hierarchical taxonomies via a path like 
>> structure.
> +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.
> This will also take care of having arbitrary depth containment and 
> multiple containment hierarchies, something that is lacking in Jira, 
> for example.

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 
*everything* as the same thing (i.e. iterations, labels, components are 
all considered work items).

>> Same for areas/components/labels could be useful as hierarchies that 
>> can be created on the fly
>> or if a project chooses "locked" down.
> I don't understand the "locked down" part and how it pertains to the 
> issue.

i.e. git does not allow everyone to add lables, jira does not allow 
everyone to add components - these are "locked" down.

jira does allow everyone to add labels - they are not locked down.

>> Now writing through these one could maybe just have a "Categorisation 
>> type"
>>   and "Categorisation" and say work items can have fields of type 
>> "Categorization".
>>
>> i.e. Areas, Components, Labels, Iterations, ...
>>
>> And these have name, (optional) description, (optional) time frame 
>> (start/stop).
> -> that's a work item in anything but name, no?

Just like everything is a hash map :)

I see this more as they share a lot of the same traits, but they are not 
the same thing.

/max
http://about.me/maxandersen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/almighty-public/attachments/20160926/aa4898ee/attachment.htm>


More information about the almighty-public mailing list