{"id":51,"date":"2010-03-11T21:22:38","date_gmt":"2010-03-12T02:22:38","guid":{"rendered":"http:\/\/littlesvr.ca\/masters\/?p=51"},"modified":"2010-05-30T18:59:22","modified_gmt":"2010-05-30T22:59:22","slug":"code-review-using-tablets-literature-review-1","status":"publish","type":"post","link":"http:\/\/littlesvr.ca\/masters\/2010\/03\/11\/code-review-using-tablets-literature-review-1\/","title":{"rendered":"Code review using tablets &#8211; literature review (1)"},"content":{"rendered":"<p>I looked for existing work and opinion on code review using tablets today.<\/p>\n<p>I started by looking for people who do what I do at work &#8211; print out the code to be reviewed. It looks like I&#8217;m not very unusual in thinking this is a worthwhile thing to do, in fact the practice seems almost common. But I haven&#8217;t felt great love for printouts out there.<\/p>\n<p><a href=\"http:\/\/lantana.tenet.res.in\/~tag\/progdoc\/CodeReviewGuidelines.pdf\">Gonsalves and Murthy<\/a> (2001) say a couple of interesting things:<\/p>\n<blockquote><p>The reviewer should not try to fix any bugs or improve the code. S\/he should merely inform the programmer about potential bugs and possible improvements.<\/p><\/blockquote>\n<blockquote><p>2. Steps in Code Review<br \/>\n1. Obtain print-outs of the specs and design documents, and of the code.<\/p><\/blockquote>\n<p>That second suggestion is interesting. If for no other reason than that it shows reviewing code using a text editor is considered inefficient by some.<\/p>\n<p>Some in the wild call printouts &#8220;<a href=\"http:\/\/www.pnsqc.org\/conference09\/Paper_59_slides.pdf\">a conventional techniqe<\/a>&#8221; or &#8220;soooo 1976&#8221;. That doesn&#8217;t surprise me, in fact I&#8217;m surprised this is not a dominant opinion. Programmers love gadgets and fancy software.<\/p>\n<p>Looking at tablet code review in particular I was glad to see there isn&#8217;t much. At first I thought this is a completely unexplored idea, but then I found &#8220;A System for Developing Tablet PC Applications for Education&#8221; (2008), guys who developed such an application. The software was not made especially for code review (it&#8217;s only one use case) and I&#8217;m not sure it was ever completed (&#8220;This application is under active development. We do not know what set of features will best facilitate discussion of<br \/>\neach student\u2019s code.&#8221;). There&#8217;s a note Mike might find interesting:<\/p>\n<blockquote><p>Our department has a required class for juniors, entitled \u201cProgramming Studio,\u201d in which students meet each week, in small groups, to review each other\u2019s code [13].<\/p><\/blockquote>\n<p>&#8220;Panel: Using Peer Review in Teaching Computing&#8221; mentions &#8220;Using a Tablet-PC to Provide Peer-Review Comments&#8221;, a simple experiment which found (among other things) that:<\/p>\n<blockquote><p>In general, we found that the most natural medium for providing comments was the paper\/pen. However, that medium also invited more editing-style com- ments, which were not necessarily appropriate for the task at hand.<\/p><\/blockquote>\n<p>Good, that&#8217;s good. &#8220;Inking in the IDE: Experiences with Pen-based Design and Annotation&#8221; is mostly about drawing diagrams, but they do mention code annotations and that unfortunately they don&#8217;t work because they&#8217;re not integrated with IDEs.<\/p>\n<p>&#8220;Moving Markup: Repositioning Freeform Annotations&#8221; (2006) is not about code review, they developed a system to allow for annotating text on a tablet, and mention something I like:<\/p>\n<blockquote><p>Freeform digital ink annotation allows readers to interact with documents in an intuitive and familiar manner. Such marks are easy to manage on static documents, and provide a familiar annotation experience.<\/p><\/blockquote>\n<p>And here&#8217;s what I was afraid of, this concept has been not only considered but implemented multiple times. &#8220;CodeAnnotator: Digital Ink Annotation within Eclipse&#8221; (2007) mention Penmarked and RCA as &#8220;limited&#8221; solutions. Also they go over their own implementation:<\/p>\n<p><a href=\"http:\/\/littlesvr.ca\/masters\/wp-content\/uploads\/2010\/03\/eclipse-annotation.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-53\" title=\"Eclipse Digital Ink Annotation\" src=\"http:\/\/littlesvr.ca\/masters\/wp-content\/uploads\/2010\/03\/eclipse-annotation.png\" alt=\"Eclipse Digital Ink Annotation\" width=\"461\" height=\"411\" srcset=\"http:\/\/littlesvr.ca\/masters\/wp-content\/uploads\/2010\/03\/eclipse-annotation.png 461w, http:\/\/littlesvr.ca\/masters\/wp-content\/uploads\/2010\/03\/eclipse-annotation-300x267.png 300w\" sizes=\"(max-width: 461px) 100vw, 461px\" \/><\/a><\/p>\n<p>Bah, I really hoped I would be the first to implement something like this. Oh well.<\/p>\n<p>&#8220;<a href=\"http:\/\/crpit.com\/confpapers\/CRPITV50Plimmer.pdf\">A Pen-based Paperless Environment for Annotating and Marking Student Assignments<\/a>&#8221; (2006) describes Penmarked. Again &#8211; it looks like just an implementation, with no serious evaluation of its efficiency.<\/p>\n<p>&#8220;RCA: Experiences with an IDE Annotation Tool&#8221; is about (surprise) RCA. Thankfully this is also only an implementation. These guys integrated it with Visual Studio. Doesn&#8217;t look like it&#8217;s gone beyond a research project.<\/p>\n<p>I can&#8217;t take it any more, I will have to continue later. Maybe saturday. Just looking at the long list of references in the papers above makes me sick.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I looked for existing work and opinion on code review using tablets today. I started by looking for people who do what I do at work &#8211; print out the code to be reviewed. It looks like I&#8217;m not very unusual in thinking this is a worthwhile thing to do, in fact the practice seems [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/littlesvr.ca\/masters\/wp-json\/wp\/v2\/posts\/51"}],"collection":[{"href":"http:\/\/littlesvr.ca\/masters\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/littlesvr.ca\/masters\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/littlesvr.ca\/masters\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/littlesvr.ca\/masters\/wp-json\/wp\/v2\/comments?post=51"}],"version-history":[{"count":7,"href":"http:\/\/littlesvr.ca\/masters\/wp-json\/wp\/v2\/posts\/51\/revisions"}],"predecessor-version":[{"id":57,"href":"http:\/\/littlesvr.ca\/masters\/wp-json\/wp\/v2\/posts\/51\/revisions\/57"}],"wp:attachment":[{"href":"http:\/\/littlesvr.ca\/masters\/wp-json\/wp\/v2\/media?parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/littlesvr.ca\/masters\/wp-json\/wp\/v2\/categories?post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/littlesvr.ca\/masters\/wp-json\/wp\/v2\/tags?post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}