/srv/irclogs.ubuntu.com/2008/09/10/#launchpad-meeting.txt

=== mwhudson_ is now known as mwhudson
=== mrevell is now known as mrevell-lunch
=== salgado-afk is now known as salgado
=== mrevell-lunch is now known as mrevell
barry#startmeeting15:00
MootBotMeeting started at 09:00. The chair is barry.15:00
MootBotCommands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE]15:00
barryhello everyone and welcome to this week's ameu reviewer's meeting.  who's here today?15:00
salgadome15:00
flacosteme15:00
BjornTme15:01
abentleyme15:01
bacme15:02
barrydanilos, EdwinGrubb, sinzui ping15:02
sinzuime15:02
danilosme15:02
EdwinGrubbme15:02
=== EdwinGrubb is now known as EdwinGrubbs
barrygmb: ping?15:03
gmbme15:03
* sinzui sips lovely coffee15:03
gmbbarry: Oops, sorry.15:03
bigjoolsme15:03
barrycprov-afk: ping15:03
barryanybody else missing?15:03
cprov-afkme15:04
barry[TOPIC] agenda15:04
MootBotNew Topic:  agenda15:04
barry * Roll call15:04
barry * The Kiko way to quick and easy reviews (barry, kiko)15:04
barry * Pre-implementation calls15:04
barry * If there's time, the old boring script15:04
barry   * Next meeting15:04
barry   * Action items15:04
barry   * Queue status15:04
barry   * Mentoring update15:04
barryi want to try something different today15:04
barryi want to talk about the fun stuff first, and then do the boring scripted stuff last if there's time.  any objections?15:05
barrygreat!15:05
barry:)15:05
barry[TOPIC] quick and easy reviews15:05
MootBotNew Topic:  quick and easy reviews15:05
barrydid anybody /not/ get a chance to read the message i sent around this morning on this topic?15:05
bacme15:06
abentleyme15:06
barry(it's not a problem of course :)15:06
flacostebetter than that, i tried it out!15:06
barryflacoste: excellent!  i'll ask you about your feedback in a bit15:06
barryso let me try to summarize...15:06
barrywe want to make reviewing quick, easy, and fun15:07
barrykiko, flacoste and i have been talking about this a bit so here are some key insights:15:07
barry- reviews are a mediocre qa tool, but an excellent learning tool15:07
barry- don't research, ask questions15:08
barry- ask more questions15:08
barry- improve your code scanning abilities; identify changes, ask a question and move on15:08
barry- concentrate on stuff that looks weird.  if you see something that looks weird... ask a question!15:08
barrythere's more in the email but the goal is this:15:08
barrymedium sized branches should take around 15 minutes to review.  large branches no longer than 30 minutes15:09
barryfirst let me ask flacoste to give his impressions, having been our trail blazer, then let's open this to some discussion...15:09
barryflacoste: ?15:09
flacostei agree, it was fun and fast15:10
flacostewell15:10
flacosteit was a 2000 lines branch15:10
flacosteso it still took 1.5h15:10
flacostebut still15:10
barry!15:10
flacostei'm looking forward to seeing stub's reply15:10
flacostebut there was a lot of questions in there15:10
* barry spends that much time on an 800 line branch15:10
flacosteand the trick is really that as soon as you stop and wonder...15:11
flacostewrite down a question15:11
barryflacoste: great point: trust your gut.  i've been trying to train myself that if the question pops in my mind, don't suppress it15:12
barryask it15:12
barryflacoste: anything else?15:12
flacostenot really, it's that simple15:13
flacostebut like i said this means that all initial reviews are needs-reply15:13
flacostewhich is fine, but i'll see how it unfolds15:13
barryflacoste: thanks.  okay.  i'll open the floor for discussion15:14
abentleyI've found that people are slow to answer questions when doing on-call reviews.  The process just drags.15:14
abentleyAlso, if the main purpose of reviews is QA, and they're a mediocre tool, are they worth it?15:15
sinzuiI have found developers more than happy to explain how I'm wrong during on-call reviews.15:15
bigjoolsthen go to the next review, that's the dev's problem not yours.  OCRs are meant for quick reviews.15:15
barrybigjools: +1.  we want to reduce stall15:16
barryand remember, it's the dev's responsibility to shepherd their branch, and to respond to questions15:17
bigjoolsexactly15:17
barryabentley: review is never going to make a branch perfect anyway15:17
flacostethe main purpose of a review isn't QA15:18
gmbWe can't catch the majority of annoying bugs using reviews. We *can* prevent a lot of stupid bugs by doing them.15:18
abentleybarry: Yeah, but a sloppy review isn't even going to prevent the quality of launchpad's codebase from deteriorating.15:18
barryabentley: kiko's insight is that reviews are for learning and questioning first.  it's by the process of questioning that the dev begins to re-examine some of the assumptions they've made15:18
flacostebut to ensure some uniformity in code15:18
flacosteand to improve the quality of the code15:18
flacosteand also to spread knowledge around15:18
flacostethat last point is probably the most important15:18
flacostea lot of ideas will cross-pollinate through reviews15:18
flacostewhere the reviewer will either learn a new technique by looking at the code15:18
flacosteor will suggest an improvement that will make the dev learn a new pattern or technique15:19
barryflacoste, gmb exactly15:19
gmbActually, I'd *really* like us to emphasise that reviews are not a bug prevention tool.15:20
bigjoolssomething that we do in Soyuz is a "pre-review" with a domain expert, it's just a quick look at the code to make sure it's doing what we all expect it to do before a real review15:20
barryabentley: i think more emphasis on pre/mid-impls and continuous qa will do more to improve quality15:20
gmbBecause doing a review and trying to look for bugs makes life really, really hard for the reviewer, and hurts my brain.15:20
barrybigjools: that's very interesting15:21
gmbThe checks for a review should be:15:21
bigjoolsso maybe pre-review to look for bugs, main review for the big picture?15:21
gmb * Does the code do what it says it does (needs a domain expert sometimes)15:21
gmb * Is the code covered in tests15:21
gmb * If there's something weird, why is it weird?15:21
gmb * Does to code conform to our standards.15:21
abentleygmb: bugs are hard to catch in review.  Lack of test coverage is easier.  Design flaws easier still.15:21
gmbabentley: Right. Design flaws should be caught in the pre-imp.15:22
sinzuigmb: I also look for: does the code reinvent what we already have?15:22
gmbsinzui: That's not always easy if you don't know much about domain context though.15:22
abentleygmb: IME, pre-imp focuses on "what", not "how".15:22
gmbabentley: I always try to come to a pre-imp ready-to-code, which means I have tests, which means I have a design.15:23
sinzuigmb: Reviewers can can see outside the domain, where common problems are solved.15:23
barrygmb: though you /can/ sniff out refactoring potential even if you don't know specifically.  if in doubt... ask!15:23
gmbTrue enough.15:23
gmbAnd I confess I like weilding the YAGNI bat every once in a while.15:23
abentleygmb: I don't.  And I don't agree that having tests means you have enough design to be sure there aren't design flaws.15:24
barryabentley: it's not the reviewer's responsibility to uncover design flaws, imo, that's also way too late in the process15:25
kikoabentley, sure, but what impact could that have on review? the most you can say "this code looks like crap. how can we improve it?"15:26
barrykiko: and if so, ask that question and kick it out quickly15:26
bigjoolsbarry: but it's a useful backtop15:26
abentleykiko: You can say "doing it that way will scale badly and fail in production.  Have you considered doing it this way?"15:26
kikoabentley, sure, and that's insightful, but if it was me I would not even state, and just ask "how well will this scale in production, considering we have 1500 neutrinos being frobbed every run of the proton accelerator?"15:27
kikoI always ask15:27
kikolet the coder figure out the answer15:27
barrybigjools: yes, but only as a sanity check.  iow, if it smells bad, it's the dev's burden of proof15:28
kikoand TBH I don't care too much if it works or not -- I just care that I get a reasonable answer from the coder15:28
bigjoolsbarry: agreed15:28
barryit makes them stop and think, and maybe identify holes in their own design or code15:29
barryso anyway, i encourage you all to respond to the ml thread.  be critical and (yes you guessed it) ask question!15:30
barrycprov-afk: has to leave early and sends his apologies15:31
barry[TOPIC] pre-impls15:31
MootBotNew Topic:  pre-impls15:31
barryi have just a few thoughts, which i'm going to put into an email after this meetingggg15:31
barryso you're getting the raw brain dump :)15:32
barry- we want to include beuno in pre-impls concerning u/i.  do a 3-way call with him to sanity check th eui15:32
barry- is it okay to bounce branches that have no pre-impl?15:32
barry- btw, a pre-impl can also be a mid-impl15:32
barry- include the q/a plan in the cover letter (cprov's email which i havent' read yet)15:33
barry- no pre-imp, no on-call review?15:33
barry- one exception: cleanup branches.  do 'em fast, get 'em reviewed fast, land it... JFDI15:33
barrythat's it.  any comments?15:34
=== kiko is now known as kiko-phone
sinzuiWhen we do UI changes, do we include a sketch?15:35
BjornTi think it's ok to bounce branches that have no pre-impl call, if they have design flaws. if not, no reason to bounce.15:35
barrysinzui: are you a good artist? :)15:36
barryBjornT: good point.  a lot depends (for me) on the cover letter.  if it's detailed enough that i understand the tradeoffs and design decisions, i might let it pass15:36
barryif not, bounce and move on15:36
barrysinzui: i'm not sure how beuno wants to work re: ui review prep.  we'll have to ask.  or do you mean in the cover letter?15:37
sinzuibarry: I write tests and implementation before I do a preimp. I image I would also be using ascii art to illustrate behaviour.15:38
sinzuis/implementation/implementation examples/15:39
barrysinzui: ah.  is that because you're trying to figure out how to attack the issue?15:39
barryi ask because i try not to write anything before having the pre-imp, except notes & cover15:39
sinzuibarry: right. Only one implementation example ever worked by pasting it into the code as I recall.15:40
sinzuibarry: I use tests to set scope, judge the number of branches I need, and to establish ne APIs.15:41
barrysinzui: i agree that all those thing make for a solidly researched branch15:41
sinzuiI suppose I am really doing a mid-imp since I may have the branch complete before I talk to someone.15:41
barrysinzui: which is fine :)15:42
barryokay, we have just a couple of minutes left.  as i said, i'll take this to the ml too15:42
barryany comments on the new format?  i'm trying to get away from the old boring scripted meeting15:43
flacosteworks from now15:44
flacostebut it's not like the old scripted one15:44
flacostewas taking most of the meeting15:44
barryflacoste: yeah, but i like the meat up front :)15:44
flacosteit's just that the first common 10 minutes are at the end instead of the beginning15:45
barryanyway, we're out of time, so thanks everybody!15:45
barry#endmeeting15:45
MootBotMeeting finished at 09:45.15:45
=== kiko-phone is now known as kiko
=== salgado is now known as salgado-lunch
=== kiko is now known as kiko-fud
=== salgado-lunch is now known as salgado
=== kiko-fud is now known as kiko
=== salgado is now known as salgado-afk
=== kiko is now known as kiko-afk

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