*** openstackgerrit has quit IRC | 01:47 | |
*** openstackgerrit has joined #storyboard | 01:48 | |
*** SotK_ has joined #storyboard | 02:18 | |
*** SotK has quit IRC | 02:23 | |
*** NikitaKonovalov2 has joined #storyboard | 03:26 | |
*** NikitaKonovalov has quit IRC | 03:26 | |
*** NikitaKonovalov2 is now known as NikitaKonovalov | 03:26 | |
*** yarkot_ has joined #storyboard | 06:21 | |
*** jtomasek has joined #storyboard | 06:33 | |
*** yarkot_ has quit IRC | 06:52 | |
*** mrmartin has joined #storyboard | 07:53 | |
*** mrmartin has quit IRC | 08:18 | |
*** mrmartin has joined #storyboard | 08:22 | |
*** fay has joined #storyboard | 08:57 | |
*** fay is now known as Guest82640 | 08:57 | |
*** Guest82640 is now known as faybrocklebank | 08:59 | |
*** faybrocklebank has quit IRC | 09:02 | |
*** fay has joined #storyboard | 09:02 | |
*** fay is now known as faybrocklebank | 09:02 | |
*** mrmartin has quit IRC | 09:31 | |
*** openstackgerrit_ has joined #storyboard | 09:54 | |
*** openstackgerrit_ has quit IRC | 10:02 | |
*** mrmartin has joined #storyboard | 10:09 | |
Zara | morning, storyboard! | 10:14 |
---|---|---|
Zara | I had 5 hours' sleep! For no good reason! | 10:15 |
Zara | (idk if you ever get that thing where you want to clean your teeth and go to bed but you can't summon the will to move at all, but yeah. started trying at 11pm, managed it around 4am. at one point started reading around online for people who experienced the same thing, just for added ridiculousness.) | 10:18 |
faybrocklebank | not done that one but I am familiar with the falling asleep on the sofa then waking yourself up by cleaning teeth and then not being able to get to sleep | 10:19 |
Zara | haha | 10:19 |
SotK_ | morning! | 10:20 |
*** SotK_ is now known as SotK | 10:22 | |
Zara | I've done that one too, but this time I was actually tired enough to sleep (which was extra annoying). | 10:24 |
Zara | okay, so we talked about using title as criteria like tags search (for header search). problem is, that checks for exact matches | 10:47 |
Zara | so if you have something tagged 'cat dog' and you search 'cat', 'cat dog' won't be returned | 10:48 |
Zara | so that's a problem for titles... | 10:48 |
SotK | I think titles should "just work" when sent to the api (it does `GET /v1/stories?title=cat` when you type in the header bar, and that works) | 10:51 |
SotK | whereas I *think* it checks for exact matches when you give the api a tag to filter by | 10:51 |
Zara | yeah, I think it must do. I started off looking at it that way because at the meetup we talked about doing a title search similar to a tags search... trying to work out what'll be different. but tbf I'm not looking at that code yet so that's also unhelpful. | 10:53 |
*** mrmartin has quit IRC | 10:56 | |
Zara | https://review.openstack.org/#/c/278508/ is still lonely, awaiting review | 11:36 |
Zara | (did you know 'adumbrate' is a word? it's a word. it means 'represent in sketchy/outline form' (learned it yest in context of 'when you perceive an object, you adumbrate the view of that object from different angles'. this is an educational channel today.) | 11:52 |
Zara | nothing to do with storyboard. I remembered it because I thought the person I was talking to had said 'adam-something', and I just saw 'adam coldrick' a bunch in gerrit | 11:52 |
* Zara goes back to code | 11:53 | |
* SotK did not know that word | 11:55 | |
* persia will try to use adumbrate more in the future | 11:56 | |
Zara | :) It reminded me of 'penumbra', and googling reveals that 'umbra' is latin for 'shadow', so I'm guessing it's literally something like 'giving a thing a shadow' | 11:57 |
Zara | have fun with it! :D | 11:57 |
persia | "the bringing forth from the platonic shadow" :) | 11:57 |
Zara | heh | 12:00 |
*** openstackgerrit has quit IRC | 12:03 | |
*** openstackgerrit has joined #storyboard | 12:03 | |
openstackgerrit | Zara proposed openstack-infra/storyboard-webclient: Move search icon https://review.openstack.org/279204 | 13:05 |
Zara | I'm so tired I just almost tried to push to github | 13:06 |
Zara | I wondered why it was asking for my username. :) | 13:06 |
openstackgerrit | Zara proposed openstack-infra/storyboard-webclient: Move search icon https://review.openstack.org/279204 | 13:11 |
openstackgerrit | Zara proposed openstack-infra/storyboard-webclient: Move search icon https://review.openstack.org/279204 | 13:11 |
Zara | yes, one of those was just changing the commit message to the right tense | 13:12 |
Zara | btw, https://review.openstack.org/#/c/280259/ is kinda blocking task links in their current form | 13:16 |
Zara | I should update that commit message. | 13:21 |
openstackgerrit | Zara proposed openstack-infra/storyboard-webclient: Basic Task Links https://review.openstack.org/277882 | 13:22 |
*** mrmartin has joined #storyboard | 14:05 | |
*** mrmartin has quit IRC | 14:25 | |
*** mrmartin has joined #storyboard | 14:29 | |
* SotK makes a worklist which automatically shows all tasks assigned to either him or Zara \o/ | 14:32 | |
* SotK then realises that this implementation can't express "show all unmerged tasks assigned to SotK or Zara" and starts over | 14:33 | |
Zara | well that was quick xD | 14:33 |
Zara | btw, was that 'can express xor but not or', or was that 'can express or but not if there's also a task status (etc)'? | 14:34 |
SotK | it was "can express or but not on a per-criterion level" | 14:35 |
SotK | I could do "match any of `assignee: Zara`, `assignee: Adam`, `status: !merged`" | 14:36 |
Zara | ahhh, right | 14:36 |
Zara | hahaha | 14:36 |
SotK | but not "match any of `assignee: Zara`, `assignee: Adam`, where `status: !merged`" | 14:36 |
Zara | yeah, I gotcha | 14:36 |
SotK | and the latter is the interesting one | 14:36 |
Zara | oh well, once you've fixed that, let's just poach that for all search | 14:37 |
* Zara scuttles away | 14:37 | |
SotK | :D | 14:37 |
*** mrmartin has quit IRC | 14:38 | |
* SotK ponders how on earth to make the UI for per-criterion AND/OR understandable | 14:41 | |
persia | Parentheses? | 14:44 |
Zara | what, you mean we can't just go "assignee1 ^ !merged v assignee2 ^ review" ;_; | 14:44 |
Zara | (I was going to do 'for every' and 'for each' but I couldn't be bothered to find the keyboard shortcuts to those) | 14:45 |
* persia usually considers priority in the following order ()∧∨! | 14:45 | |
persia | ∀? | 14:46 |
Zara | yeah, that's the one I was thinking of as 'for every' | 14:46 |
Zara | but in seriousness, I think we need something more visually straightforward | 14:47 |
SotK | yeah, I hate writing gerrit search terms and want something nicer | 14:47 |
Zara | I don't think we can expect people to use parentheses etc when creating criteria for automatic boards. | 14:47 |
persia | I read that as "for all" and "for each", personally, with ∃ as "for every" | 14:47 |
persia | We could have a full DSL for automatic worklists, and will probably eventually get thetre, but for now, yes, simplicity is king. | 14:48 |
SotK | at the moment it uses the same criteria dropdown that the filter search bars do (but doesn't shove them all in one text box) | 14:48 |
SotK | you pick Task/Story, you pick "matching/not matching", then type and potential filters are suggested | 14:49 |
SotK | you pick a filter and click save | 14:49 |
SotK | then have the opportunity to add another criterion | 14:49 |
persia | One way to do it is to have each criteria be either conjuctive or disjuctive, with any disjuction applying to everything so far. | 14:50 |
*** mrmartin has joined #storyboard | 14:53 | |
SotK | persia: so in that case my example would need to be expressed something like "assignee:Zara AND status:merged OR assignee:Adam AND status:merged" | 14:55 |
SotK | ? | 14:55 |
SotK | s/merged/!merged/ | 14:56 |
SotK | that could work I think, with each of those pairs being a row in the table in the UI | 14:59 |
SotK | (that might not make sense, but I know what I mean :) ) | 14:59 |
Zara | I'll wait and see it before trying to work out what that represents visually, then :D | 14:59 |
Zara | as long as people know what's going on and they don't need to have studied any formal logic, I'm fine with it. | 15:01 |
Zara | what happens in that example if you have the same assignee twice because of a disjunct? | 15:03 |
Zara | assignee:Zara AND status:merged OR assignee:Adam | 15:03 |
Zara | AND status:merged | 15:03 |
persia | I was thinking "assignee: Zara (+)", "assignee: Adam(+)", "status:!merged"(/) | 15:03 |
Zara | oh nvm I was going to add stuff but it pasted | 15:03 |
persia | In the model I attempted to describe, the conjuctive/disjuctive status applies per line, rather than infix. | 15:04 |
SotK | persia: I parsed that as "(assigned to zara and assigned to adam) or not merged" | 15:07 |
persia | Yeah, my symbols leave something to be desired. | 15:08 |
persia | The model I've described is sometimes used in games engines, and ends up being expressive without being complicated, but it can be very confusing for folk trained in boolean algebra. | 15:09 |
persia | Basicaly, any line can either add items to the result set or filter the result set, and the items are processed in order. | 15:09 |
persia | That said, with such a system is it not possible to express things like (assignee:Adam AND status:merged) OR (assignee:Zara AND status:!merged) | 15:10 |
persia | (the polarity difference is significant, rather than being a typo) | 15:10 |
* SotK suddenly understands persia's model | 15:11 | |
* persia cannot take credit for it, only for suggesting it as a possibility | 15:11 | |
* SotK wonders if we'll ever want to express something like the not-possible thing | 15:13 | |
persia | I believe there are going to be folk who wat to be able to use full 4GL expressiveness, including identifying the handedness of joins. | 15:14 |
persia | A larger subset of folk will want full boolean algebra. | 15:14 |
persia | The better question is: what do you need to have something basically working for the core use cases. | 15:15 |
persia | I think the case of unmerged and assigned to someone on the team is a good one, which is likely to be interesting to many team managers. | 15:16 |
persia | Although I'll admit to limited clear understanding of how folk use kanbans, so there's a decent chance that some real kanban user can explain what is needed better than I. | 15:16 |
* persia is happy with worklists, and has seen many trello users use kanbans like worklists (with a lane per-person, etc.) | 15:17 | |
* SotK has been imagining a "kanban" with each lane an automatic worklist filtering by "unmerged and assigned to $team_member" whilst working on automatic worklists | 15:19 | |
persia | Do you mean each lane has a status, and cards assigned to all members of the team appear on the kanban? | 15:19 |
persia | Or do you mean a lane for each person, with only "backlog" and "merged" following the semantics described in the prior line? | 15:20 |
Zara | SotK: I'm not clear on what it rules out, just cases where there's a contradiction (merged vs ! merged) or cases where it's something like: (assignee: Adam AND status:merged) OR (assignee: Zara AND status:review) | 15:20 |
SotK | Zara: I think it rules out both of those | 15:21 |
SotK | I also think I wouldn't find the latter a useful worklist | 15:21 |
SotK | I'd rather see one list of "(assignee: Adam AND status:merged)" and another of "(assignee: Zara AND status:review)" | 15:21 |
SotK | persia: I meant just a grouping of worklists on one screen rather than a real kanban, for example showing the two lanes I just described | 15:22 |
persia | Zara: It rules out anything where there is text before a '('. So one can do A+B or (A+B)+C or ((A+B)+C)/D, but nothing that ever has meaning before one of the '(' entries. | 15:22 |
SotK | (or more usefully showing "Adam's unmerged tasks", "Zara's unmerged tasks", "Pedro's unmerged tasks" or similar, to get a quick view of how much work each engineer had outstanding) | 15:23 |
persia | SotK: The main issue with collating multiple worklists in a "board", if it isn't really a board, is the restriction on cards only appearing once in a "board". | 15:23 |
SotK | persia: True. At the moment, that restriction only actually exists when trying to add cards using the webclient though. | 15:24 |
Zara | SotK: one thing that might be worth bearing in mind is that !merged currently means (!review ^ !todo ^ !invalid), and the last one might cause trouble | 15:26 |
persia | Makes sense, although from a product management perspective, I can see much value in looking at a set of other people's worklists when constructing my own, especially if the ones I examine are from my stakeholders and the one I create drives engineering activity. | 15:26 |
Zara | idk how often people are assigned to invalid things though. | 15:26 |
Zara | ugh, sorry, ignore later exlcamation marks! | 15:26 |
Zara | haha | 15:26 |
persia | If someone is assigned to an invalid item, either they should be working to make it valid, or they should get themselves unassigned. | 15:26 |
Zara | and swap ands for ors | 15:26 |
Zara | worst logic statement ever | 15:26 |
Zara | hopefully there's sense in there somewhere | 15:26 |
* persia just mentally inserted a ! before the ( to cause it to make sense | 15:27 | |
* SotK thinks that is a thing for the worklist owner to bear in mind, !merged is just an example :) | 15:27 | |
Zara | yeah, I thought it might be relevant because we're using !merged as a shorthand for (todo ^ review) | 15:28 |
persia | In practice, I suspect most will be positive declarations (e.g. "status:review", "status:inprogress") | 15:28 |
persia | Zara: I wouldn't worry much about that: "status:invalid" tasks that pop up are likely to actually require action or will fall off because of assignment filters. | 15:29 |
* SotK was using !merged to mean (todo v inprogress v review v invalid) | 15:29 | |
persia | (just because a task is invalid doesn't mean that it is not usefully assignable: if only as a reminder to create the relevant valid task) | 15:30 |
Zara | SotK: fair enough, I wanted to be careful about using it to mean different things when talking about desired behaviour vs literal meaning in the codebase and then discovering there was a problem translating | 15:31 |
persia | +1 on validating consensual semantic assignments | 15:31 |
Zara | (I'm worried I'll think of a good example but not for a few hours. I'm hoping it'll be fine to just go 'that should be in a different worklist' each time there's a clash.) | 15:32 |
persia | I beleive in just-enough-development. If you can represent things for your key stakeholders, then wait until you have new stakeholders to do it the more complicated way. | 15:34 |
Zara | so I think what I'm tryiiiiing to establish is: | 15:34 |
Zara | for each assignee, we want tasks that are todo or in progress or in review | 15:35 |
Zara | !merged gives us those +invalid , maybe not a problem | 15:35 |
Zara | do we have cases where we want todo v in progress but !review? (and similar) | 15:35 |
openstack | Zara: Error: "merged" is not a valid command. | 15:35 |
Zara | hahaha | 15:35 |
persia | It could be done with full boolean algebrea support, or with 3GL and 4GL interpreters, but at some point the right answer is to tell folk to use the API and filter locally using their own client-side logic. | 15:35 |
persia | (this is why making sure python-storyboardclient works is useful and/or important) | 15:35 |
persia | At least for me, I think automatic worklists are just UI candy, but not actually an interesting way to represent data. | 15:36 |
persia | The resulting dashboards are a useful way to consume data, but that's not the same thing. | 15:36 |
persia | So, I think the first pass should either be very simple, use the game-derived sequence trick, or boolean iff there is a handy library to implement that easily. | 15:37 |
persia | s/either// | 15:37 |
*** yarkot_ has joined #storyboard | 15:44 | |
*** yarkot_ has quit IRC | 15:49 | |
* SotK wonders whether doing boolean or making the list reorderable is the lesser of two evils :D | 15:51 | |
* persia boggles at the idea of a reorderable list, but comes to the conclusion that the motivation to gamers to get their lists right is higher than the motivation of managers to get their lists right | 15:54 | |
SotK | yeah, I'd rather be able to drag my criteria up/down than have to redo it all | 15:55 |
persia | And, as importantly, you never expect to wake up in the middle of the night with a new improved order for your criteria that will give you a massive advantage | 16:00 |
betherly | hello storyboard! | 16:00 |
betherly | how are everyones days going? | 16:00 |
SotK | hi betherly | 16:18 |
SotK | going pretty well thanks! | 16:18 |
SotK | you? | 16:18 |
betherly | i _think_ doing well now lol! ironic-ui gate been broken and stuck in gerrit hell trying to fix...i think we are there now though lol | 16:19 |
*** mrmartin has quit IRC | 17:35 | |
*** mrmartin has joined #storyboard | 17:54 | |
Zara | niiiiiiight storyboard | 17:54 |
Zara | glad someone's day's going well! hopefully I'll be more helpful tomorrow. | 17:54 |
*** faybrocklebank has quit IRC | 18:11 | |
*** faybrocklebank has joined #storyboard | 18:12 | |
*** jtomasek_ has joined #storyboard | 19:23 | |
*** jtomasek_ has quit IRC | 19:58 | |
*** mrmartin has quit IRC | 20:45 | |
*** jtomasek_ has joined #storyboard | 21:50 | |
*** yarkot_ has joined #storyboard | 22:07 | |
*** jtomasek_ has quit IRC | 22:11 | |
*** yarkot_ has quit IRC | 22:16 | |
*** jtomasek has quit IRC | 22:19 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!