/srv/irclogs.ubuntu.com/2010/10/14/#launchpad-meeting.txt

=== Ursinha-bbl is now known as Ursinha
mwhudsonhello00:59
bac#startmeeting01:00
MootBotMeeting started at 19:00. The chair is bac.01:00
MootBotCommands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE]01:00
bachi guys01:00
* rockstar 01:00
* StevenK waves01:01
* wallyworld__ waves back01:02
bac[topic] outstanding action01:03
MootBotNew Topic:  outstanding action01:03
bac[topic] Sinzui to investigate making lint check for the Storm 'in' gotcha01:03
MootBotNew Topic:  Sinzui to investigate making lint check for the Storm 'in' gotcha01:03
baclast week we talked about using the Python 'in' operator with Storm and how it is Bad.  sinzui reports pretty good progress on changing lint to sniff these occurrences out.  yay.01:04
bac[topic] HenningE to add a note to the PSG about the use of any01:04
MootBotNew Topic:  HenningE to add a note to the PSG about the use of any01:04
bac'any' and 'all01:04
bacactually.  henning wasn't at the meeting so we don't know if he got around to it01:04
bac[topic] Mentat update.01:05
MootBotNew Topic:  Mentat update.01:05
bacstevenk, how is the mentoring process going?01:05
StevenKQuite slowly, sadly. thumper was on holidays and I forgot I was OCR, so that didn't help/01:05
bacStevenK: what is your day?01:06
StevenKWednesday AsiaPac01:06
bacok.  i'll try to throw my next branch at you.01:07
StevenKSounds good. :-)01:07
bacStevenK: when you have spare time you can always pull branches off +activereviews01:07
StevenKIt's the spare time of that sentence that's getting me too.01:08
bachi lifeless01:08
bacrecall too that henning and salgado are UI review mentats.  please consider them first for your UI reviews.01:09
bacand also note we lose noodles as a UI reviewer as he moves to ISD01:09
wallyworld__does that mean we should explicitly specify those guys when requesting a review instead of leaving it up for grabs?01:10
bacwallyworld__: yes, that would be good if you do01:10
lifelessdid I miss some context?01:10
mwhudsonlifeless: mentored reviewer progress01:10
lifelessso bottlenecking on two folk makes me wary01:11
lifelesscould we just say that 'all nonUI reviewers are UI review mentees'01:11
lifelessand then if you happen to have a mentee on a branch with UI stuff that the mentee doesn't feel capable on, they can call in a mentor?01:12
bacwell, if he were a mentee then by definition he'd have to call in a mentor to approve the branch01:12
bacrockstar what have we said about moving everyone towards being UI reviewers?01:13
mwhudsonis bottlenecking on ui reviews a problem people are having?01:13
mwhudsonas someone who touches the lp ui about once a year, i have no idea :-)01:13
rockstarbac, well, after chatting with sinzui, I think henninge can probably graduate.01:13
rockstarbac, I think I was pushing for everyone being a javascript reviewer first.01:14
bacrockstar and i think salgado must be close01:14
lifelessI will admit that I've just ignored needing/not needing a UI review; but I suspect I'm a special case in that regard01:14
rockstarbac, unfortunately, after my recent javascript work, I kinda want to go the other way now.  :)01:14
rockstarlifeless, how are you a special case?01:14
lifelessrockstar: either I've never made a UI change that needed a UI reviewer (and I don't know what triggers that clause)01:15
lifelessrockstar: or noone has felt comfortable telling me they think a branch will need one01:16
rockstarlifeless, usually, your reviewer should tell you.01:16
lifelessrockstar: or I've had a UI reviewer by chance when I've needed one01:16
rockstarbac, ideally, everyone is a everything reviewer.01:17
lifelessI think we should just work on that basis01:17
rockstarlifeless, unfortunately, I can't agree.01:17
lifelessand if someone's review isn't catching what we care about, we act on that and help them improve01:17
lifelessrockstar: why not?01:17
rockstarlifeless, I think (currently) most people's reviews aren't catching what we care about.01:18
lifelessrockstar: I agree. For /all/ review types.01:18
rockstarlifeless, at the Epic two years ago, we made a big push to start doing more javascript.  Unfortunately, most people are avoiding that.01:18
wgrantFWIW, I think reviews are at the moment fairly useless.01:19
wgrantThey mostly seem to check stylistic issues, but rarely anything functional.01:19
lifelesslast week we talked about what reviews should be doing; I'm working on a clear articulation of the issues I see there.01:19
rockstarwgrant, yeah, that's what lifeless' arch guide is about.01:20
mwhudsoni find most of my review comments are insisting that comments are accurate and make sense01:20
mwhudsoni think this is still valuable though01:20
* rockstar has that in mind when he does reviews.01:20
lifelessrockstar: cool01:20
lifelessrockstar: so, I still don't understand your objection01:20
mwhudsonwe suck at js?01:21
rockstarmwhudson wins, methinks.01:21
lifelessif most reviews are not getting at things we care about, it seems like to be one of a few things:01:21
bacwgrant: do you feel the quality of reviews has gone down lately or have they always been superficial and mostly useless?01:21
lifeless - insufficient training / depth of knowledge / breadth of knowledge01:21
lifeless - fear of getting deep in01:22
lifeless - insufficient time to do the review well01:22
wgrantbac: It hasn't changed lately.01:22
lifeless - ???01:22
lifeless - profit!01:22
wgrantBut, well, I haven't been around long.01:22
lifelessbac: they weren't always superficial, but there were problems centred around having very large pieces of work arrive all at once with very poor internal structure01:23
mwhudsonlifeless: harking back to last week, i think an issue is that for the things we care about now, review is too late01:24
lifelessthe desired solution to that - smaller bits of work - has seemingly resulted in shallower reviews01:24
baclifeless: i was about to raise that issue01:24
lifelessmwhudson: I don't think its too late per se.01:24
mwhudsonlifeless: your way of putting it makes a lot of sense too01:25
bacsmaller units of work mean it is harder to cohesively see the bigger effort01:25
lifelessmwhudson: but it sure is hard if the incoming branch has *lots* of room to improve :)01:25
mwhudson8 small reviews do not, in some sense, make up a good review of the one large feature they all implement01:25
lifelessright01:25
mwhudsonwell hurrah, we all agree on this point :-)01:25
lifelessand I'm not about to suggest that we go back to the good^Wbad ol' days01:25
mwhudsonit would be an interesting experiment: i wonder how much effort on general code quality the simple knowledge that you have to get your code through review has01:26
wallyworld__would a solution be to have a larger unit of work split into smaller chunks, but insist on the one reviewer all the way through to keep the bigger picture aspects in mind?01:26
lifelesseffort? impact?01:26
bacof course the problem is made worse when the n reviews for the n smaller branches are spread over n reviewers01:26
lifelessmmm01:26
mwhudsonmaybe i should try to find a CS lecturer to do this experiment...01:27
lifelessso LP is small enough for one developer to whole a reasonable approximation of the entire system in their head.01:27
lifelessand we have dedicated periods for review when folk don't have to be simultaneously cutting new code.01:27
StevenKI think that's a fallacy01:27
StevenKI have trouble keeping all of the bits I care about in my head, so I don't see how anyone could keep track of the whole of Launchpad, even to a reasonable approximation -- we also move far too quick for that01:28
lifelessit may be false to say that all lp developers can do that.01:28
lifelessStevenK: we move glacially.01:28
StevenKAs a whole, yes01:29
StevenKCertainly aspects are changing quicker01:29
mwhudsoni think lp is a bit too big to hope for many people to understand how it all fits together01:29
StevenKs/ly//01:29
lifelessI'm going to take a second to put some thoughts together01:29
lifelessok01:33
lifelessso here's the thing.01:33
lifelesseither the system is so big that we can no longer tell whats in it.01:33
lifelessIn which case I think we need a rule like drizzle had(has?) - no patch can make the codebase bigger. Smaller only. Fin.01:33
lifelessOr the system isn't that big.01:34
mwhudsonhmm01:34
lifelessIn which case I think its reasonable to ask that reviewers be getting the big picture, looking for things that should have been refactored, things that will scale poorly, etc.01:34
mwhudsonpartially baked thought, but01:34
mwhudsonit's not really size that's the thing to worry about, but complexity, and in particular, close coupling01:35
lifelessmwhudson: inappropriate coupling for sure.... sometimes close is a benefit. Sometimes not ;)01:35
lifelessmwhudson: cohesion + close-coupling are two metrics I would grab offhand for talking about complexity.01:36
bac"inappropriate coupling" is new on the BBC, i think01:36
mwhudsonlifeless: i guess -- i mean stuff like when code developer A reviews code developer B's code and then breaks translations01:36
lifelessmwhudson: yes, that sucks;01:37
* lifeless puts some more coal the mwhudson thinking bbq01:37
lifelesss/the/ on the/01:37
mwhudson:)01:38
mwhudsonas per usual in an unclear discussion, perhaps we need to ask "what is the problem here"01:38
mwhudsonmost reviews are perfunctory: not /really/ a problem01:39
lifelessmwhudson: its a problem01:39
mwhudsonreviews are wasting developer time and reducing velocity: that's a problem01:39
lifelessthat too01:39
lifeless(sorry, didn't mean to break your flow; fingers-up)01:39
mwhudsonlifeless: or another way, perfunctory-ness is a problem, but it requires looking a layer in01:40
mwhudsoni recall back in 2007 when it would sometimes take days to get your code reviewed; it's a lot better than that now01:40
mwhudson(unless you're jam :/)01:41
lifelessmwhudson: now it takes days to land it :)01:41
mwhudsonyeah01:41
mwhudsonthat's certainly a problem01:41
* mwhudson gets off the soapbox01:41
lifelessso I think reviews that miss crucial things like 'will blow out the query count for the home page' are a problem.01:41
bacmwhudson: the slowness to get reviews back then certainlly wasn't due to more thoroughness of the review01:42
mwhudsonbac: no, it was due to idiotic processes :)01:42
lifelessand reviews that happily add a duplicate (nearly line for line) result set decorator likewise.01:42
bacright01:42
lifelessbut we were talking UI and javascript01:42
lifelesswe have formalise the idea of:01:43
lifeless - code reviews01:43
lifeless - db reviews01:43
mwhudsonlifeless: for the latter, good code organization probably help01:43
lifeless - ui reviews01:43
mwhudsons01:43
lifeless - javascript reviews01:43
lifelesswe have an idea of structural/architectural reviews which I've introduced as an element of code reviews.01:43
lifelessas you say, a review that slows velocity and doesn't add compensating value is a problem.01:44
lifelessare there other problems that folk would like to note, about reviews01:44
lifelessI'll take that as a no01:45
lifelessso for every *different* review type we require a change to go through we create a handoff01:45
lifelesswe've recently shifted the 'qa review' (typically self-inflicted) from being arbitrarily close to release to being a pipeline stall for everyone, for instance.01:45
lifelesswe've justified that by saying that the risk of a bad deployment outweighs the cost of having a stall01:46
lifelesson all our review types, we don't prevent all issues entering the codebase (note that I'm not saying we -should-)01:47
lifelessbut if its a sliding scale (I think it is), why can't we get more folk involved in the reviews, training up the scale now ?01:47
bacwhat do you mean by getting more people involved?01:48
lifelessbac: Why can't stevenk, for instance, do a javascript review, and:01:48
lifeless - if he feels out of depth, punt (but watch the review to learn)01:49
baclifeless: that is exactly the process for JS01:49
lifelessis it the same process for UI? I was told here by you that it wasn't...01:49
bacit is not01:49
lifelesswhy isn't it?01:50
bacb/c historically UI changes were jealously guarded by our UI designer.01:50
lifelessdo we have a UI designer now ?01:51
bacthe review point was abused as the time for actually doing UI design01:51
baclifeless: no, we do not01:51
lifelessthen I think we should change this.01:51
lifelessif we were to make it the same as JS; what risks would we face? What benefits would we get? we probably need to think about the risks reasonably closely.01:52
bacwe do have a small set of UI reviewers who are supposed to enforce not just a nicely designed UI for a given page but one that fits into the larger system01:52
lifelessare UI changes qualitatively meeting that goal?01:52
lifelessat a higher success rate per change than other sorts of changes in the system?01:53
bacunmeasured01:53
lifelessfwiw the feedback I hear is that the LP ui is confusing and strange01:54
wallyworld__should ui changes/additions go through an approval process by ui gatekeepers at the *design* stage? using balsamic etc?01:54
mwhudsonit's probably better than it was though01:54
lifelessmy personal and professional opinion is that UI is driven by the entire stack.01:54
wallyworld__+1 on the lp ui comment from lifeless01:54
lifelesstrying to make it nice at the top end is a world of pain.01:54
bacwallyworld__:  i think that would be much better01:54
bacguys i hate to duck out on a great conversation, but we are over time and i have another commitment01:55
lifelessunless the defintion of UI is -extremely shallow-01:55
lifelesswallyworld__: I may misunderstand but isn't balsamiq just a mockup tool?01:55
bacfeel free to stay and chat and i'll read the backlog01:56
wallyworld__yes, but it can be used as a tool to help communicate ui design etc for approval01:56
lifelessso this comes back to mwhudsons point about *when* we decide various things01:56
lifelessdo we decide to have a composite or inheritance in review or 'preimpl' or 'as we go'01:57
marswallyworld__, we set out, as a team, a process for using balsamiq for mockups - it's the easiest, fastest way to try and iterate upon and idea01:57
wallyworld__yes, review time is way too late for lots of things01:57
lifelessreplace those terms with whatever ones make sense for e.g. db, javascript, language, etc etc01:58
marswallyworld__, and we really like to do mockups before writing code - Michael Nelson and his work on the packaging UI is an exemplar of the technique01:58
lifelesswallyworld__: by way to late, do you mean 'it can feel very hard to change those things after doing some work on them'01:58
wallyworld__i think we are saying the same thing with balsamic01:58
wallyworld__the main point with mentioning balsamic is that i was trying to say we need to use various tools to communicate ui changes for approval *before* code is written01:59
lifelessI'd like a better definition of 'too late'01:59
wallyworld__"too late" = the cost of fixing issues becomes too great01:59
lifelesswallyworld__: I think thats a pessimisation and we can do better; it adds handoffs and roundtrips that are poorly justified.01:59
* wallyworld__ thinks02:00
wallyworld__it's all a balancing act. handoffs are bad but so is trying to fix stuff too late in the process02:00
lifelesswallyworld__: I'm thinking -very- big picture here: approval meaning 'passes whatever criteria we as a team have decided on', and the topic being any of ui/js/python code/db/component choices/...02:01
lifelessWhat I'd like to see is, broadly:02:01
lifeless - stop treating all changes as homogeneous (they aren't)02:01
lifeless - the amount of approval needed should vary with the impact of a mistake02:02
wallyworld__i'd the the *timing* of approval should relate to the best place to identify and fix mistakes02:02
lifelessmmm02:03
wallyworld__i meant "i'd add..."02:03
lifelessthat leads to the BDUF set of issues02:03
lifelessI'm entirely happy with the goal of having such discussions as needed to be move forward early02:03
lifelessbut approving before its done is a great way to fail to adapt to changing needs02:04
wallyworld__doesn't have to mean BDUF....02:04
marslifeless, "BDUF"?02:04
lifelessbig design up front02:04
marsah, of course02:04
wallyworld__we just need to be pragmatic and use our skills as experiences software engineers to do "what's right"02:05
lifelesswallyworld__: lets set a goal: 4 hours to concieve and deliver *into production* a change.02:05
lifelesswallyworld__: if you can fit preapprovals into that, I will happily tolerate them.02:05
wallyworld__surely that 4hr window depends on the scope of the change?02:05
wallyworld__and at the moment, that whole 4hrs would be consumed by the landing process :-(02:06
lifelesswallyworld__: if you don't break things up into small pieces yes. And that comes back to the scaling points I made above.02:06
lifelesswallyworld__: yes, but don't let currently problems drag you down :)02:06
wallyworld__ah, but to have the small pieces to implement, you often need to have the bigger picture all sorted so that it can be chunked up02:07
wallyworld__and you often need approval/review of the bigger picture design02:07
wallyworld__before it is to be split up into units of work02:07
lifelesswallyworld__: well, wearing my TA hat, I can say that I won't approve things at that level: I will discuss and collaborate, and reject things that are clearly problematic.02:08
wallyworld__well that's review rather than approval. so long as those biiger picture things are collaborative and have more than one set of eyes on them02:09
lifelesswallyworld__: but I'm not interested in saying 'this is definitely ok' for 2 months work - I think its a poor idea (and lots of literature on estimating work, and the overal XP/agile community agree AFAICT)02:09
wallyworld__+1. see my previous comment02:09
wallyworld__you just want to stop any obvious failings before they have a chance to go too far02:09
lifelessright02:10
wallyworld__and perhaps ask some pertinant "have you thought about this or that questions"02:10
lifelessI've said it before, I'd be delighted to see much more design traffic on the list.02:10
wallyworld__to minimise the chances of issues down the track02:10
lifelessdesigns seem to be happening largely in very private discussions and then we hit the 'its hard to change this now' complaint at review time02:10
mwhudsonyeah, it can be hard to get a response to this02:11
wallyworld__i agree that's bad and we should encourage a culture where that doesn't happen02:11
lifelessmwhudson: 'this'?02:11
wallyworld__perhaps people are scared to make a mistake or look bad in front of the entire list?02:11
mwhudsonlifeless: sorry, bad phrasing02:11
wallyworld__so it's easier for them to do design stuff in a smaller group?02:12
lifelessmwhudson: de nada, just couldn't bind it sensibly.02:12
mwhudsonlifeless: basically, design proposals to launchpad-dev are often greeted with a deafening silence02:12
lifelesswallyworld__: look at what I do for instance; small stuff I JFDI, larger stuff I do a spike on / mail the list for discussion.02:12
mwhudsonmaybe we need an "on call design opinion" as well as on call review02:12
wallyworld__mwhudson: +102:13
lifelessmwhudson: studies on group intelligence suggest that the dominating ability to be 'smart' as a group is getting everyones opinion.02:13
lifelessso -1 on on-call02:13
mwhudsonfor example, i was the only person to respond in depth to one of lifeless02:13
mwhudson' design mails, and i'm not even on the team any more02:13
mwhudsonlifeless: put it another way02:14
lifelessI think it would be great to use the OCR as a teddy bear, if thats what you meant02:14
mwhudsonback in the lean training, i remember advocating the idea that doing reviews was at least as important as doing your 'own' work02:14
mwhudsonargh, one more step back02:14
lifelessit would be interesting to have everyone read every commit.02:15
mwhudsonhypothesis: people don't reply to design mail because they don't feel they have the time/energy to really dig into it and respond usefully02:15
lifelessfor a week.02:15
wallyworld__mwhudson:  i'd like to provide more input but feel i need to learn the lp architecture a bit more first :-)02:15
lifelesswallyworld__: please do, don't hold back.02:15
wallyworld__be careful what you wish for :-D02:16
mwhudsonproposed solution: promote a culture where replying to design mail is considered a really good way of spending your time02:16
marsmwhudson, did we not have the technical architecture group and [tech] (I think) mailing list tag for that?02:17
mwhudsonhence my analogy to reviews -- similar problems were held up wrt getting reviews done back in 200702:17
wallyworld__+1. atm i personally find it really hard to keep up with the volume of email and get my "core" work done02:17
mwhudsoni.e. not enough time02:17
lifelessmars: the t-a-g is a design failure - it adds filtering to what should be a core dev responsibility02:17
mwhudsonocr + cultural changes helped there02:17
mwhudsonon call design (ocd? :-p) may not be the thing here02:18
lifelessI think the dominating driving factor though is test suite time.02:18
wgrantmwhudson: Not enough time, or infrastructure issues (slow tests, third-time's-the-charm landing) making it ridiculously inefficient?02:18
mwhudsonbut cultural change possibly02:18
lifelessit more than anything else saps time and adds to the pressure to be *doing* not *talking*02:18
mwhudsonwgrant: hey, a 4 hour test suite gives you _masses_ of time to reply to design mails :-p02:18
wgrantTrue, true.02:19
lifelessmwhudson: I agree that cultural change is needed too; see for instance flacostes thread recently.02:19
marslifeless, I think one goal was to have a group of interested and capable experts from the LP team who could reply to design decisions.  The [tag] changed the social contract to be "must reply" for that group.02:19
wallyworld__mwhudson: not when something fails and you burn time looking into why and find out it's not your stuff after all :-(02:19
mwhudsonlifeless: yes, making dev generally easier and smoother will help02:19
mwhudsonwallyworld__: yeah, i wasn't being very serious there02:19
lifelessmars: I want input from the least experienced of our engineers as much as the most.02:19
wallyworld__i know, just being mischievious02:19
lifelesss/m.*$/aussie/02:20
lifeless:)02:20
* wgrant stomps on lifeless.02:20
mwhudsoni need to duck out now too02:20
lifelessme too; lunch calls02:20
lifelessI'd like to highlight one really important bit that this discussion clarified for me.02:20
marslifeless, well, the group was to prevent the deafening silences mwhudson spoke of.  Anyone was free to opine in the thread02:20
lifeless'its too hard at review time' really means 'engineers find changing things at review time hard'02:21
StevenKPersonally, I don't find it hard.02:21
StevenKIt just sucks to rewrite something you just wrote.02:21
lifelesspre-landing review is *entirely* capable of identifying ui glitches, js bugs, code structure issues, performance issues.02:21
wallyworld__i'd rephrase as "it's too hard to fix a bad design issue onces it's already been coded"02:21
wgrantit shouldn't happen at review time.02:21
lifelesswallyworld__: the bit I object too is 'too hard'02:22
StevenKAnd I should have brought this up at the meeting, but consistency!02:22
wgrantIt probably just needs to be easier to grab someone mid-implementation.02:22
StevenKwgrant: Using *gasp* WIP MPs02:22
lifelesswallyworld__: its *not* too hard.02:22
* StevenK glares at lifeless 02:22
lifelesswallyworld__: its underdesirable that the *first time* an issue is encountered is *after a lot of work is done*02:22
wgrantStevenK: Well, bouncing to Julian introduces far more latency than would generally be ideal.02:22
wallyworld__lifeless: s/too hard/bad practice02:22
lifelesswallyworld__: but we have *two* concerns02:23
lifelessa) engineer efficiency02:23
lifelessb) gatekeeping02:23
lifelessactually02:23
wallyworld__agreed. and i think we could consider more gatekeeping earlier in the development cycle02:24
lifelessb) maintaining 'quality' of various aspects (code/perf/ui/schema/..)02:24
marslifeless, bingo02:24
lifelesswe can do many things to b:02:24
marslifeless, you forgot scheduling and time pressure02:24
lifeless- split it up02:24
marssometimes people don't have time to change how they did things (I've gotten hard pushback on reviews for that before :(02:24
lifeless- move it after landing in trunk02:24
lifeless- make it optional02:24
mwhudsonfor sure making development easier (faster more reliable pre-merge tests, daily rollouts) and reducing the cost of mistakes (feature flags!) will make everything else way better02:24
lifeless- move all or some of it earlier in the dev cycle02:24
* mwhudson really disappears02:25
lifelessbut in terms of deciding what to do; I want us to have a *clear* vision of 4 hour dev cycles: two dev cycles a day.02:25
lifelessThats the LEAN inner loop.02:25
lifelesswe shouldn't do tings to b) that will interfere with reaching a 4 hour cycle time.02:25
wallyworld__lifeless: for you that's 6 hours answering everyone's questions on irc and 2x 1hr dev cycles02:26
lifelesswallyworld__: its the price I pay for this amazing job02:26
wgrantBut he's lifeless.02:26
StevenKHaha02:26
wgrantSo that might even out.02:26
marswallyworld__, he's from the SCRUM camp :)02:26
wallyworld__oh that explains a lot :-)02:27
lifelessmars: not really ;)02:27
lifelessmars: some of the scrum stuff is just nuts02:27
lifelessok, fooding, thanks for the awesome discussion.02:28
marslifeless, I meant in that you spend your time removing obstacles for other engineers so they can continue their work - the scrum master role02:28
marslater02:28
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== salgado is now known as salgado-dr
=== salgado-dr is now known as salgado
=== _thumper_ is now known as thumper

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!