<?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; process</title>
	<atom:link href="http://wallofscribbles.com/tag/process/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>Scope Creep: or What makes project leads cry?</title>
		<link>http://wallofscribbles.com/2008/scope-creep/</link>
		<comments>http://wallofscribbles.com/2008/scope-creep/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 04:05:02 +0000</pubDate>
		<dc:creator>Corey Dutson</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[creep]]></category>
		<category><![CDATA[good-practices]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[scope]]></category>
		<category><![CDATA[scope creep]]></category>

		<guid isPermaLink="false">http://www.wallofscribbles.com/2008/03/13/scope-creep/</guid>
		<description><![CDATA[I despise <a href="http://en.wikipedia.org/wiki/Functionality_creep" title="Wikipedia: Scope Creep" target="_blank">scope creep</a> with every part of my being. To me, scope creep is comparable to nails on a chalk board, or having my hand slammed in a door <a href="http://www.youtube.com/watch?v=r41U_T7pQjQ" title="Weird Al: One More Minute (specifically at 2:35)" target="_blank">again and again and again</a>. It is the ruiner of projects, products, and I'm sure I could find some way to tie it into how Rock and/or Roll music is obviously ruining society. It takes what would in most cases be a solid project, a solid time line, and solid analysis, and tosses them all to the winds.

<em>A quick, simple, and generalized definition: Scope Creep is when someone (yourself or otherwise) adds new functionality, features, or other additions while still expecting your project/product/whatever to still be due by the same time.</em>]]></description>
			<content:encoded><![CDATA[<h3>What to do when your superior wants everything, in addition to the kitchen sink</h3>

<a href="http://wallofscribbles.com/gallery/Misc. Images/And the Kitchen Sink.jpg" title="" class="thickbox" rel="singlepic548" >
	<img class="ngg-singlepic" src="http://wallofscribbles.com/gallery/cache/548__430x300_And the Kitchen Sink.jpg" alt="And the Kitchen Sink.jpg" title="And the Kitchen Sink.jpg" />
</a>

<p>I would love for the simple answer to be to say &#8220;No.&#8221; To stand up for your project plan and combat the forces of evil that are working tirelessly to ruin your brain-child. Unfortunately saying no generally lands you in the dog house with your superior, or fired and replaced with someone who may or may not be your better.</p>
<p>Many of us know that taking the direct approach will generally land us in the unemployment line, and so people generally tend to do nothing. I&#8217;m not saying it doesn&#8217;t work, but I can say that you have to be on very good terms with whoever you are dealing with if you want to pull a stunt like this. For the record: clients like this even less than bosses, so you can easily swap the two. If the client drops you because of your nay nay attitude, you could still end up in the unemployment line making my visual just as real.</p>
<h3>So what can you do?</h3>
<h4>Talk it through</h4>
<p>You can always try and talk them out of it, or at the very least discuss the validity of adding their new bauble to the project at all, let alone so late into it. This option is usually attempted in the &#8220;last-ditch&#8221; phase of everything, which is a shame because that is when it is least useful. Try this tactic first if only for the fact that it poses the least amount of backlash. The ensuing discussion could actually lead to different approaches or insights that may actually help you with the newest addition, or even another part of your project. You may end up doing it, but at least everyone knows where they stand.</p>
<h4>Bargain.</h4>
<p>This doesn&#8217;t always work, but it is generally worth a shot. The most painless and the easiest to approach, try bargaining with your client/boss to see if you can avoid their addition, or add it to a later release. I suggest the latter because if the suggestion isn&#8217;t utterly retarded, then you have a goal for the next release which will make everyone happy. If, however, it is bat-shit insane to add then try and talk them down from their idea.</p>
<p></p>
<h4>Make sure the request isn&#8217;t documented anywhere, and other devious things</h4>
<p>This way you can &#8220;forget&#8221; either willingly or by taking advantage of your piss-poor memory. I don&#8217;t personally suggest this because unless your cliboss (made it up, and I&#8217;m going with it) shares your goldfish memory, they&#8217;ll probably neglect to mention it until you think you&#8217;ve gotten away with your scheme, and now you&#8217;re stuck doing the late shift. This will also probably make you look like an idiot, and send you down on the foodchain. From what I have seen, experienced, and otherwise know, I can honestly say that subterfuge works the least in almost any professional situation.Unless you&#8217;re a professional con-man, you&#8217;re probably going to be seen right through. Save yourself the agony and try a more legitimate approach.</p>
<h4>Suck it up buttercup</h4>
<p>You could of course do the work. This is an option, and one that many people are stuck doing. Sometimes you can&#8217;t get out of it, and it will hurt you inside every time. This is doubly so if it is legitimately your fault. If you missed something in your <a href="/2008/02/14/respect-the-process-damnit/" title="Respect the Process, Damnit" target="_blank">analysis phase</a>, it makes you feel more like a moron when you&#8217;re burning that midnight oil to meet your cliboss&#8217; (still using it) expectations. An easy way to help avoid this is to make sure you do a solid and thorough job on your information gathering and analysis. Make sure you involve the required parties to actually cover the angles needed. This won&#8217;t stop scope creep every time, but at the very least you can be safe and sure that it is not of your doing. Bitterness is better when it&#8217;s not directed at yourself.</p>
<h4>Stick with &#8220;No&#8221;</h4>
<p>If none of those work, you can still say <strong>no</strong>. The only way this can work is to back up your negativity with solid proof that by including <em>feature X </em>into your doodad, you will not be able to hit the deadline. You&#8217;ll generally need to back this up with graphs, numbers, and strong reasons as to why it can&#8217;t be done. You&#8217;ll still get the skunk eye, but at least you can feel better knowing that you can back up your stance with information to support you. This also has the added bonus of making sure that someone in charge is informed, which takes much of the responsibility out of your hands. Granted this may not add up to doing anything more than wasting time, because some times the addition just <em>has </em>to be in there. It sucks, but sometimes you&#8217;re boned either way.</p>
<p>Sometimes you&#8217;ll end up getting screwed over and end up working late or whatever you need to do to get the job done. It&#8217;s not really avoidable in ever scenario. You can limit how often it happens though. The best way is to make sure you&#8217;ve covered your bases throughout the entire process with sign-offs and cliboss interaction. The more they are involved from the start the more personal responsibility they will feel, and the more information you can work with from the get go.</p>
]]></content:encoded>
			<wfw:commentRss>http://wallofscribbles.com/2008/scope-creep/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<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>

