<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>Graham Bleach</title>
 <link href="http://www.gdb.me/atom.xml" rel="self"/>
 <link href="http://www.gdb.me/"/>
 <updated>2012-01-22T15:33:03+00:00</updated>
 <id>http://www.gdb.me/</id>
 <author>
   <name>Graham Bleach</name>
 </author>

 
    <entry>
      <title>What do we know about software development?</title>
      <link href="http://www.gdb.me/computing/citations-greg-wilson-cusec.html"/>
      <updated>2012-01-22T00:00:00+00:00</updated>
      <id>http://www.gdb.me/computing/citations-greg-wilson-cusec</id>
      <content type="html">&lt;p&gt;Just over thirteen years ago I finished an undergraduate degree in Physics and started working as a systems administrator. One of the tenets of science that I left behind was that claims require evidence. Robust evidence originates from repeatable, robustly designed experiments.&lt;/p&gt;

&lt;p&gt;Thinking back over the hundreds of occasions when someone has suggested using a new technology, technique or process I can think of fewer than five occasions when that suggestion was backed up by robust evidence. This is a pretty awful state of affairs; I call myself an engineer and yet I make the majority of decisions based on little more than anecdote, intuition and poorly controlled experimentation.&lt;/p&gt;

&lt;p&gt;Towards the end of last year, a colleague sent around a link to a talk [&lt;a href='http://vimeo.com/9270320'&gt;video&lt;/a&gt; &lt;a href='http://www.slideshare.net/gvwilson/bits-of-evidence-2338367'&gt;slides&lt;/a&gt;] given by &lt;a href='http://third-bit.com/'&gt;Greg Wilson&lt;/a&gt; at CUSEC. It&amp;#8217;s called &lt;em&gt;Bits of Evidence: What we actually know about software development and why we believe it&amp;#8217;s true.&lt;/em&gt; It&amp;#8217;s about an hour long and outlines some areas where evidence exists and what it seems to mean.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m currently reading &lt;a href='http://shop.oreilly.com/product/9780596808303.do'&gt;Making Software&lt;/a&gt;, the book mentioned in the talk. Almost every chapter has caused me to discard some folklore or has explained some of my previous experiences and intuitions. Most importantly, it&amp;#8217;s given me some hope that as an industry we can move on from anecdote-based engineering to evidence-based engineering.&lt;/p&gt;

