    <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  :: Editorial: On Being Lazy</title>
        <link>https://members.accu.org/index.php/articles/2481</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">Journal Editorial + CVu Journal Vol 30, #1 - March 2018</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/c184/">Journal Columns</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c185/">Editorial</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/c383/">301</a>
<br />

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

                    -                        <a href="https://members.accu.org/index.php/articles/c185+383/">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;Editorial: On Being Lazy</h1>
<p><strong>Author:</strong>&nbsp;Bob Schmidt</p>
<p>
<strong>Date:</strong> 09 March 2018 17:17:37 +00:00 or Fri, 09 March 2018 17:17:37 +00:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<p>I sometimes talk to people about being a 'lazy' programmer. Laziness in this case isnâ€™t about laziness for its own sake, but it is about not doing things if you either don't have to, or if you know itâ€™ll save you effort in the long run. An example of the latter is often about identifying manual, repetitive tasks and automating them to reduce time, as well as the opportunity for mistakes. Itâ€™s the former way of being lazy I want to look at here.</p>

<p>Not doing things you donâ€™t have to is, of course, not a new idea â€“ in programming, or elsewhere. It did garner a kind of popularity about 20 years ago, when Kent Beck and others were advocating â€˜Extreme Programmingâ€™. One of the principles behind that was â€˜YAGNIâ€™ â€“ You Arenâ€™t Gonna Need It. It was mainly a reaction against the prevailing ideas of big up-front design, and spending time dreaming up features that ended up never being used. Itâ€™s a worthy cause, for sure, and also features in other lazy principles like doing the simplest thing that could possibly work (tm). It can be summed up as only implementing those features for which a concrete requirement (not just a wish) has been identified.</p>

<p>On the face of it, this seems fine, except that software development is never so neat and tidy. There are some non-functional or hidden requirements that are rarely considered by anyone except developers. One of these is application configuration. If a system isnâ€™t built from the beginning to be configurable so it can (for example) be run on a developerâ€™s workstation, or in any one of many deployment environments, it can be detrimental to the overall effort. Itâ€™s certainly the case that designing a system to be flexible like this can be difficult and time consuming, but I think itâ€™s well-spent if it makes life easier down the road. Itâ€™s rare that something like this is identified as a formal requirement though, and back-fitting it can be very difficult.</p>

<p>There are many examples like this that seem to fly in the face of the YAGNI principle. Please write in with your own!</p>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
