<?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>Just Enough Technology &#187; Process (SDLC)</title>
	<atom:link href="http://justenoughtechnology.com/topics/sdlc/feed/" rel="self" type="application/rss+xml" />
	<link>http://justenoughtechnology.com</link>
	<description>The passion to see business leverage technology both powerfully and economically</description>
	<lastBuildDate>Thu, 20 May 2010 00:18:00 +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>Why Just Enough Technology?</title>
		<link>http://justenoughtechnology.com/why-just-enough-technology/</link>
		<comments>http://justenoughtechnology.com/why-just-enough-technology/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 01:35:42 +0000</pubDate>
		<dc:creator>Dave Ranck</dc:creator>
				<category><![CDATA[Architecture and Design]]></category>
		<category><![CDATA[Business and Technology]]></category>
		<category><![CDATA[Process (SDLC)]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Project Success]]></category>

		<guid isPermaLink="false">http://justenoughtechnology.com/?p=149</guid>
		<description><![CDATA[Just Enough Technology means providing the right technology to solve the right problem at the right cost. Not too much, not too little. The objectives of the business must be prioritized and kept in mind from concept to design to implementation to maintenance. Every decision made along the way must map to a business objective. [...]


Related posts:<ol><li><a href='http://justenoughtechnology.com/test-pm/' rel='bookmark' title='Permanent Link: A Programmer&#8217;s Bill of Rights?'>A Programmer&#8217;s Bill of Rights?</a></li>
<li><a href='http://justenoughtechnology.com/choosing-between-java-and-net/' rel='bookmark' title='Permanent Link: Choosing Between Java and .Net'>Choosing Between Java and .Net</a></li>
<li><a href='http://justenoughtechnology.com/why-do-we-need-software-architects/' rel='bookmark' title='Permanent Link: Why Do We Need Software Architects?'>Why Do We Need Software Architects?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<blockquote><p>Just Enough Technology means providing the right technology to solve the right problem at the right cost. Not too much, not too little. The objectives of the business must be prioritized and kept in mind from concept to design to implementation to maintenance. Every decision made along the way must map to a business objective. Every software requirement must map to a business objective. This is the foundation of Just Enough Technology – clear and concise business objectives. Those objectives drive the requirements, and the requirements drive the design and implementation.</p>
</blockquote>
<p>This is how I ended a short article about Just Enough Technology a while back. I’ve reproduced here for your reading pleasure. Differing opinions are invited <img src='http://justenoughtechnology.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p> <span id="more-149"></span>I’ve worked with many Fortune 500 and 100 clients, as well as small and mid-size companies. While there are many differences between the big guys and the smaller guys, they share one thing in common: the bottom line is their bottom line. Any business is in business ultimately to do one thing: make a profit. True, there are other drivers that individual companies may have, whether it is being a market leader or providing a service for the betterment of humanity. No business can stay in business unless they achieve a positive bottom line. I’m sure everyone understands this basic truth and yet, when it comes to creating, purchasing and maintaining software and perhaps to a lesser extent, hardware, this principle is often left by the wayside. One case in point I’m reminded of was a project for a national company (a household name you would recognize). This company undertook an integration project several years ago and engaged a large consulting firm to create a design and to do the implementation. The project began and the company spent over $20M over a period of perhaps one year. During this time, the company’s major web site was having daily stability issues and was going down frequently. No code was yet written to address these pressing problems. After a year, the only artifact from the project was a mountain of documentation, which included an architectural design. I was brought in to analyze the technical issues with the web site and servers, which I did in about 1 week of effort. At the end of the week, I produced an 18 point recommendation which included a rewrite of the application. Shortly thereafter, I was retained to lead the rebuilding effort and was shown the design that had been produced by the previous $20M effort. Frankly I was shocked. First of all, it was extremely complicated and over-architected and used bleeding edge (for then) technologies that no one at the company knew how to use. Second, the effort the design&#160; must have actually taken was minuscule compared to the mountain of paper it took to produce. I could not believe that they had spent such a large sum of money (lost profit) on what amounted to nothing. Had they implemented the design, it would have been a failure. It would likely have had serious performance issues.. We put a team together consisting of consultants from various firms and paired with employees, and produced our own design. We concentrated on solving the business problem in an efficient manner using technology the company could maintain once the development team was gone. The first thing we did was to shore up the current application so they could function properly. Only then did we begin work on the redesign. The project was completed – design and implementation &#8211; in much less than one year, with 1/4 of the price tag of the previous effort. The project was a great success and remained in production until it was upgraded to new technology. I can’t say who the client was, but if you are an IT professional, it is likely you have used the product at one time or another. That story illustrates the need for Just Enough Technology. <strong>Technology should drive business, it should enable business</strong>. Technology can provide savings or it can provide opportunities that would be difficult to take advantage of without it. That is, if it is used appropriately. When misused it can become an enormous profit-sink that consumes vast amounts of money with little to show for the cost and effort. Software can’t be seen or touched and it can be difficult to appraise a project’s real value or its real cost. Well-meaning tech-types convince business people that they need “the latest and greatest” or bad things will happen. To be fair, most of time I do think their intentions are good, but the truth is the average software architect or developer doesn’t know a thing about the bottom line. They know what is best in a pure sense, but they struggle with what is Good Enough. Since technology seems like witchcraft to many business people, they are hard-pressed to make decisions about how much is too much in regard to software and technology. The outcome many times is overspending and under-delivering. The wrong problem is solved and it is solved in a highly complex manner. Just Enough Technology means providing the right technology to solve the right problem at the right cost. Not too much, not too little. The objectives of the business must be prioritized and kept in mind from concept to design to implementation to maintenance. Every decision made along the way must map to a business objective. Every software requirement must map to a business objective. This is the foundation of Just Enough Technology – clear and concise business objectives. Those objectives drive the requirements, and the requirements drive the design and implementation. Too often this process is short-circuited and a company jumps right to design, resulting in an application that does not provide maximum benefit and probably is over-priced for the needs of the business.
<div class="bjtags"><a href="http://technorati.com/tag/CBA" rel="tag"></a></div>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d4b15b0b-74ad-4476-9688-6add0c0b19cc" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Project" rel="tag">Project</a>,<a href="http://technorati.com/tags/CBA" rel="tag">CBA</a>,<a href="http://technorati.com/tags/ROI" rel="tag">ROI</a>,<a href="http://technorati.com/tags/TCO" rel="tag">TCO</a>,<a href="http://technorati.com/tags/Ranck" rel="tag">Ranck</a></div>


<p>Related posts:<ol><li><a href='http://justenoughtechnology.com/test-pm/' rel='bookmark' title='Permanent Link: A Programmer&#8217;s Bill of Rights?'>A Programmer&#8217;s Bill of Rights?</a></li>
<li><a href='http://justenoughtechnology.com/choosing-between-java-and-net/' rel='bookmark' title='Permanent Link: Choosing Between Java and .Net'>Choosing Between Java and .Net</a></li>
<li><a href='http://justenoughtechnology.com/why-do-we-need-software-architects/' rel='bookmark' title='Permanent Link: Why Do We Need Software Architects?'>Why Do We Need Software Architects?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://justenoughtechnology.com/why-just-enough-technology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Software Engineering Dead?</title>
		<link>http://justenoughtechnology.com/test-dev/</link>
		<comments>http://justenoughtechnology.com/test-dev/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 19:23:35 +0000</pubDate>
		<dc:creator>Dave Ranck</dc:creator>
				<category><![CDATA[Architecture and Design]]></category>
		<category><![CDATA[Business and Technology]]></category>
		<category><![CDATA[Process (SDLC)]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://justenoughtechnology.com/?p=56</guid>
		<description><![CDATA[A new article by Tom Demarco states: I’m gradually coming to the conclusion that software engineering is an idea whose time has come and gone. I still believe it makes excellent sense to engineer software. But that isn’t exactly what software engineering has come to mean.


Related posts:<ol><li><a href='http://justenoughtechnology.com/craftsmanship-and-software-development/' rel='bookmark' title='Permanent Link: Craftsmanship and Software Development'>Craftsmanship and Software Development</a></li>
<li><a href='http://justenoughtechnology.com/why-do-we-need-software-architects/' rel='bookmark' title='Permanent Link: Why Do We Need Software Architects?'>Why Do We Need Software Architects?</a></li>
<li><a href='http://justenoughtechnology.com/using-rational-xde-with-visual-studio-net/' rel='bookmark' title='Permanent Link: Using Rational XDE with Visual Studio .Net'>Using Rational XDE with Visual Studio .Net</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A new article by Tom Demarco states: I’m gradually coming to the conclusion that software engineering is an idea whose time has come and gone. I still believe it makes excellent sense to engineer software. But that isn’t exactly what software engineering has come to mean.<span id="more-56"></span></p>
<p>When I first read this article I was taken aback. As I thought about it, I think I agree for the most part anyway. I found the article on <a href="http://www.codinghorror.com/blog/archives/001288.html" target="_blank">Coding Horror</a> and his thoughts about it as well.</p>
<p>One of the guys that I work with had the following well though out comments:</p>
<blockquote><p>I like how they use the term &#8220;Craftsman&#8221; to describe what we do.  It actually makes me think, if I were a knight getting ready to invade some castle in the dark ages, would I buy armor from an &#8220;Engineer&#8221; or a &#8220;Craftsman&#8221;?  Sure I would expect it to have been designed at some point by an engineer, but designs are re-usable.  I would think that occasionally someone would come back from wearing a similar, earlier design with specific flaws and maybe have things re-designed by engineers, and those tweaks perfected through practice and applied to other designs.  When it comes down to it, those designs and tweaks become patterns and practices.  I want my plate folded and shaped by a craftsman who knows those things, but more importantly, how to work with the tools and the different types of metal.  One who&#8217;s reputation, and thus livelihood, hinged not on how sound a design it was but rather on how well it was executed.  One who is meticulous and makes sure no impurities make their way to the critical pieces, making them prone to shatter or crack.</p>
<p>I don&#8217;t believe &#8220;Software Engineering&#8221; is dead, but I wouldn&#8217;t want to buy a piece of software from a shop full of them.  In theory, they might solve every aspect of the design perfectly, but in reality, it would only work perfect in IE 5.5.3216 running Java 3.2.439.  Data integrity might be protected, but how about the user experience.  The ones I want writing software for me are the ones that take pride in the experience their software provides and make sure its practical and usable.  The ones who have taken the time to master the tools that have been made available to them to assist in their craft.</p>
<p>You get the idea.</p>
<p>~Jeff</p></blockquote>
<p><a href="http://www2.computer.org/cms/Computer.org/ComputingNow/homepage/2009/0709/rW_SO_Viewpoints.pdf" target="_blank">Tom Demarco&#8217;s article is here</a></p>


<p>Related posts:<ol><li><a href='http://justenoughtechnology.com/craftsmanship-and-software-development/' rel='bookmark' title='Permanent Link: Craftsmanship and Software Development'>Craftsmanship and Software Development</a></li>
<li><a href='http://justenoughtechnology.com/why-do-we-need-software-architects/' rel='bookmark' title='Permanent Link: Why Do We Need Software Architects?'>Why Do We Need Software Architects?</a></li>
<li><a href='http://justenoughtechnology.com/using-rational-xde-with-visual-studio-net/' rel='bookmark' title='Permanent Link: Using Rational XDE with Visual Studio .Net'>Using Rational XDE with Visual Studio .Net</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://justenoughtechnology.com/test-dev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Do We Need Software Architects?</title>
		<link>http://justenoughtechnology.com/why-do-we-need-software-architects/</link>
		<comments>http://justenoughtechnology.com/why-do-we-need-software-architects/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 10:07:47 +0000</pubDate>
		<dc:creator>Dave Ranck</dc:creator>
				<category><![CDATA[Architecture and Design]]></category>
		<category><![CDATA[Business and Technology]]></category>
		<category><![CDATA[Process (SDLC)]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://justenoughtechnology.com/?p=109</guid>
		<description><![CDATA[Another Blast From The Past Article &#8211; Originally Published in Sept. 2003

I am a software architect, but I&#8217;m not a &#8220;Blue Sky&#8221; thinker; I&#8217;m more of a practical thinker.  I asked myself some questions about architects. What is a Software Architect and why do we need them? What do we expect from architects and why [...]


Related posts:<ol><li><a href='http://justenoughtechnology.com/why-just-enough-technology/' rel='bookmark' title='Permanent Link: Why Just Enough Technology?'>Why Just Enough Technology?</a></li>
<li><a href='http://justenoughtechnology.com/using-rational-xde-with-visual-studio-net/' rel='bookmark' title='Permanent Link: Using Rational XDE with Visual Studio .Net'>Using Rational XDE with Visual Studio .Net</a></li>
<li><a href='http://justenoughtechnology.com/craftsmanship-and-software-development/' rel='bookmark' title='Permanent Link: Craftsmanship and Software Development'>Craftsmanship and Software Development</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><em>Another Blast From The Past Article &#8211; Originally Published in Sept. 2003<br />
</em></p>
<p>I am a <a title="Software architect - Wikipedia, the free encyclopedia" rel="nofollow" href="http://en.wikipedia.org/wiki/Software_architect" target="_blank">software architect</a>, but I&#8217;m not a &#8220;Blue Sky&#8221; thinker; I&#8217;m more of a practical thinker.  I asked myself some questions about architects. What is a Software Architect and why do we need them? What do we expect from architects and why not just have a tech lead? Is there real benefit in an architect and are some projects too small for an architect? If so, what qualifies a project as needing an architect?<span id="more-109"></span></p>
<p>I believe and practice iterative development techniques and <a title="Agile software development - Wikipedia, the free encyclopedia" rel="nofollow" href="http://en.wikipedia.org/wiki/Agile_software_development" target="_blank">agile methodologies</a>. What I have found, is that even in the agile world, a strong architect can make a project and the lack of architecture (or more properly &#8211; architecting) can foil a project&#8217;s success. Martin Fowler has written an excellent treatise on Software Architects &#8211; <a href="http://web.archive.org/web/20040119124902/http:/martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf" target="_blank"><strong>Who Needs an Architect?</strong></a> (pdf).</p>
<p>In it, he states:</p>
<p><strong><em>Architectus Reloadus</em></strong><em> is the person who makes all the important decisions. The architect does this because a single mind is needed to ensure a system’s conceptual integrity, and perhaps because the architect doesn’t think that the team members are sufficiently skilled to make those decisions. Often, such decisions must be made early on so that everyone else has a plan to follow. </em><em></em></p>
<p><em><strong>Architectus Oryzus</strong><em> is a different kind of animal (if you can’t guess, try </em></em><a href="http://web.archive.org/web/20040119124902/http:/www.nd.edu/%7Earchives/latgramm.htm" target="_blank"><em>www.nd.edu/~archives/latgramm.htm</em></a><em>). This kind of architect must be very aware of what’s going on in the project, looking out for important issues and tackling them before they become a serious problem. When I see an architect like this, the most noticeable part of the work is the intense collaboration. In the morning, the architect programs with a developer, trying to harvest some common locking code. In the afternoon, the architect participates in a requirements session, helping explain to the requirements people the technical consequences of some of their ideas in nontechnical terms &#8212; such as development costs.</em></p>
<p>Do you remember <a title="Microsoft Solutions Framework - Wikipedia, the free encyclopedia" rel="nofollow" href="http://en.wikipedia.org/wiki/Microsoft_Solutions_Framework" target="_blank">MSF </a>(Microsoft Solutions Framework)? This is a development methodology that was distributed by Microsoft. The Lifecycle methodology was kind of iterative, but on a release cycle, rather than multiple iterations per release ala <a title="IBM Rational Unified Process - Wikipedia, the free encyclopedia" rel="nofollow" href="http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process" target="_blank">RUP</a>. It tended (in my mind) toward product development rather than custom software projects or internal IT projects which are quite different from product projects.</p>
<p>What MSF did have is a very strong Team concept that bears close review today. Now they don&#8217;t really mention the concept of an Architect in relation to the development team, but they do put great emphasis on a tech lead (who would be doing what I expect an architect to do). The great principle here is that you need at least 3 leaders on a team:</p>
<ul>
<li>The Project      Manager (Program Manager in MSF)</li>
<li>The Tech Lead</li>
<li>The Product      Manager</li>
</ul>
<p>The tech Lead (Architect) takes on the million technical details of a project and the leads the design and development process. The Product Manager is a business representative whose job it is to coordinate the million business details of a project, gather requirements at the business level form stakeholders, and is the business Point of Contact for the project. The Project Manager is responsible for managing schedule, LOE against budget and is the buffer between the Architect (yes I switched terms in mid-stream, good catch) and the Product Manager.</p>
<p>The bottom line is that a strong team needs a good technical mind and a good business mind and a good manager / organizer mind. When the business folks are pushing for more features, the project manager is asking the architect what the impact is and then relaying that back to the business folks. No surprises, scope creep is managed. If a change is scope is really needed, all go into it with eyes wide open.</p>
<p>So then, why not just a tech lead? Because just as the skills required for project management differ from developer skills, architect skills differ somewhat from tech lead skills. A good tech lead certainly has architectural savvy to at least some extent. An architect though is used to always considering the big picture. He or she can step back &#8211; and *stay* back, keeping his mind on the larger view. The architect will let the tech lead and developers do their job without micro-management, and yet they are always there to help and advise if needed.</p>
<p>So do all project need a dedicated architect? Yes and no. Certainly on a smaller project the tech lead can function as the architect, but must keep in mind the big picture, the long-term view. Its easy to be inundated with micro-details and miss the larger issues that have great effect over the long haul. On a mid-size or larger project, having an architect (of the type Mr. Fowler describes) can make the difference between overwhelming success and the other alternative.</p>
<p>Take some time to read the article and ponder it. I think it will be more than worth your time. <a href="http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf" target="_blank"><strong>Get the article here.</strong></a></p>


<p>Related posts:<ol><li><a href='http://justenoughtechnology.com/why-just-enough-technology/' rel='bookmark' title='Permanent Link: Why Just Enough Technology?'>Why Just Enough Technology?</a></li>
<li><a href='http://justenoughtechnology.com/using-rational-xde-with-visual-studio-net/' rel='bookmark' title='Permanent Link: Using Rational XDE with Visual Studio .Net'>Using Rational XDE with Visual Studio .Net</a></li>
<li><a href='http://justenoughtechnology.com/craftsmanship-and-software-development/' rel='bookmark' title='Permanent Link: Craftsmanship and Software Development'>Craftsmanship and Software Development</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://justenoughtechnology.com/why-do-we-need-software-architects/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Risk Management in Requisite Pro</title>
		<link>http://justenoughtechnology.com/test-process/</link>
		<comments>http://justenoughtechnology.com/test-process/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 10:23:01 +0000</pubDate>
		<dc:creator>Dave Ranck</dc:creator>
				<category><![CDATA[Business and Technology]]></category>
		<category><![CDATA[Process (SDLC)]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Risk]]></category>

		<guid isPermaLink="false">http://justenoughtechnology.com/?p=53</guid>
		<description><![CDATA[Risk Management is an important part of project success. Here is one way to perform Risk Management using Rational Requisite Pro.


Related posts:<ol><li><a href='http://justenoughtechnology.com/why-just-enough-technology/' rel='bookmark' title='Permanent Link: Why Just Enough Technology?'>Why Just Enough Technology?</a></li>
<li><a href='http://justenoughtechnology.com/why-do-we-need-software-architects/' rel='bookmark' title='Permanent Link: Why Do We Need Software Architects?'>Why Do We Need Software Architects?</a></li>
<li><a href='http://justenoughtechnology.com/test-pm/' rel='bookmark' title='Permanent Link: A Programmer&#8217;s Bill of Rights?'>A Programmer&#8217;s Bill of Rights?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Risk Management is an important part of project success. Here is one way to help perform Risk Management using Rational Requisite Pro. Risks are a part of every project. Successful projects successfully manage risks. You can never completely eliminate risk, so it must be dealt with proactively.</p>
<p><span id="more-53"></span></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>From an older article:</td>
</tr>
<tr>
<td>Risk management is   an important part of Project Management. In my mind it is one of the most   important aspects of the development process. Throughout the lifecycle of a   project, risks will be discovered that, if not dealt with, can cause the   project to fail. By tracking risks and dealing with them head-on and early in   the project, the possibility of project success can be greatly enhanced.</p>
<p>Rational Requisite   Pro is a good tool for managing requirements, but it has no in-built ability   to handle risks. They can be assigned to a requirement as an attribute, but   there is no linkage to a Risk List document or Risk Management Plan. I have   outlined a simple way to add this capability to Req Pro. to add Risk   Management to Req Pro you:</p>
<p>1. Create a   requirement of type Risk<br />
2. Create appropriate attributes for the Risk requirement type<br />
3.  Create Outlines and Document Types to add you Risk documents to your   project<br />
4.  Use a view to manage your Risks</p>
<p>There may be other   ways to accomplish this within Req Pro, but this is one way that works for   us. Follow the steps below to add Risk Management to your project.</p>
<p>Create the Risk   Requirement Type</p>
<p>1.     Select the project in the Explorer and click File &gt;   Properties. The Project Properties dialog box appears.</p>
<p>2.     Click Add: The Requirement Type dialog box appears.</p>
<p>3.     Type Risk for the Name and a Description (up to 255   characters) for the requirement type.</p>
<p>4.     In the Initial Requirement # text box, type the number to be   used for the first requirement of the requirement type you are creating or   modifying. Requirements are automatically numbered as they are created,   starting with the number in this text box. The default number is 1, but you   can change the number to any positive integer.</p>
<p>5.     If you want to allow requirements of this requirement type to   be used in cross-project traceability, select the Allow External Traceability   check box.</p>
<p>6.     In the Requirement Must Contain text box, type or modify a   single word or phrase that must be included in every requirement of this type   that is created, up to 32 characters. This box is optional, and is not   case-sensitive.</p>
<p>7.      In the Requirement Tag Prefix text box, type RISK</p>
<p>8.     Select a Requirement Color and a Requirement Style to be used   in documents for requirements of this type. The default is blue, Double   Underline.</p>
<p>9.     Click OK in each dialog box.<br />
Create Risk Attributes</p>
<p>You probably want to   create special attributes for your new Risk requirement.I suggest you create   at least the following 2 attributes (you can modify existing attributes if   you wish instead of creating new ones):</p>
<table border="1" cellpadding="0" width="75%">
<tbody>
<tr>
<td valign="top" width="100px"><strong>Attribute</strong></td>
<td valign="top" width="100px"><strong>Values</strong></td>
<td valign="top"><strong>Use</strong></td>
</tr>
<tr>
<td valign="top">Status</td>
<td valign="top">Open</td>
<td valign="top">Close or defer mitigated risks</td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top">Deferred</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top">Closed</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">Ranking</td>
<td valign="top">Integer</td>
<td valign="top">A ranking of impact on project.     Use to create Top Ten List</td>
</tr>
<tr>
<td valign="top">Mitigation</td>
<td valign="top">Text</td>
<td valign="top">Strategy for risk mitigation</td>
</tr>
</tbody>
</table>
<p>To create the   attributes:</p>
<p>1.     Select the project in the Explorer and click File &gt;   Properties. The Project Properties dialog box appears.</p>
<p>2.     Click the Attributes tab.</p>
<p>3.     Select the requirement type from the list.</p>
<p>4.     Click Add. The Add Attribute dialog box appears.</p>
<p>5.     Type a Label for the new attribute, and select an attribute   type in the Type list.</p>
<p>6.     For list-type attributes, type the values you want to assign   to the value list in the List Values text box. The maximum length for a list   value is 32 characters. Order the values in the list as you want them to sort   in the Requirement Properties dialog box, Attributes tab. For list-type   attributes, you can set the default value using the Default button below the   Values per Attribute list.</p>
<p>For entry-type attributes, type a default value in the Default Value list   box, if appropriate.</p>
<p>7.     To hide attributes of the selected requirement type from all   Rational RequisitePro users in a view and in the Requirement Properties   dialog box, select the Hidden from display check box.</p>
<p>8.     To automatically mark traceability or hierarchical   relationships as suspect when the attribute is changed, select the Change   affects suspect check box.</p>
<p>9.     Click OK to close each dialog box.</p>
<p>Create Outlines</p>
<p>Note: the .dot files   list below are standard RUP artifacts. You<br />
may of course use   any document you choose.</p>
<p>Copy rup_rskpln.dot   to C:\Program Files\Rational\RequisitePro\outlines (or your outline folder   location)<br />
Create a new text document with the following 3 lines (each line must end   with a carriage return):</p>
<p>RUP Risk Plan<br />
Risk Management Plan and Risk List<br />
rup_rskpln.dot</p>
<p>Save as   rup_rskpln.def in the Outlines directory</p>
<p>Copy rup_rsklst.dot   to C:\Program Files\Rational\RequisitePro\outlines (or your outline folder   location)<br />
Create a new text document with the following 3 lines:</p>
<p>RUP Risk List<br />
Risk List<br />
rup_rsklst.dot</p>
<p>Save as   rup_rsklst.def in the Outlines directory</p>
<p>Create Document   Types</p>
<p>1.     Select the project in the Explorer and click File &gt;   Properties. The Project Properties dialog box appears.</p>
<p>2.     Click the Document Types tab.</p>
<p>3.     Click Add. The Document Type dialog box appears.</p>
<p>4.     In the Name text box, type: Risk Management Plan</p>
<p>5.     In the Description text box, type: Project Risk List and   mitigation plan</p>
<p>6.     In the File Extension text box, type: rsk.</p>
<p>7.      Select the Risk default requirement type</p>
<p>8.      Select the RUP Risk Plan outline</p>
<p>9.     Click OK</p>
<p>10.   Do   the same for Risk List but use the following properties:<br />
Name: Risk List<br />
Description: [Enter your description]<br />
File Extension: RSKL</p>
<p>11.    Click   OK.</p>
<p>12.   Click   OK to close the Project Properties dialog box.</p>
<p>You can now add a   Risk Management Document and a Risk List to your Risk Package and add Risk   requirements.</p>
<p>Create Views</p>
<p>Create a view for   Risks. This view will be used to export a list of<br />
risk to be imported into the Risk List document. You should include<br />
those attributes you want in the document and sort on Ranking or<br />
Status and Ranking</p>
<p>To create and   maintain a Risk List:</p>
<p>1.     Add requirements of type Risk and set attributes appropriately</p>
<p>2.     You can set traceability to other requirement types such as   Use Cases</p>
<p>3.     Add a Risk List document to a package in your project and   optionally<br />
a Risk Management Plan document.</p>
<p>4.     Export your risk list to your Risk List document<br />
a. Periodically export the view you created for   Risks to a Word document.<br />
b. Open the Risk List document and use Insert -&gt;   File to insert the exported risk list into your risk list document.</p>
<p>Summary</p>
<p>By creating a   requirement of type Risk, you can use Requisite Pro to trace risks to other   requirements. In this way, you can always know what requirements are affected   by certain risks. You can also maintain your risks in the Req Pro database   and semi-automatically update your risk list document.</td>
</tr>
</tbody>
</table>


<p>Related posts:<ol><li><a href='http://justenoughtechnology.com/why-just-enough-technology/' rel='bookmark' title='Permanent Link: Why Just Enough Technology?'>Why Just Enough Technology?</a></li>
<li><a href='http://justenoughtechnology.com/why-do-we-need-software-architects/' rel='bookmark' title='Permanent Link: Why Do We Need Software Architects?'>Why Do We Need Software Architects?</a></li>
<li><a href='http://justenoughtechnology.com/test-pm/' rel='bookmark' title='Permanent Link: A Programmer&#8217;s Bill of Rights?'>A Programmer&#8217;s Bill of Rights?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://justenoughtechnology.com/test-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Rational XDE with Visual Studio .Net</title>
		<link>http://justenoughtechnology.com/using-rational-xde-with-visual-studio-net/</link>
		<comments>http://justenoughtechnology.com/using-rational-xde-with-visual-studio-net/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 06:57:05 +0000</pubDate>
		<dc:creator>Dave Ranck</dc:creator>
				<category><![CDATA[Architecture and Design]]></category>
		<category><![CDATA[Process (SDLC)]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://justenoughtechnology.com/?p=106</guid>
		<description><![CDATA[What makes a documentation / design tool a good one? Well, seamless integration into the development process is one quality that is important to me. I detest having to input the same information more than once. That is one of the greatest strong points of automation. I’ve designed applications to automate workflow processes and share information between systems using tools that did not provide a solid way to do this with the development process.


Related posts:<ol><li><a href='http://justenoughtechnology.com/why-do-we-need-software-architects/' rel='bookmark' title='Permanent Link: Why Do We Need Software Architects?'>Why Do We Need Software Architects?</a></li>
<li><a href='http://justenoughtechnology.com/why-just-enough-technology/' rel='bookmark' title='Permanent Link: Why Just Enough Technology?'>Why Just Enough Technology?</a></li>
<li><a href='http://justenoughtechnology.com/test-process/' rel='bookmark' title='Permanent Link: Risk Management in Requisite Pro'>Risk Management in Requisite Pro</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I have not been a great fan of reverse engineering tools in general. When I was creating applications in years ago, I held great hope for Visual Modeler. I do strongly believe in providing adequate documentation for an application and I most certainly value implementing an appropriate design phase during a project’s lifecycle. The tools available for accomplishing this have been sorely lacking in key areas, in my opinion.</p>
<p>What makes a documentation / design tool a good one? Well, seamless integration into the development process is one quality that is important to me. I detest having to input the same information more than once. That is one of the greatest strong points of automation. I’ve designed applications to automate workflow processes and share information between systems using tools that did not provide a solid way to do this with the development process.<span id="more-106"></span></p>
<p>To be useful to me, a design tool  or documentation tool has to be powerful enough to meet the 80 / 20 rule of providing 80% of the features I need. At the same time it has to do this without placing a heavy burden on the development team or lifecycle. It also needs to be adaptable for varying project sizes and timeframes. What is appropriate for a project with a team of 20 developers with a timeframe of 12 months is not necessarily appropriate for a project with a team of 3 and a timeframe of 3 months. Both projects require proper design and documentation, but the relative cost or weight of this design / documentation activities must be correspondingly lower for smaller projects. This is simply a case of the law of diminishing returns.</p>
<p>Because of the limitations of the tools of the time, I tended to use more manual methods to achieve design and documentation goals. I even automated some of the documentation tasks with my own add-in for VB 5 &amp; 6. For design, I found VM to be clunky to use and lacking certain key features found in the full version of Rational Rose. Rose, on the other hand I found to be overkill (and expensive) for any but the larger projects.  The result was that design was handled in a separate, readily available application such as Visio.</p>
<p>All this has now changed since I’ve been using Rational XDE with .Net. I was introduced to XDE as a plugin for Eclipse, the open source Java IDE at a software conference. My prior prejudices conspired to hinder me from thoroughly investigating XDE as a tool to include in my Java toolkit. Note: While I have significant experience designing J2EE applications, I now concentrate on .Net – perhaps that should be the subject of a separate article. With XDE, I’ve found what is for me a perfect combination of power and flexibility for any size project, even small projects.</p>
<h4>What is XDE?</h4>
<p>Rational XDE is a graphical component modeling and development tool that uses the industry-standard Unified Modeling Language (UML).  It integrates tightly with VS.Net and allows seamless code generation and reverse engineering. It is both powerful and flexible, allowing the architect to choose how much of its power to use on any given project. XDE allows you to create classes in UML, include them in various UML models such as Sequence Models and Class Diagrams. Because this inclusion is in reality a link to a single instance of a class, updates to that class are reflected in all models that use the class.</p>
<h4>XDE in Visual Studio</h4>
<p>Since XDE functions as an extension of the VS IDE, it is tightly integrated into the design / development workflow and project structure. Models created for the classes in a project, stay with the project as a part of the project hierarchy. This creates a cohesiveness that tends toward a transparency between XDE and VS. You forget that you are using a 3rd party tool and begin to believe that XDE is an integral part of VS. I quickly found myself dependent on XDE for day to day tasks over the lifecycle of a project.</p>
<p>XDE allows you to create Analysis Models that are high level abstractions of the system. Typically, these types of models are not linked directly to code. They exist entirely separate from the code. This allows the creation of high level architectural overviews as well as the realization of Use Case models to validate the basic design before implementation begins. At this level XDE functions as a very good drawing tool, but the models are linked to the VS project, keeping the project and documentation together.</p>
<p>Once you get to the Elaboration and Construction phases the fun really begins! XDE allows you to work the way you want to. Do you want to create your models first and then generate the stub code for all of your classes? Would you rather create the classes in C# and then generate the UML class models from the code? XDE works equally well either way and I find myself doing both depending on the task at hand. This is where I think XDE shines. Code generation and reverse engineering  work well in XDE. It is a straightforward process to keep the code and models in synch. One of the best parts is the XDE uses reflection to create classes from the code. It does not parse the code window as other tools have done in the past. There is no extra code or comments added to the .cs files for XDE to work its magic.</p>
<h4>Using XDE with a development team</h4>
<p>XDE allows the separation of roles on a development to enforce good design and standardization. One senior person can be given the application level design tasks to create a consistent and coherent architecture. At the same time, construction level design can be handled by the architect or handled by the individual developers of a component of the system. Because of the powerful reverse engineering tools, the architect can always keep the model up to date. Better still, developers can enhance the models created by the architect with the details of implementation. Following this practice allows developers to acquire design skills and encourage thinking before coding. The architect can review models before implementation if desired to enforce project goals and guidelines.</p>
<p>Project Managers and Business analysts can create their Use Case models directly in XDE. The architect can later realize these Use Cases with class diagrams and other models. This creates a seamless end to end project lifecycle structure from inception to construction. Alternately, Use Cases can be imported from other Rational Tools if desired.</p>
<p>Keep in mind that, as with the Rational Unified Process, you don’t have to use all of XDE on every project! For example, on a recent project the workflow went something like this:<br />
The business analyst created Use Cases using the RUP Word templates – no Rational Toolset. This level of automation was fine for this project. There was no clear win to introduce the learning curve and overhead of the full rational Toolset. From the Use Cases, I created Analysis Models to design the overall architecture of individual application components and to validate that the Use Cases were being realized properly. Once a component’s design was validated and realized at a high level, I created separate code-level models and generated the stub code from the models. After the construction of a component was complete or reached a significant milestone, I reverse engineered the models to update the UML. As the project progressed, some of the construction level design tasks could be handed off to the development team. Critical components were still designed primarily by the project architect, but by distributing the responsibility for component design, a more efficient workflow could be achieved.</p>
<h4>Conclusion</h4>
<p>I have found XDE to be a very valuable addition to the VS toolkit and will find it awkward to work without it on future projects. Unfortunately, because of the cost of XDE, I may have to  forego all the benefits of XDE in some projects. A license for XDE runs from approximately $1600 TO $5000 Depending on the version chosen. Different versions provide differing levels of functionality such as database modeling and reverse engineering and visual tracing. The relatively high cost of this add-on significantly reduces its application to smaller projects and companies.</p>
<p>XDE is a great tool and if the project budget can afford it, I highly recommend employing it for design and documentation tasks. For many projects, all the bells and whistles may not be needed and the basic version will provide more functionality than is required. For larger projects, I would insist on XDE’s inclusion in the development tool set.</p>


<p>Related posts:<ol><li><a href='http://justenoughtechnology.com/why-do-we-need-software-architects/' rel='bookmark' title='Permanent Link: Why Do We Need Software Architects?'>Why Do We Need Software Architects?</a></li>
<li><a href='http://justenoughtechnology.com/why-just-enough-technology/' rel='bookmark' title='Permanent Link: Why Just Enough Technology?'>Why Just Enough Technology?</a></li>
<li><a href='http://justenoughtechnology.com/test-process/' rel='bookmark' title='Permanent Link: Risk Management in Requisite Pro'>Risk Management in Requisite Pro</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://justenoughtechnology.com/using-rational-xde-with-visual-studio-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Programmer&#8217;s Bill of Rights?</title>
		<link>http://justenoughtechnology.com/test-pm/</link>
		<comments>http://justenoughtechnology.com/test-pm/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 12:09:20 +0000</pubDate>
		<dc:creator>Dave Ranck</dc:creator>
				<category><![CDATA[Business and Technology]]></category>
		<category><![CDATA[Process (SDLC)]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://justenoughtechnology.com/?p=55</guid>
		<description><![CDATA[Here&#8217;s a link to good post that talks about how companies can enhance developer productivity with some small investments in things like dual monitors. I just reread this article after finding it over a year ago. I am diligently trying to move our own department towards the things listed in the article, though some items, [...]


Related posts:<ol><li><a href='http://justenoughtechnology.com/why-just-enough-technology/' rel='bookmark' title='Permanent Link: Why Just Enough Technology?'>Why Just Enough Technology?</a></li>
<li><a href='http://justenoughtechnology.com/craftsmanship-and-software-development/' rel='bookmark' title='Permanent Link: Craftsmanship and Software Development'>Craftsmanship and Software Development</a></li>
<li><a href='http://justenoughtechnology.com/choosing-between-java-and-net/' rel='bookmark' title='Permanent Link: Choosing Between Java and .Net'>Choosing Between Java and .Net</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a link to good post that talks about how companies can enhance developer productivity with some small investments in things like dual monitors. I just reread this article after finding it over a year ago. I am diligently trying to move our own department towards the things listed in the article, though some items, such as dual monitors, may be difficult for us given the current economic climate. We developers understand experientially how these things help our productivity, but is not always easy to communicate these truths to management.<span id="more-55"></span></p>
<p>It is difficult for developers to understand why a company might resist making changes like these, given the tangible benefits of these practices. Monitors for example are cheap compared to the cost of a programmer&#8217;s time. I joke with my team, by telling them: &#8220;Your problem is that you think logically&#8221; <img src='http://justenoughtechnology.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  In a lrage company, the bucket the money comes out of is almost more important than the actual cost.<br />
Here&#8217;s an article on CodingHorror.com that puts forth a Programmer&#8217;s Bill of Rights. I just reread this after finding it a year or so ago. Some of the ideas here make good sense. There are concrete things that can be instrumented that will increase the effectiveness and therefore the cost-effectiveness of a development team.</p>
<p>We programmers are often viewed as overhead. The company pays the same amount on a monthly basis for our services regardless of how long it takes us to perform our development tasks.</p>
<p>The last line of the article states &#8220;And remember: you can either change your company, or you can change your company.&#8221; Hmm, things may have changed a bit since this was written a few years back. That isn&#8217;t to say that we don&#8217;t have the required influence to initiate change, we just have to use it bit more wisely. Demanding change probably won&#8217;t work. We must strive to show tangible, not theoretical benefits whenever possible. A couple of things happened here that may have helped our cause, and perhaps you can leverage the same ideas to your benefit. First, my team started requesting to work from home more often because they have better equipment at home. Second, one of the guys bought a new wide screen monitor and brought it into work so he could be more productive. He had to take it home, because company policy doesn&#8217;t allow connecting personal equipment, but the point was made. By the way, these actions weren&#8217;t part of a planned effort. It was completely organic.</p>
<p>So read the Programmer&#8217;s Bill of Rights and see what you can do to influence its adoption at your place of work.</p>
<p>Link: <a href="http://www.codinghorror.com/blog/archives/000666.html" target="_blank">Programmer&#8217;s Bill of Rights</a></p>


<p>Related posts:<ol><li><a href='http://justenoughtechnology.com/why-just-enough-technology/' rel='bookmark' title='Permanent Link: Why Just Enough Technology?'>Why Just Enough Technology?</a></li>
<li><a href='http://justenoughtechnology.com/craftsmanship-and-software-development/' rel='bookmark' title='Permanent Link: Craftsmanship and Software Development'>Craftsmanship and Software Development</a></li>
<li><a href='http://justenoughtechnology.com/choosing-between-java-and-net/' rel='bookmark' title='Permanent Link: Choosing Between Java and .Net'>Choosing Between Java and .Net</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://justenoughtechnology.com/test-pm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
