<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Good Design - Tag - In a past life…</title>
        <link>https://archive.jtimothyking.com/tags/good-design/</link>
        <description>Good Design - Tag - In a past life…</description>
        <generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 02 Feb 2022 17:55:52 &#43;0000</lastBuildDate><atom:link href="https://archive.jtimothyking.com/tags/good-design/" rel="self" type="application/rss+xml" /><item>
    <title>Sweet Smelling Code</title>
    <link>https://archive.jtimothyking.com/2022/02/02/sweet-smelling-code/</link>
    <pubDate>Wed, 02 Feb 2022 17:55:52 &#43;0000</pubDate>
    <author>J. Timothy King</author>
    <guid>https://archive.jtimothyking.com/2022/02/02/sweet-smelling-code/</guid>
    <description><![CDATA[<!-- wp:paragraph -->
<p>I found this list buried in my notes from long ago. I cleaned it up and updated it, but yeah, I still found wisdom in this advice from my former self.</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>Moreover, this advice is also to myself. I need to be reminded of these guidelines, as I sometimes disregard them and then need to go back and clean up things afterward.</p>
<!-- /wp:paragraph -->
<!-- wp:more -->]]></description>
</item>
<item>
    <title>This Site Is Such a Hack</title>
    <link>https://archive.jtimothyking.com/2013/08/19/this-site-is-such-a-hack/</link>
    <pubDate>Mon, 19 Aug 2013 12:00:22 &#43;0000</pubDate>
    <author>J. Timothy King</author>
    <guid>https://archive.jtimothyking.com/2013/08/19/this-site-is-such-a-hack/</guid>
    <description><![CDATA[<figure class="alignright size-medium"><a class="lightgallery" href="/2013/08/19/this-site-is-such-a-hack/hacking-in-a-suite-at-clarion-Johan-Nilsson.jpg" title="Hacking in a suite at clarionPhoto © 2010 Johan Nilsson CC BY-NC 2.0" data-thumbnail="/2013/08/19/this-site-is-such-a-hack/hacking-in-a-suite-at-clarion-Johan-Nilsson.jpg" data-sub-html="<h2>Hacking in a suite at clarionPhoto © 2010 Johan Nilsson CC BY-NC 2.0</h2>">
        
    </a><figcaption class="image-caption">Hacking in a suite at clarion<br /><a href="http://www.flickr.com/photos/johannilsson/4635938025/">Photo</a> © 2010 Johan Nilsson CC BY-NC 2.0</figcaption></figure>
<p>I&rsquo;ve been wanting to set up a software-development blog for some time. And for some time I&rsquo;ve been wrestling with the pains of managing multiple WordPress blogs. Back in the day, when I had just <a href="http://bethestory.com/" title="Be the Story">my writing blog</a> and a LiveJournal, it wasn&rsquo;t such a big deal. Since then, I&rsquo;ve retired the LiveJournal—sorry, LJ friends—and have set up a number of other WordPress sites, for different niches in which I write. In particular, I have a <a href="http://blog.jtimothyking.com/" title="J. Timothy King's Blog">personal blog</a>, a <a href="http://freedom.jtimothyking.com/" title="J. Timothy King's Freedom Blog">political blog</a> (because I decided I should not pollute my personal blog with political posts), and now a <a href="http://sd.jtimothyking.com/" title="Software Development: A Love-Hate Relationship">software-development blog</a> (which you are currently reading).</p>
<p>When I spun off the political blog, I got a taste of what it meant to migrate posts from one WordPress instance to another. And my experience with this SD blog was ten times worse, because there were 10 times as many posts involved.</p>
<p>The short version of the story: WordPress is broken, and it will always be broken.</p>
<p>The long version of the story&hellip; is a little more of an acerbic joke.</p>]]></description>
</item>
<item>
    <title>10 Things I Hate About Software Development</title>
    <link>https://archive.jtimothyking.com/2009/07/22/10-things-i-hate-about-software-development/</link>
    <pubDate>Wed, 22 Jul 2009 03:39:05 &#43;0000</pubDate>
    <author>J. Timothy King</author>
    <guid>https://archive.jtimothyking.com/2009/07/22/10-things-i-hate-about-software-development/</guid>
    <description><![CDATA[<p>This blog post is intended to sabotage any chance that I&rsquo;ll get a <a href="http://sd.jtimothyking.com/2009/07/20/why-i-no-longer-belong-in-a-dilbert-cube">&ldquo;normal&rdquo; software-engineering job</a>, because I don&rsquo;t think I could ever go back to a &ldquo;normal&rdquo; job.</p>]]></description>