&lt;p&gt;I made a list of the publications that are mentioned in the talk; some are time consuming to track down, especially if you don&amp;#8217;t have much experience in using academic search engines.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href='http://www.jameslindlibrary.org/illustrating/records/a-treatise-of-the-scurvy-in-three-parts-containing-an-inquiry/title_pages'&gt;Lind (1753)&lt;/a&gt; A treatise of the scurvy&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2085438/?tool=pmcentrez'&gt;Doll &amp;amp; Hill (1954)&lt;/a&gt; The Mortality of Doctors in Relation to Their Smoking Habits, Br Med J. 1954 June 26; 1(4877): 1451–1455.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://jama.ama-assn.org/content/268/17/2420.extract'&gt;Evidence-Based Medicine Working Group (1992)&lt;/a&gt; (paywall). A New Approach to Teaching the Practice of Medicine, JAMA 268 (17): 2420–5&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://www.cochrane.org'&gt;Cochrane Collection&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5076452'&gt;Fowler (2009)&lt;/a&gt; (paywall) A Pedagogical Framework for Domain-Specific Languages, Software, IEEE, Volume: 26 Issue:4&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://dl.acm.org/citation.cfm?id=1095430.1081761'&gt;Arunda &amp;amp; Easterbrook (2005)&lt;/a&gt; (paywall) Anchoring and adjustment in software estimation, ACM SIGSOFT Software Engineering Notes, Volume 30 Issue 5, September 2005. Read the &lt;a href='http://www.cs.utoronto.ca/~jaranda/pubs/MScThesis-JorgeAranda.pdf'&gt;thesis&lt;/a&gt; instead.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://dl.acm.org/citation.cfm?id=362858'&gt;Sackman, Erikson, Grant (1968)&lt;/a&gt; (paywall) Communications of the ACM, Volume 11 Issue 1, Jan. 1968&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://www.mi.fu-berlin.de/w/Main/LutzPrechelt'&gt;Lutz Prechelt&amp;#8217;s homepage&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://dl.acm.org/citation.cfm?id=808430'&gt;Boehm et al (1975)&lt;/a&gt; (paywall) Some experience with automated aids to the design of large-scale reliable software, ACM SIGPLAN Notices - International Conference on Reliable Software, Volume 10 Issue 6, June 1975&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://www.apa.org/pubs/books/4316085.aspx'&gt;Why Aren&amp;#8217;t More Women in Science? Ceci &amp;amp; Williams&lt;/a&gt; ISBN: 978-1-59147-485-2 &lt;a href='http://www.amazon.com/Why-Arent-More-Women-Science/dp/159147485X'&gt;Amazon&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1702600'&gt;Woodfield (1979)&lt;/a&gt; (paywall) An Experiment on Unit Increase in Problem Complexity, Software Engineering, IEEE Transactions Volume: SE-5 Issue:2&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;#8230;the 25 percent increase in problem complexity results in a 100 percent increase in programming complexity.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=87283'&gt;van Genutchen (1991)&lt;/a&gt; Why is software late? An empirical study of reasons for delay in software development, Software Engineering, IEEE Transactions Volume: 17 Issue:6&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The two biggest causes of project failure are poor estimation and unstable requirements.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;[Thomas et. al (1997)] - Can&amp;#8217;t find this one&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If more than 20-25% of a component has to be revised, it&amp;#8217;s better to rewrite it from scratch.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://www.mfagan.com/pdfs/ibmfagan.pdf'&gt;Fagan, 1997&lt;/a&gt; &amp;#8220;Design and Code inspections to reduce errors in program development&amp;#8221;. IBM Systems Journal 15 (3): pp. 182–211.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Rigorous inspections can remove 60-90% of errors before the first test is run.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://smartbear.com/best-kept-secrets-of-peer-code-review/'&gt;Cohen 2006&lt;/a&gt; Cohen, Jason. 2006. Best Kept Secrets of Peer Code Review. Beverly, MA: SmartBear Software&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The first review and hour matter most.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.110.8069&amp;amp;rep=rep1&amp;amp;type=pdf'&gt;Herbsleb and Grinter 1999&lt;/a&gt; James D.Herbsleb, Rebecca E.Grinter. 1999. Splitting the Organization and Integrating the Code: Conway’s Law Revisited. Proceedings of the 21st International Conference on Software Engineering.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.148.791&amp;amp;rep=rep1&amp;amp;type=pdf'&gt;Nagappan et al. 2008&lt;/a&gt; Nagappan, N., B. Murphy, and V.R. Basili. 2008. The Influence of Organizational Structure on Software Quality: An Empirical Case Study. Proceedings of the International Conference on Software Engineering: 521–530.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://wwwcsif.cs.ucdavis.edu/~bird/papers/bird2009pat.pdf'&gt;Bird et al. 2009&lt;/a&gt; Bird, C., et al. 2009. Putting It All Together: Using Socio-technical Networks to Predict Failures. Proceedings of the 20th IEEE international conference on software reliability engineering: 109–119.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;a href='http://www.unbox.org/stuffed/export/107/doc/elamin.pdf'&gt;El Emam et al. 2001&lt;/a&gt; El Emam, K., S. Benlarbi, N. Goel, and S.N. Rai. 2001. The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics. IEEE Transactions on Software Engineering 27(7): 630–650.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Most metrics&amp;#8217; values increase with code size. If you do a double-barrelled correlation the latter accounts for all the signal.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;The &amp;#8220;beautiful&amp;#8221; series:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='http://shop.oreilly.com/product/9780596510046.do'&gt;Beautiful Code&lt;/a&gt; Greg Wilson, Andy Oram, 2007.&lt;/li&gt;

&lt;li&gt;&lt;a href='http://shop.oreilly.com/product/9780596157128.do'&gt;Beautiful Data&lt;/a&gt; Toby Segaran, Jeff Hammerbacher, 2009.&lt;/li&gt;

&lt;li&gt;&lt;a href='http://shop.oreilly.com/product/0636920000617.do'&gt;Beautiful Visualization&lt;/a&gt; Julie Steele, Noah Iliinsky, 2010.&lt;/li&gt;

&lt;li&gt;&lt;a href='http://shop.oreilly.com/product/9780596159825.do'&gt;Beautiful Testing&lt;/a&gt; Adam Goucher, Tim Riley, 2009.&lt;/li&gt;

