<?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>WallOfScribbles &#187; diagrams</title>
	<atom:link href="http://wallofscribbles.com/tag/diagrams/feed/" rel="self" type="application/rss+xml" />
	<link>http://wallofscribbles.com</link>
	<description>The ramblings of a man</description>
	<lastBuildDate>Sat, 07 Jan 2012 01:14:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Respect the Process, Damnit</title>
		<link>http://wallofscribbles.com/2008/respect-the-process-damnit/</link>
		<comments>http://wallofscribbles.com/2008/respect-the-process-damnit/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 05:15:00 +0000</pubDate>
		<dc:creator>Corey Dutson</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[diagrams]]></category>
		<category><![CDATA[functional specifications]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.wallofscribbles.com/2008/02/14/respect-the-process-damnit/</guid>
		<description><![CDATA[I went to college.

Shocking, I know. I did though, and on the lovely diploma that I earned and gently stuffed in a drawer somewhere it says that I am both a computer programmer and a systems analyst. What that means is not only am I  (supposedly) competent at coding solutions, I am also (apparently) competent at looking at a system and figuring out how things should work.

I always chuckled in my Analysis classes. "Come on, this is all common sense!" I would proclaim. I took what the teacher said for a grain of salt and left it at that.]]></description>
			<content:encoded><![CDATA[
<a href="http://wallofscribbles.com/gallery/Misc. Images/Process.jpg" title="" class="thickbox" rel="singlepic537" >
	<img class="ngg-singlepic" src="http://wallofscribbles.com/gallery/cache/537__420x200_Process.jpg" alt="Process.jpg" title="Process.jpg" />
</a>

<p>Fast forward to my current job. I can assure you that there are a plethora of examples that I could choose from for the point I will be making here, but one strikes me as perfect. You see when we developers started there things were volatile, unstructured, and pretty much a mess. My now fellow programmers and myself were hired in the wake of a collection of other developers leaving for one reason or another. We were also thrust into a project pretty much from the moment we sat in our chairs.</p>
<p>This was all fine and good, and we build what we thought we were <em>supposed </em>to build. Three days before we showed it to the client, we went through a run-through with the manager, only to find out that what we built was not what the client wanted. Well okay parts of it were, but for the most part it was off the mark. The result was months of us working grueling hours of overtime, wherein time became an abstract concept and my world knew nothing but code.</p>
<p>What the hell happened?</p>
<h3>We didn&#8217;t have a process.</h3>
<p>We built what we were told to build at the start, but things changed. The functional spec. was updated and we were never told. On the flip side, we also never went looking. Communication was sub-par at best, and the short of it is that there was enough blame for everyone.</p>
<p>We thought we had a process, but the debacle that we ran headlong into demonstrated that whatever process was in place either wasn&#8217;t working or was never initiated. The result was everything blowing up in our face. As it turns out, if you do not learn from this mistake, it will happen again and again. I could pull from more examples, but I&#8217;ll refrain&#8230; sort of.<br />
<br />
I am on a new project, in fact I am the lead developer of said project. It&#8217;s my first time doing this and I&#8217;ll admit that it is a daunting task, but I set about doing my best. I was given a functional specification, which I thought odd because I&#8217;m pretty sure I&#8217;m the one that&#8217;s supposed to build that. I was told to add my section to it and that was that. I did so, to the best of my ability, with the information I had available to me.</p>
<p>It was okayed, and I started handing out tasks and the development cycle began.</p>
<p>Then I was told that the way things were supposed to work wouldn&#8217;t work that way anymore. This was after we had built stuff. This is generally a bad design move, because now any development that was already done now has to be reviewed and possibly scrapped. I updated the spec. again, and away we went. Then I realized that something wasn&#8217;t covered with the information I was given, so I asked a question. One question, I swear to God I only asked one but what was the end result? Another overhaul. Another attempt at the functional spec.</p>
<p>This has happened a  couple times, and is not how the process should work. In a perfect world, the functional spec. is completely done before a line of code is written. The world is not perfect of course, and we have to make do with what we got, but damnit, I wasn&#8217;t about to go and take another stab at anything only to have it change on me again. So I went back to my college roots, and I made a decision:</p>
<h3>I will make the process work again.</h3>
<p>How can I do that though, when everything has apparently been thrown to the wind? It&#8217;s easier than I thought&#8230; well sort of. It still requires effort, but I&#8217;d rather expend the effort where I did fixing the process then rebuilding anything three times.</p>
<p>I sat down with my other main developer, and we went through <em>everything</em>. We went through every aspect of the functional spec, screen designs, and data sources, and figured out how it all works. We asked all the &#8216;hows&#8217; and &#8216;what ifs&#8217; as well as all of the &#8216;what the hells&#8217; that subsequently came up. We went through every resource, created or not, and decided what was needed, what information had to be stored, etc.. We created use cases for the complex cases, and walked through more processes then I would care to count.</p>
<p>The end result? I spent <em>ten hours</em> (minimum) in a board room with a print-enabled white board and wrote everything down. I&#8217;m pretty sure we have at least 15 printouts of notes and questions and diagrams and use cases which helped clear up the utter ambiguity that surrounded the project. They get it now, and so do I. It&#8217;s no longer a matter of &#8220;how does this work?&#8221; but a matter of &#8220;what&#8217;s the next task?&#8221; Yes I have to update the functional spec. again, but at least now I know what to add, and where. The document is finally useful, and the project is understood. The process exists once again.</p>
<p>I&#8217;ve also taken it upon myself to write all of those tasks down in a shared location, so that whoever is on the project can take on new tasks as the run out of their assigned ones. That way no one has the excuse for not knowing what is next.</p>
<p>So yes we lost a day of development, but we have saved ourselves days of effort of unneeded rebuild time. Do it right the first time, and you&#8217;ll save time later.</p>
<p>On a side note, Sorry Mr. Miller turns out you were write all along about Analysis. My Bad.</p>
]]></content:encoded>
			<wfw:commentRss>http://wallofscribbles.com/2008/respect-the-process-damnit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

