<?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; Planning</title>
	<atom:link href="http://justenoughtechnology.com/tag/planning/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>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>Choosing Between Java and .Net</title>
		<link>http://justenoughtechnology.com/choosing-between-java-and-net/</link>
		<comments>http://justenoughtechnology.com/choosing-between-java-and-net/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 07:22:25 +0000</pubDate>
		<dc:creator>Dave Ranck</dc:creator>
				<category><![CDATA[Architecture and Design]]></category>
		<category><![CDATA[Business and Technology]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://justenoughtechnology.com/?p=113</guid>
		<description><![CDATA[Another Blast From The Past Article – Originally Published in Oct.  2004

I&#8217;ve been going over some articles I wrote over the years and have resurrected a few for Just Enough Technology. They are interesting in that the ideas are (usually) still valid and relevant in today&#8217;s world. This article was the basis of my [...]


Related posts:<ol><li><a href='http://justenoughtechnology.com/java-vs-net-another-blast-from-the-past/' rel='bookmark' title='Permanent Link: Java vs. .Net &ndash; Another Blast From the Past'>Java vs. .Net &ndash; Another Blast From the Past</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/why-just-enough-technology/' rel='bookmark' title='Permanent Link: Why Just Enough Technology?'>Why Just Enough Technology?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><em>Another Blast From The Past Article – Originally Published in Oct.  2004<br />
</em></p>
<p>I&#8217;ve been going over some articles I wrote over the years and have resurrected a few for Just Enough Technology. They are interesting in that the ideas are (usually) still valid and relevant in today&#8217;s world. This article was the basis of my focus on .Net over the last 7 or 8 years. I&#8217;ve created significant applications in both Java and .Net, and I am a great believer in choosing the right technology for the job. That could be Java or .Net or something else. This article contains some tidbits of truth concerning selecting the best technology based on real criteria &#8211; that is, criteria that are based on solving a business problem, not an arbitrary preference.<span id="more-113"></span></p>
<p><strong>How does one go about comparing the relative strengths of and differences between the Microsoft .Net platform and the J2EE platform?</strong></p>
<p>This question is being asked daily in one form or another in companies across the globe. In today&#8217;s Enterprise Application development world, there are 2 main players in the arena: Microsoft&#8217;s .Net and Sun&#8217;s J2EE. IT directors, CIO&#8217;s, software architects and developers are faced with the choice of a platform on which to base not only their next application, but possibly the company&#8217;s core applications for years to come. This decision is important to IT&#8217;s ability to respond to business needs, now and future and involves not only the evaluation of the technology itself, but of the company or companies behind the technology.</p>
<p>One might conclude that because of the importance of these decisions, that due diligence is routinely applied and objectivity is maintained when making such decisions. In my experience working with Fortune 1000 clients, I have surprisingly observed this not always to be the case. Often, management is influenced by the well-intentioned leading of respected technologists within the organization, who, though they thoroughly understand the technology they recommend, are not necessarily objective in their comparative evaluation of competing technologies. In some cases, I have seen this lead to the adoption of a technology platform which was just wrong for the company and which was ultimately discarded (incurring the cost of reworking the applications in another technology).</p>
<p>Before I continue, let me first say that I have a firm opinion on this subject. It is an opinion that has been reached through much experience, both hands-on as a software architect and from a high level as a business development consultant and architect. My purpose in this brief article is to outline my thinking and criteria for reaching this opinion, more than it is to present my conclusions. Perhaps there will be a follow-on article where I will dissect my reasoning more completely. Let me also state that I have designed and developed successful, even award-winning applications in both platforms. Core to my conclusions is the firm belief (borne from experience) that is equally possible to design performant Enterprise applications in either platform.</p>
<p>There are at least two components that must be considered when comparing these platforms; the technology itself and the company behind the technology that you will be partnering with. Starting from the preconception that either technology enables high-performing, enterprise-level application development, we must seek out the differentiators of each technology and its vendor(s). If both technologies support true enterprise application development, do they handle this task in the same manner or with the same degree of ease? Of course not, so lets list a few of these differences. For now I&#8217;ll simply list the individual points and we will cover them in more depth in a later article.</p>
<p><strong>.Net</strong></p>
<ul>
<li>A single vendor      solution</li>
<li>Designed to      specifically integrate with many other supporting applications from the      OS, to the database, to satellite applications such as BizTalk and CMS.</li>
<li>Includes the      best, most efficient development environment (IDE) available today (in my      opinion).</li>
<li>Greatly      facilitates UI development, particularly web UI development (this will be      enhanced even further with the upcoming release of ASP.Net 2.0),</li>
<li>Allows multiple      language use</li>
<li>Limited to the      Windows family of server OSs.</li>
<li>Very good direct      vendor support with add-ons and architecture guidance from the vendor.</li>
<li>Lends itself to      faster time to market development timeframes.</li>
<li>Tends toward a      horizontal scaling architecture</li>
</ul>
<p><strong>J2EE</strong></p>
<ul>
<li>A multiple vendor      solution</li>
<li>Each vendor      supplies differing supporting applications such as a CMS or workflow      management system.</li>
<li>Each vendor      supplies a differing application server such as WebLogic or WebSphere.</li>
<li>Core code is      based on the same JDK.</li>
<li>Multiple vendors      provide IDEs with different capabilities.</li>
<li>Provides Open      Source implementations of functional packages that may or may not find      their way into the core (Struts for example).</li>
<li>A single language      solution (theoretically it is possible to create compilers and runtimes      for other languages, but it is not done in practice)</li>
<li>Runs on multiple      OSs.</li>
<li>Support is      dependent on the vendor and may involve multiple vendors if a number of      vendors are chosen for various facets of the architecture.</li>
<li>Tends toward a      vertical scaling architecture</li>
</ul>
<p><strong>Reaching a conclusion</strong></p>
<p>The process for reaching a conclusion on an architectural platform must as we mentioned take into account the company(ies) behind each platform as well as the relative merits of each platform. If you know me or have been following my .Net site, you have divined that my decision has been for .Net. Part of my reasoning is that .Net is, for the most part, a single vendor solution. That is certainly not to say that .Net is not supported by a multitude of third party vendors, but the core framework is managed and developed by Microsoft. I believe this brings a decided edge to .Net in that Microsoft can coordinate efforts (as they are doing with .Net and Yukon) to strengthen .Net through supporting technologies. IBM can do this to some degree with the WebSphere family, but in practice it is more difficult for Java provider. If IBM is chosen as a vendor and the intention is to utilize many of the other WebSphere family of products, in essence, a decision has been made to go with a single vendor. It may be a good decision at that. What can be lost is the ease of porting applications or code to other vendors products or the ease of integrating other vendors products. This is one reason why I believe interoperability is of greater relevance than portability.</p>
<p>Another factor in reaching a decision must be the corporate culture of your organization and its openness to new ideas and new ways of thinking. Current skillsets must also be considered, but must not become the sole or even the major criterion. Skills can be taught or acquired through hiring. An objective evaluation of these factors must be made. If the IT group just does not like the technology chosen, successful implementation is almost impossible. In addition, the cost to retrain developers in a different technology must be appreciated.</p>
<p>When all is said and done, the criterion that should be foremost is the bottom line: Which platform will enable the highest positive business benefit? This is not always measured in terms of hard dollars (though it certainly often is), but in terms of &#8220;soft&#8221; dollars &#8211; productivity gains, client satisfaction level gains, employee satisfaction level gains, etc. It seems foundational &#8211; but also seems to be often forgotten &#8211; that software has no meaning unless it provides some business benefit. The greater the benefit, the &#8220;better&#8221; the software is. Technologists often concentrate on the internal benefits of software &#8211; it runs faster, it handles more transactions, etc. While these considerations are part of the equation, the bottom line is the relative business benefit. For an extreme example, an application built to handle hundreds of thousands of transactions but that takes thousands of developer hours to construct, test and maintain, may not have great relative business benefit for a departmental intranet application.</p>
<p>One more thought on this idea of business benefit. When evaluating software or platforms, it is important to correctly separate the benefits from the features. OK, it&#8217;s time for a pop-up quiz!</p>
<p>Which of the following is a benefit and which is a feature?<br />
a. The architecture is scalable<br />
b. The architecture can handle 500,000 tpmC</p>
<p>OK, this was a trick question, sorry! Actually, both answers are features. The benefits of these features might include things like: &#8220;Users will not experience application slow-downs even at peak usage times&#8221; or &#8220;We will not incur extra costs for rearchitecting the solution even if our user base quadruples&#8221;. You get the idea.</p>
<p>So what does all this have to do with choosing between J2EE and .Net? These ideas are basis of my thought process in making my evaluation. They are certainly not the only criteria, but I believe they describe how I think about technology in general. It is because of how I view technology as a part of the greater scheme of business in general that I am drawn to .Net and other Microsoft technologies. I always have the end in mind. The software is the means and not the end. The overall benefits of .Net in terms of development efficiency, ease of development, tool support, forward thinking by the vendor, and timely innovation lead to applications that can be developed faster, at less cost and with more features in my experience (providing greater business benefits).</p>
<p>One last illustration. We are all familiar with the resource triangle. There are three components to any development effort: Resources (people and dollars), Time and Features. They are all inter-related. By basing an architecture on a platform that can cut development time, add features and in some cases, cut resource costs, we have a winning solution. For me, that winning solution is .Net.</p>
<p><strong>Addendum: Perceptions</strong></p>
<p>The following are a few perceptions that are not based in hard truth, but are what I call &#8220;perceived truth&#8221; &#8211; preconceptions based on the perceiver&#8217;s viewpoint or other unrelated factors:</p>
<p><em>J2EE is more &#8220;industrial strength&#8221;</em> -<br />
this is simply untrue, though it can be said that some J2EE applications are more industrial strength than some COM or .Net applications. In a later article, we&#8217;ll explore this preconception more thoroughly. One reason for this perception, in my opinion, is the accessibility of Microsoft development tools. Microsoft has done an excellent job providing great tools that enable users who are not expert-level developers to create usable applications. One side affect of this is that some of these users attempt to build enterprise applications without the base understanding of the requisite architecture, design and best practices. There are no practical limits to the strength of .Net applications but best practices for architecture and design must be followed, both in .Net and in J2EE.</p>
<p><em>.Net is good for Rapid Prototyping or departmental applications, but the core architecture should be J2EE based</em> -<br />
It is true that .Net lends itself better to Rapid Prototyping and smaller, departmental applications, but this does not obviate its ability to be used to create true Enterprise applications. What is true, is that it is much more difficult to create departmental projects with J2EE. This has do in part  with the innate complexities of OOP that are usually not compensated for by the J2EE IDEs. J2EE in general does not easily lend itself to adoption by mere mortals, so to speak.</p>
<p><em>All of a company&#8217;s applications must be built using the same platform. We need to rewrite all of the legacy applications now</em> -<br />
The truth is that legacy applications have had a lot of investment poured into them over the years, both in terms of dollars and in terms of knowledge. In the real world we live in today, it is important for applications to interoperate, both to support legacy applications and to support the common reality that, especially in larger companies, more than one modern development platform may be present. Both J2EE and .Net provide the foundations for this kind of integration, though there are (of course) implementation differences.</p>


<p>Related posts:<ol><li><a href='http://justenoughtechnology.com/java-vs-net-another-blast-from-the-past/' rel='bookmark' title='Permanent Link: Java vs. .Net &ndash; Another Blast From the Past'>Java vs. .Net &ndash; Another Blast From the Past</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/why-just-enough-technology/' rel='bookmark' title='Permanent Link: Why Just Enough Technology?'>Why Just Enough Technology?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://justenoughtechnology.com/choosing-between-java-and-net/feed/</wfw:commentRss>
		<slash:comments>0</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>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>
