    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: An Ode to Code</title>
        <link>https://members.accu.org/index.php/articles/2367</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>




<div class="xar-mod-head"><span class="xar-mod-title">Programming Topics + CVu Journal Vol 29, #2 - May 2017</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c13/">Topics</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c65/">Programming</a>
<br />

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c77/">CVu</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c373/">292</a>
<br />

                                            <a href="https://members.accu.org/index.php/articles/c65-373/">Any of these categories</a>

                    -                        <a href="https://members.accu.org/index.php/articles/c65+373/">All of these categories</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;An Ode to Code</h1>
<p><strong>Author:</strong>&nbsp;Martin Moene</p>
<p>
<strong>Date:</strong> 08 May 2017 09:17:58 +01:00 or Mon, 08 May 2017 09:17:58 +01:00</p>
<p><strong>Summary:</strong>&nbsp;Pete Goodliffe shares his annual programming practice poem.
</p>
<p><strong>Body:</strong>&nbsp;<p>For the last few years at the excellent ACCU Conference, Iâ€™ve shared a short coding poem as one of the lightening talks. (I have to admit that the lightening talks have always been somewhat of a highlight of the conference for me not <em>only</em> because of my contributions. You never know what short nugget of wisdom or entertainment youâ€™ll hear next.)</p>

<p>This year I felt I couldnâ€™t possibly break from this tradition, so I present for your delight this yearâ€™s entry. Itâ€™s worth reproducing in <em>CVu</em> because: many of the membership are not able to attend the conference, and every time I â€˜performâ€™ a poem, people come up afterwards and ask for a copy. Well, here it isâ€¦</p>

<p class="Poem-1st">Every year a coder here<a href="#FN01"><sup>1</sup></a> will bring a coding rhyme.</p>
<p class="Poem">Some might be bad, but five minutes is not too long a time.</p>
<p class="Poem">But often these performances, whilst they might entertain</p>
<p class="Poem">Donâ€™t do much to help us learn, to teach us, or to train.</p>

<p class="Poem-1st">So this year, here, Iâ€™d like to bring a far more useful thing:</p>
<p class="Poem">Coder wisdom, earned with scars, thatâ€™s set for you to sing.</p>
<p class="Poem">Hopefully among the other conference presentations </p>
<p class="Poem">Its memorable, through meter, humour and practical demonstration.</p>

<h2>ACT 1</h2>

<p class="Poem-1st">â€˜Lay code out wellâ€™ is our first theme, itâ€™s what weâ€™re often taught.</p>
<p class="Poem">But should we care? Yes! Let me share one way that I was caught...</p>
<p class="Poem">One time I worked upon some code of Japanese descent;</p>
<p class="Poem">The experience was eye opening and led to this lament.</p>

<p class="Poem-1st">When you canâ€™t tell a single thing about the code youâ€™re reading,</p>
<p class="Poem">The lack of comprehension makes your working quite misleading.</p>
<p class="Poem">Without clear names and clean code shape, subtle bugs can hide.</p>
<p class="Poem">So, syntax faults and code horrors can lurk unseen inside.</p>

<p class="Poem-1st">It bit us once: to ship this beast with behaviour that was dumb </p>
<p class="Poem">caused by a missing equals sign (that should stand out like a sore thumb)</p>
<p class="Poem">We had to spend more than four days on extended bug foray. </p>
<p class="Poem">If the sign aligned, weâ€™d save that time, and reduce shipping delay. </p>

<p class="Poem-1st">Whilst you yourself might not have code from more than one location,</p>
<p class="Poem">The lesson from this story serves as adequate indication.</p>
<p class="Poem">Care how code looks; the ease of reading every coding line </p>
<p class="Poem">Impacts the speed of your code feed: you shrink your debug time.</p>

<h2>ACT 2</h2>

<p class="Poem-1st">â€˜Code reviewsâ€™ are our theme two, a practice often skipped,</p>
<p class="Poem">Although without it quality is often seen to slip. </p>
<p class="Poem">We want the highest standard code, we aim for code hygiene;</p>
<p class="Poem">Review accountability helps to achieve this dream.</p>

<p class="Poem-1st">It shouldnâ€™t take much extra time if it is done correctly,</p>
<p class="Poem">The benefits outweigh the costs; youâ€™ll reap rewards directly. </p>
<p class="Poem">Is interesting that modern workflows agree that this is best;</p>
<p class="Poem">Itâ€™s seen most clearly used today in Githubâ€™s pull request.</p>

<p class="Poem-1st">You donâ€™t want such an onerous scheme that it is hard to do.</p>
<p class="Poem">You need to find the review balance that works the best for you.</p>
<p class="Poem">And, if you donâ€™t â€“ you let your team commit what code they wanta --</p>
<p class="Poem">Donâ€™t be surprised if over time the code becomes a monster.</p>

<p class="Poem-1st">Story two that Iâ€™ll tell you corroborates this claim,</p>
<p class="Poem">And shows why code reviewing should be high among your aims.</p>
<p class="Poem">Weâ€™ll see a way a team once failed through poorly managed process,</p>
<p class="Poem">And hopefully improve when learning from the diagnosis.</p>

<p class="Poem-1st">To get some software fully built the team, but one, ploughed on</p>
<p class="Poem">To fix the final showstoppers and get a release done.</p>
<p class="Poem">A solitary coder split to start on the next thing.</p>
<p class="Poem">â€œWeâ€™ll join you shortlyâ€ said the rest, believing their planning. </p>

<p class="Poem-1st">But problem upon problem beset the release crew;</p>
<p class="Poem">And as quickly as they worked they found more work they had to do.</p>
<p class="Poem">So, rather than a week or two, for months they parted ways,</p>
<p class="Poem">And the solitary coder worked with no-one to appraise. </p>

<p class="Poem-1st">He built most of the next release, and built it by himself.</p>
<p class="Poem">One man writing all code alone may not lead to code health.</p>
<p class="Poem">His labours worked, the code it ran, so all seemed pretty cool.</p>
<p class="Poem">But some time later they found out he was a coding fool.</p>

<p class="Poem-1st">After months and months of coding, the next release was nigh.</p>
<p class="Poem">There was no time to re-write, so they used his code and sighed.</p>
<p class="Poem">It was painful but they did it, the next release date met.</p>
<p class="Poem">But their precious codebase was now stuck with much more technical debt.</p>

<p class="Poem-1st">The moral of the story told is clear for you to see:</p>
<p class="Poem">Coding and design reviews help you work efficiently.</p>
<p class="Poem">Even the most accomplished dev, when given things to do</p>
<p class="Poem">May get it wrong, and code review helps stop you go askew.</p>

<h2>EPILOGUE</h2>
<p class="Poem-1st">So thatâ€™s the end of this lecture; my five minutes are done.</p>
<p class="Poem">I trust the lessons shared with you were useful and were fun.</p>
<p class="Poem">Now, keep your coding clean and your process goodness showing,</p>
<p class="Poem">Or else youâ€™ll end up starring in a conference coding poem.</p>

<p class="footnotes"></p>
<ul>
	<li><a id="FN01"></a>Me, usually</li>
</ul>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
