<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>mikeg's blog - Programming</title>
    <link>http://www.bsd-box.net/~mikeg/blog/</link>
    <description></description>
    <dc:language>en</dc:language>
    <admin:errorReportsTo rdf:resource="mailto:mikeg-blog@bsd-box.net" />
    <generator>Serendipity 1.5.2 - http://www.s9y.org/</generator>
    <webMaster>mikeg@bsd-box.net</webMaster>
<pubDate>Tue, 23 Feb 2010 18:09:38 GMT</pubDate>

    <image>
        <url>http://www.bsd-box.net/~mikeg/blog/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: mikeg's blog - Programming - </title>
        <link>http://www.bsd-box.net/~mikeg/blog/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Trigonometric Programming: The tangent function &amp; Software Development</title>
    <link>http://www.bsd-box.net/~mikeg/blog/index.php?/archives/97-Trigonometric-Programming-The-tangent-function-Software-Development.html</link>
            <category>Programming</category>
    
    <comments>http://www.bsd-box.net/~mikeg/blog/index.php?/archives/97-Trigonometric-Programming-The-tangent-function-Software-Development.html#comments</comments>
    <wfw:comment>http://www.bsd-box.net/~mikeg/blog/wfwcomment.php?cid=97</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.bsd-box.net/~mikeg/blog/rss.php?version=2.0&amp;type=comments&amp;cid=97</wfw:commentRss>
    

    <author>mikeg@bsd-box.net (mikeg)</author>
    <content:encoded>
    &lt;p&gt;Blocked waiting for my either the software development group to give me new code to test or my FreeBSD build VM to give me a new OS build to test, so how about some random thoughts on programming?&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;I&#039;ve reached the inescapable conclusion that all software development cycles can be expressed as a single equation: y=tan(x+(&amp;pi;/2))&lt;/p&gt;
&lt;p&gt;X represents time (on a totally non-linear scale) with each interval of width&amp;#160;&amp;pi; being the development of a software release and the zero point where the function crosses the X axis representing the release of the &lt;strong&gt;X/&amp;pi;&lt;/strong&gt;&lt;sup&gt;th&lt;/sup&gt; version. &amp;#160;The Y axis represents the state of the code - how &amp;quot;bug free&amp;quot; it is. &amp;#160;I&#039;ll call the Y value within a version the &amp;quot;completeness&amp;quot; of the code for simplicity.&lt;/p&gt;
&lt;p&gt;This functional model actually works surprisingly well:&lt;/p&gt;
&lt;div&gt;&lt;!-- s9ymdb:90 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;300&quot; height=&quot;300&quot;  src=&quot;http://www.bsd-box.net/~mikeg/blog/uploads/entry_media/20100223/SWDev.png&quot;  alt=&quot;Tangent Graph with notes&quot; /&gt;
&lt;ul&gt;
    &lt;li&gt;During pre-0.0 release (&lt;strong&gt;X|0...&amp;pi;/2&lt;/strong&gt;) the software is riddled with bugs and brokenness (&amp;quot;completeness&amp;quot; is negative - that shit don&#039;t work!).
    &lt;ul&gt;
        &lt;li&gt;At some point (&lt;strong&gt;X=(&amp;pi;+&amp;epsilon;)/2&lt;/strong&gt;)&amp;#160;the software becomes at least functional (miniscule positive completeness), and is released to the unsuspecting public.&lt;/li&gt;
        &lt;li&gt;The initial release is buggy as shit, and massive patching and bug fixing happens&lt;br /&gt;
        (This is roughly from &lt;strong&gt;X|(&amp;pi;+&amp;epsilon;)/2...3&amp;pi;/2&lt;/strong&gt; -- For the sake of argument let&#039;s call the &lt;strong&gt;3&amp;pi;/2&lt;/strong&gt; mark the .1 release, or in MS parlance, &amp;quot;Service Pack 1&amp;quot;)&lt;/li&gt;
        &lt;li&gt;The software continues asymptotically approaching infinite completeness -- that nirvana state of having no bugs...&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li&gt;...At which point Marketing comes along and says the users want new features -- On our graph this corresponds to one of the vertical asymptote at multiples of&amp;#160;&lt;strong&gt;&amp;pi;&lt;/strong&gt;.
    &lt;ul&gt;&lt;li&gt;Development begins on the next (N/&amp;pi;)-dot-zero release, starting al over again from negative completeness.&lt;/li&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;In practical terms software development is not a true function: Each development window is independent and shifted toward X=0, with some overlap between the currently released version and the version under development.&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 23 Feb 2010 12:17:45 -0500</pubDate>
    <guid isPermaLink="false">http://www.bsd-box.net/~mikeg/blog/index.php?/archives/97-guid.html</guid>
    
</item>

</channel>
</rss>