<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pencils Down &#187; Software Development Process</title>
	<atom:link href="http://www.dantoomeysoftware.com/pencils-down/tag/software-development-process/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dantoomeysoftware.com/pencils-down</link>
	<description>This weblog is about my experiences in software development</description>
	<lastBuildDate>Fri, 27 Jan 2012 13:43:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Should a Designer Produce HTML and CSS?</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2012/01/06/should-a-designer-produce-html-and-css/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2012/01/06/should-a-designer-produce-html-and-css/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 13:23:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Business Practice]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Software Development Process]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/?p=272</guid>
		<description><![CDATA[I have a long term client that wants to rework their web site.  We tried a designer I had worked with, but they weren&#8217;t happy with the result.  Probably too much part-time and indirect contact to convey their needs to the designer.
So, they hired a designer on their own.  After selection I talked with the [...]]]></description>
			<content:encoded><![CDATA[<p>I have a long term client that wants to rework their web site.  We tried a designer I had worked with, but they weren&#8217;t happy with the result.  Probably too much part-time and indirect contact to convey their needs to the designer.</p>
<p>So, they hired a designer on their own.  After selection I talked with the guy to make sure it wouldn&#8217;t just be a PSD as the output: he agreed.  Once the design was agreed upon he didn&#8217;t just give me the PSD, he gave me a bunch of PNG files that he cut from the PSD.  How nice.</p>
<p>Now we are going into week two of the process trying to get HTML and CSS out of him.  I don&#8217;t think he has ever done this before.  He is good at coming up with nice pictures with the right color schemes and fonts and the like, probably an art background.  He is just lost coming up with the parts of the design you need to actually develop a web site &#8211; HTML, CSS and Javascript for any widgets/special effects in the design (there are a few).</p>
<p>Maybe I am expecting too much?  Every other designer I have worked with has produced the initial HTML&#8230; layouts.  Maybe I have  just been lucky?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2012/01/06/should-a-designer-produce-html-and-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Describe Size/Scale to Non-Techs</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2011/09/21/how-to-describe-size-scale-to-non-techs/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2011/09/21/how-to-describe-size-scale-to-non-techs/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 16:59:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Clients]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Software Development Process]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/?p=249</guid>
		<description><![CDATA[At my current workplace we are automating a lot of tasks that were done using Oracle Forms to perform under a web interface.  Sounds good so far.
One of the forms invokes some tens of thousands of lines of SQL code on the backend touching a large number of tables and invoking a good number [...]]]></description>
			<content:encoded><![CDATA[<p>At my current workplace we are automating a lot of tasks that were done using Oracle Forms to perform under a web interface.  Sounds good so far.</p>
<p>One of the forms invokes some tens of thousands of lines of SQL code on the backend touching a large number of tables and invoking a good number of stored procedures.  In order to automate this someone on the web team has to understand all that code.  Again, from a programmers point of view, doable &#8211; might take a while.</p>
<p>Ok, now how to explain the size, scale of the problem to someone who knows nothing about programming?</p>
<p>I threw out the idea of going to the library, reading a novel that was several hundred pages long and having to understand exactly what happens to every character portrayed in chronological order.</p>
<p>Thinking about that later I wonder if I was very far off:</p>
<ul>
<li> A typical page of a novel has 50-60 lines which equates to several hundred pages.</li>
<li>A line of SQL does not correspond well to a line in a novel, but given the power of the syntax it may have as much meaning</li>
<li>The chronological importance is important in both cases, more so for the SQL.</li>
</ul>
<p>Maybe it&#8217;s not such a bad analogy to use.  Maybe even the PHB might get it:)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2011/09/21/how-to-describe-size-scale-to-non-techs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Small Companies</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2011/01/02/small-companies/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2011/01/02/small-companies/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 04:22:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Job Hunt]]></category>
		<category><![CDATA[Software Development Process]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/?p=170</guid>
		<description><![CDATA[Interviewed at a small company.  They have a hold on a market niche for the last n years.  They have mostly been together for the last n years.  The prototypical lifestyle company.
Now one of their own is leaving.  All of that assumed understanding over the years is showing up as a lack of communication and [...]]]></description>
			<content:encoded><![CDATA[<p>Interviewed at a small company.  They have a hold on a market niche for the last n years.  They have mostly been together for the last n years.  The prototypical lifestyle company.</p>
<p>Now one of their own is leaving.  All of that assumed understanding over the years is showing up as a lack of communication and follow-through.  The developer leaving has been off the range for years:</p>
<ul>
<li>home grown web service &#8211; doesn&#8217;t like SOAP</li>
<li>obscure database &#8211; has a neato auto-maintenance feature, but nothing else</li>
<li>no ORM &#8211; it works much faster without it.  developed his own higher-level constructs like Expression builders.</li>
<li>really extensive app server &#8211; but there are just customers, orders, etc&#8230; in there.  what is all this code doing?</li>
<li>ignored the selling product &#8211; it uses MySQL, how yucky.  it&#8217;s mostly a Swing app, how uncouth.</li>
</ul>
<p>Worst of all management had no idea what this guy was doing.  When they asked about interfacing some 3rd party app &#8211; he said sure, and started coding something homegrown.  When they asked about integrating the selling product &#8211; he said sure, and started coding the next homegrown section.  Piece after piece after piece.</p>
<p>What a nightmare.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2011/01/02/small-companies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing Code</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2010/12/13/visualizing-code/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2010/12/13/visualizing-code/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 17:59:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Software Development Process]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/?p=162</guid>
		<description><![CDATA[A long-term client contacted me about a couple issues with their  site.  Very common place coding should have been done correctly with my  eyes closed &#8211; download document (from PHP) and authorize.net recurring payments.
I  dreamed up all kinds of reasons that the issues existed.  This has  usually been helpful in the [...]]]></description>
			<content:encoded><![CDATA[<p>A long-term client contacted me about a couple issues with their  site.  Very common place coding should have been done correctly with my  eyes closed &#8211; download document (from PHP) and authorize.net recurring payments.</p>
<p>I  dreamed up all kinds of reasons that the issues existed.  This has  usually been helpful in the past &#8211; try to come up with different  scenarios before looking at code.  Try to visualize what the code is  doing.  Got trained to do that somewhere along the line.</p>
<p>Once I looked at the code it was just wrong.  There was test  coding around the edges that hadn&#8217;t been removed.  Fixes in place in 10  minutes versus time wasted visualizing.</p>
<p>Maybe I would be better off jumping into code asap?</p>
<p>Similar  story with another client.  Should be mostly a re-skinning project.   Mind-numbing change 1000 references to widget x to widget y.  Estimates  given are based on common practice &#8211; how would someone normally code  such a thing?  what kinds of re-use would be involved?  how to account  for configuration changes?  Again, the visualization thing.  Finally  look into the code and your head explodes.</p>
<p>I should know better.  I  have been programming for a long time.  I think people generally do a  good job but pressures are always in place to get it done faster.  Hence  the name of this blog (See <a href="http://www.dantoomeysoftware.com/pencils-down/about/">About</a>).</p>
<p>What is your approach?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2010/12/13/visualizing-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Evaluate Open Source Software</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2010/10/18/how-to-evaluate-open-source-software/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2010/10/18/how-to-evaluate-open-source-software/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 11:23:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Business Practice]]></category>
		<category><![CDATA[Practice]]></category>
		<category><![CDATA[Software Development Process]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/?p=146</guid>
		<description><![CDATA[I think we have all evaluated a proprietary product, whether it&#8217;s something from Microsoft or a company you never heard of, but has the product you need.  The basic idea is to reduce risk.

How long in business? profitable?
How popular is the product?
Size of company?
Release schedule?
Bugs/issues?  How quickly resolved?

But in these times it is likely that [...]]]></description>
			<content:encoded><![CDATA[<p>I think we have all evaluated a proprietary product, whether it&#8217;s something from Microsoft or a company you never heard of, but has the product you need.  The basic idea is to reduce risk.</p>
<ul>
<li>How long in business? profitable?</li>
<li>How popular is the product?</li>
<li>Size of company?</li>
<li>Release schedule?</li>
<li>Bugs/issues?  How quickly resolved?</li>
</ul>
<p>But in these times it is likely that an open-sourced product does what you need.  There are likely even several versions from different vendors available.  Some vendors very large and well known, others one-man shows.  You search on google for the product and get 500,000 hits.  What do you do now?</p>
<p>The idea is still to eliminate risk.  I think you have different concerns though:</p>
<ul>
<li>How long in business? profitable? &#8211; don&#8217;t really care.  there are plenty of people out there working in this solution, you have the source, you can get someone else to fix it.</li>
<li>How popular is the product? &#8211; probably not an issue.  yes, this particular vendors implementation varies, but quite a number of people have experience working on this</li>
<li>Size of company? &#8211; a question of long-term ability.  again, there are quite a number of other people out there who can help</li>
<li>Release schedule? &#8211; it would be great if you saw a steady stream of development, but this is unlikely.  the spec defining the open-source tool has probably been around for a while and there really shouldn&#8217;t be much of a need for updates</li>
<li>Bugs/issues?  How quickly resolved? &#8211; probably when first released there was some furious coding, but after a while it should be stabilized</li>
</ul>
<p>So, how do you do this?</p>
<p>I think you can look at it like hiring a remote contractor:  You need someone to help out with implementing a well-known solution and want them really to go away afterward.  Maybe call them once in a while if you turn on some other feature in your product and don&#8217;t remember what steps are needed.</p>
<p>As such, some concerns you want to know:</p>
<ul>
<li>Responsiveness</li>
<li>Experience in the area</li>
<li>How much other (not in the product you care about) work do they have?</li>
<li>Any skills matching up to your developers (Java, C#, database, etc&#8230;)?</li>
<li>Are they using the open-source code in a retail product they are selling?  Self-interest is always the best motivator</li>
</ul>
<p>How do you evaluate open source software?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2010/10/18/how-to-evaluate-open-source-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing Resources, Time and/or Features</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2010/09/07/changing-resources-time-andor-features/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2010/09/07/changing-resources-time-andor-features/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 11:50:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[Software Development Process]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/?p=139</guid>
		<description><![CDATA[We have all been on projects where management decides to change resources, time and/or features of an ongoing project.  The old chestnut used to be these are the 3 things you have control over, pick 1.
Thinking about this I looked at what would need to happen if we changed one variable:

If you reduced Resources then [...]]]></description>
			<content:encoded><![CDATA[<p>We have all been on projects where management decides to change resources, time and/or features of an ongoing project.  The old chestnut used to be these are the 3 things you have control over, pick 1.</p>
<p>Thinking about this I looked at what would need to happen if we changed one variable:</p>
<ul>
<li>If you reduced Resources then you would need more Time or less Features</li>
<li>If you reduced Time then you would need more Resources or less Features</li>
<li>If you increased Features then you would need more Time or more Resources</li>
</ul>
<p>But thinking about this, changes in Resources usually make no difference in the short term.  Adding another developer does very little until the developer comes up to speed.  Depending on their expertise this can take a while.  So, what if we treated Resources as a constant?</p>
<p>We end up with a relationship like: Resources = Features over Time (R = F/T).  Sounds really pretty nice.  Kind of makes sense.  Can be looked at as a productivity measures, quality measure, etc&#8230; as well.  Again you don&#8217;t expect the productivity of your team or their quality level to change much in the short term.  Walking through the cases above we get relationships to still work.</p>
<p>I think this is a nice clear mathematical argument even the most demanding manager can understand.  Oh, you want to increase Features this late in the project.  That means we need more Time &#8211; see here&#8230;  Yes, we can increase our productivity, but not in the short term (phase) of this project.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2010/09/07/changing-resources-time-andor-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Failure Rates</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2009/01/12/failure-rates/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2009/01/12/failure-rates/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 15:24:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Software Development Process]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2009/01/12/failure-rates/</guid>
		<description><![CDATA[We bought a Sony World Tour game for someone this Christmas.  This is one of the most popular games this past season.  Typical out of stock problems for a popular seasonal item.
It never worked.  Tried replacing various components about 6 times.  Finally returned the whole thing to the store.
At the store one of the clerks [...]]]></description>
			<content:encoded><![CDATA[<p>We bought a Sony World Tour game for someone this Christmas.  This is one of the most popular games this past season.  Typical out of stock problems for a popular seasonal item.</p>
<p>It never worked.  Tried replacing various components about 6 times.  Finally returned the whole thing to the store.</p>
<p>At the store one of the clerks mentioned, &#8220;Oh, yeah.  Those don&#8217;t work a lot.  Be thankful you didn&#8217;t buy an XBOX.&#8221;</p>
<p>This prompted my curiosity, &#8220;What do you mean?&#8221;</p>
<p>The clerk said, &#8220;Oh, the XBOX&#8217;s fail about 75% of the time&#8221;.</p>
<p>Being in software I was a little flabbergasted.  &#8220;How can that be?  These are extremely popular items; that YOU sell.&#8221;</p>
<p>&#8220;I just work here.&#8221;  Realized he had revealed too much and proceeded to hush up for the rest of the transaction.</p>
<p>Being in commercial software I have lived through the horrors of bugs in software that persist well past the FCS date.  Some of these can be fatal, most are doggedly consistent errors in logic that just mess things up.</p>
<p>Maybe I am being stuck up, but the game software DOES NOT START!  This is not even close to an FCS quality level.</p>
<p>Do game software writers not work in the same realm as the rest of their brethren?  Are they immune from the QA/QC police?  Management/marketing breathing over your shoulders about typos and nits they found over the weekend?  Heaven forbid your application does not start, boot, begin correctly for them in whatever strange configuration they manage in their household.</p>
<p>The more you think you understand something the less you actually know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2009/01/12/failure-rates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why do New things break Old things?</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2008/11/05/why-do-new-things-break-old-things/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2008/11/05/why-do-new-things-break-old-things/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 15:21:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Software Development Process]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2008/11/05/why-do-new-things-break-old-things/</guid>
		<description><![CDATA[For one of my clients a certain feature was broken that had been working fine for months.  My initial reaction was that the front-end changed.  Upon testing I tracked it down to a session variable no longer being set during login.  It turns out in the conversion from username/password to SSO a number of session [...]]]></description>
			<content:encoded><![CDATA[<p>For one of my clients a certain feature was broken that had been working fine for months.  My initial reaction was that the front-end changed.  Upon testing I tracked it down to a session variable no longer being set during login.  It turns out in the conversion from username/password to SSO a number of session variables were no longer being set.</p>
<p>For another situation a database job that had been running for some time on the first of the month apparently stopped working.  Upon investigation, the job had been completely removed from the system.  This was done when another client&#8217;s data was moved onto the database server.</p>
<p>In both cases New things, that are good ideas, were implemented in such a slipshod manner that existing, functional aspects were trashed.</p>
<p>Thinking about this some it seems like this is a very common occurrence: the developer of the New thing has the priority of getting the New thing done.  Old things take a distant second in anyones mind &#8211; developer, pm, client &#8211; anyone.</p>
<p>I know you can use a regression test suite to verify you didn&#8217;t break something, but this is an afterthought.  It is not in the developer&#8217;s frame of mind to determine what else might be affected by the New thing.  From my own experience if you happen to think of side effects you get looked at with squinted eye, not a team player, naysayer, problem child.</p>
<p>Further, fixing the broken Old thing after the fact is also looked at as a good thing.  &#8220;Yes, we fixed the Old thing.  It turns out the New thing broke it.&#8221;  Everyone is <em>happy</em> that the Old thing got fixed.  No one asks why this wasn&#8217;t discovered beforehand.</p>
<p>You can see this on software developer web sites.  Everyone can develop something New for you.  Or even more interesting they can debug your code or evaluate your system performance.  No one is advertising they will maintain your current system.  System maintenance is not valued.</p>
<p>Maybe this is just a trickle-down of the quarterly hockey stick affect working into how things get coded.  Imagine that, developers modeling their behavior after sales people.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2008/11/05/why-do-new-things-break-old-things/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