&lt;li&gt;&lt;a href='http://shop.oreilly.com/product/9780596517984.do'&gt;Beautiful Architecture&lt;/a&gt; Diomidis Spinellis , Georgios Gousios, 2009.&lt;/li&gt;

&lt;li&gt;&lt;a href='http://shop.oreilly.com/product/9780596518028.do'&gt;Beautiful Teams&lt;/a&gt; Andrew Stellman, Jennifer Greene, 2009.&lt;/li&gt;

&lt;li&gt;&lt;a href='http://shop.oreilly.com/product/9780596527488.do'&gt;Beautiful Security&lt;/a&gt; Andy Oram, John Viega, 2009.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content>
    </entry>
 
    <entry>
      <title>Migrating to Jekyll from Personal Weblog</title>
      <link href="http://www.gdb.me/software/migrating-to-jekyll.html"/>
      <updated>2011-12-04T19:00:00Z</updated>
      <id>http://www.gdb.me/software/migrating-to-jekyll</id>
      <content type="html">&lt;p&gt;This weekend I wrote some code to extract my posts from &lt;a href='http://www.kyne.com.au/~mark/software/weblog.php'&gt;Personal Weblog&lt;/a&gt; and put them into a Jekyll-friendly format.&lt;/p&gt;

&lt;p&gt;I suspect that few people were using Personal Weblog in the first place and of those, even fewer will migrate to Jekyll, so it&amp;#8217;s unlikely that this will be of much use to many people, but I tidied it up a bit and &lt;a href='https://github.com/bleach/pw2jekyll'&gt;put it up on github anyway&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The import isn&amp;#8217;t very reliable, especially if there&amp;#8217;s less than ideal HTML inside the blog posts and you might find yourself manually editing HTML to edit the post.&lt;/p&gt;</content>
    </entry>
 
    <entry>
      <title>Moving stuff around</title>
      <link href="http://www.gdb.me/website/moving-stuff-around.html"/>
      <updated>2011-12-04T00:00:00+00:00</updated>
      <id>http://www.gdb.me/website/moving-stuff-around</id>
      <content type="html">&lt;p&gt;For the past year or so my personal website has been in some disrepair; the RSS feed was returning HTML and there was no way to get to most of the blog entries at all. It was all on a domain called darkskills.org.uk, hosted by a third party. Both of these are things that I grew out of a long time ago and the source of some embarrassment. Sorting these things out has been too much like the day job for me to muster any enthusiasm.&lt;/p&gt;

&lt;p&gt;I made a few attempts to migrate everything to an open source CMS, but these petered out after getting irritated with Wordpress or trying to glue the various bits of Django together to do what I want. Drupal, Wordpress, Django and all the other full-featured content management systems and frameworks I tried can be made to do what I want, but at the cost of spending hours learning their features, choosing styles and enabling plugins. Once that&amp;#8217;s all done there&amp;#8217;s the ongoing patching for security updates.&lt;/p&gt;

&lt;p&gt;This weekend I really should have been doing something useful with my time, but instead I ended up migrating my blog entries to a static site, running on my &lt;a href='http://www.bitfolk.com'&gt;BitFolk VPS&lt;/a&gt;, with pages generated by &lt;a href='http://jekyllrb.com/'&gt;Jekyll&lt;/a&gt;. I combined this with a change of domain name and using &lt;a href='http://twitter.github.com/bootstrap'&gt;Bootstrap&lt;/a&gt; as my stylesheet. The spartan design isn&amp;#8217;t a great demonstration of what you can do with Bootstrap; there are some clear examples on their site that are well worth looking at if you like to avoid writing CSS at all costs.&lt;/p&gt;

&lt;p&gt;One surprising outcome is that I seem to have regained some enthusiasm for writing on the web and making web pages. I&amp;#8217;ve put this down to how &lt;em&gt;easy&lt;/em&gt; it is to write in Markdown using a text editor and not having to worry about HTML. It feels like the Jekyll workflow is pretty close to my ideal way of making a simple site.&lt;/p&gt;

&lt;p&gt;Static pages mean that I can&amp;#8217;t host comments without using a javascript solution like Disqus, but that also means that I won&amp;#8217;t have to deal with comment spam, which seems like another maintenance win.&lt;/p&gt;

&lt;p&gt;I still have a few things to migrate over and then we&amp;#8217;ll see how long my enthusiasm lasts.&lt;/p&gt;</content>
    </entry>
 
 
</feed>