</item>
<item>
    <title>Does Bad Writing Reflect Poor Programming Skills?</title>
    <link>https://archive.jtimothyking.com/2006/12/15/does-bad-writing-reflect-poor-programming-skills/</link>
    <pubDate>Fri, 15 Dec 2006 17:11:52 &#43;0000</pubDate>
    <author>J. Timothy King</author>
    <guid>https://archive.jtimothyking.com/2006/12/15/does-bad-writing-reflect-poor-programming-skills/</guid>
    <description><![CDATA[<p>Writing is a communication skill. And they say that communication skills and the other soft skills are what programmers need today. Effective developers don&rsquo;t work alone. They work with others in a team. And a team member needs to communicate with the other team members to be effective.</p>
<p>It&rsquo;s like playing football. No one person can win the game on his own. Each player does his part to determine whether the team moves forward. The center snaps the ball to the quarterback, who hands it off to the half-back, who runs through a hole the offensive line has created in the the other team&rsquo;s defenses. Or maybe the quarterback passes the ball to a receiver. Occasionally, the receiver is on a different page than the quarterback, and when the ball is thrown, there&rsquo;s no one there to catch it. The play falls apart. Players either work together, or they lose the game. In football speak, this is called &ldquo;not executing well.&rdquo;</p>]]></description>
</item>
<item>
    <title>Seven Truths of Good Code</title>
    <link>https://archive.jtimothyking.com/2006/11/14/seven-truths-of-good-code/</link>
    <pubDate>Tue, 14 Nov 2006 18:23:26 &#43;0000</pubDate>
    <author>J. Timothy King</author>
    <guid>https://archive.jtimothyking.com/2006/11/14/seven-truths-of-good-code/</guid>
    <description><![CDATA[<p>What is &ldquo;good&rdquo; code? Some define it as &ldquo;beautiful.&rdquo; Some equate it with experience. Some with cleverness. Some can&rsquo;t tell you what it is. Others know it when they see it. For me, &ldquo;good&rdquo; means maintainable.</p>
<p>Good code, yes, has grace and beauty. But what makes it worthwhile is that it&rsquo;s easy to work with. It&rsquo;s easy to add to good code. It&rsquo;s easy to take away. It&rsquo;s easy to make changes. It&rsquo;s easy to fix bugs. And bugs are rare. Good code does what you want it to, usually the first time. Good code is a joy, not a burden.</p>
<p>This should be the normal state of software. How many developers live in the opposite state? They think that adding a feature always takes a long time and many lines of code. They think that getting cozy with your debugger is part of the process. They think that long hours sitting in front of the computer screen means you&rsquo;re doing your job. It doesn&rsquo;t. Long hours means you&rsquo;re doing your job poorly.</p>
<p>Consider these truths of quality code. The best developers know them without thinking. To them, good code is second-nature. They&rsquo;ve internalized these truths. They&rsquo;ve reached nirvana. They are one with the code.</p>]]></description>
</item>
<item>
    <title>Quick and Dirty May Be Dirty, But Is It Quick?</title>
    <link>https://archive.jtimothyking.com/2006/10/09/quick-and-dirty-may-be-dirty-but-is-it-quick/</link>
    <pubDate>Mon, 09 Oct 2006 22:18:16 &#43;0000</pubDate>
    <author>J. Timothy King</author>
    <guid>https://archive.jtimothyking.com/2006/10/09/quick-and-dirty-may-be-dirty-but-is-it-quick/</guid>
    <description><![CDATA[<p>I&rsquo;ve been meaning for some time to write about how slow &ldquo;quick and dirty&rdquo; is, how misnamed the term is, how misguided are the hoards of managers (many of them former <em>and current</em> software developers) who embrace &ldquo;quick and dirty&rdquo; as a fast solution to pressing problems, as though it could ever deliver an actual solution.</p>
<p>I&rsquo;ve been meaning for some time to write this. It took <a href="http://blog.qualityaspect.com/2006/10/09/quick-and-dirty-inc/">Lidor Wyssocky&rsquo;s latest blog post</a> to push me into it. And just in case someone out there couldn&rsquo;t tell you were joking&hellip; (You <em>were</em> joking, right?) The sad truth is that &ldquo;quick and dirty&rdquo; may be dirty, but it&rsquo;s never quick, at least not if you actually want to deliver a usable product.</p>]]></description>
</item>
<item>
    <title>Please Don&#39;t Share Your Bodily Fluids With the Rest of the System</title>
    <link>https://archive.jtimothyking.com/2006/08/11/please-dont-share-your-bodily-fluids-with-the-rest-of-the-system/</link>
    <pubDate>Fri, 11 Aug 2006 14:59:41 &#43;0000</pubDate>
    <author>J. Timothy King</author>
    <guid>https://archive.jtimothyking.com/2006/08/11/please-dont-share-your-bodily-fluids-with-the-rest-of-the-system/</guid>
    <description><![CDATA[<p>Have you ever been here? Refactoring old code, seeing new code that partially de-factors it, and taking out my frustrations in code comments.</p>
<p>The old comment for a <code>struct</code> declaration:</p>
<pre>// This structure will be generated
// and stay with each connection</pre>
<p>The new comment:</p>]]></description>
</item>
<item>
    <title>James Shore on Good Design</title>
    <link>https://archive.jtimothyking.com/2006/04/07/james-shore-on-software-quality/</link>
    <pubDate>Fri, 07 Apr 2006 10:00:34 &#43;0000</pubDate>
    <author>J. Timothy King</author>
    <guid>https://archive.jtimothyking.com/2006/04/07/james-shore-on-software-quality/</guid>
    <description><![CDATA[<p>Quality is one of those ineffable abstractions. Ask ten people, &ldquo;What is good design?&rdquo; Get twenty answers. But <a href="http://www.jamesshore.com/Articles/Quality-With-a-Name.html">Jim Shore&rsquo;s answer</a> is actually worth something.</p>
<blockquote>A good software design minimizes the time required to create, modify, and maintain the software while achieving acceptable run-time performance.</blockquote>
<p>This definition has some pretty obvious, radical, and cool implications. Quality depends on what changes you&rsquo;re making to the software and who is making them. How much time you&rsquo;ll have to spend maintaining the code is more important than how much time you spend coding it in the first place. And all of this means <em>you can&rsquo;t plan ahead for design quality</em>!</p>]]></description>
</item>
</channel>
</rss>
