<?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>let x=x &#187; wizards considered harmful</title>
	<atom:link href="http://www.crazymcphee.net/x/tag/wizards-considered-harmful/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.crazymcphee.net/x</link>
	<description>programming idiom and methodology</description>
	<lastBuildDate>Fri, 27 Jan 2012 09:36:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>A terrible, terrible Eclipse bug</title>
		<link>http://www.crazymcphee.net/x/2011/03/10/a-terrible-terrible-eclipse-bug/</link>
		<comments>http://www.crazymcphee.net/x/2011/03/10/a-terrible-terrible-eclipse-bug/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 00:55:19 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[tools and techniques]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[craftsmanship]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[poorly attempted humour]]></category>
		<category><![CDATA[refactor]]></category>
		<category><![CDATA[test driven design]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=610</guid>
		<description><![CDATA[I found a massive bug in Eclipse &#8211; it has a copy and paste function. In Eclipse&#8217;s defence, Intellij IDEA and Netbeans also exhibit identical broken functionality.]]></description>
			<content:encoded><![CDATA[<p>I found a massive bug in Eclipse &#8211; <em>it has a copy and paste function</em>.</p>
<p>In Eclipse&#8217;s defence, <em>Intellij IDEA</em> and <em>Netbeans</em> also exhibit identical broken functionality.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2011/03/10/a-terrible-terrible-eclipse-bug/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Ordeal of Installing Oracle Service Bus on a Windows-based developer workstation</title>
		<link>http://www.crazymcphee.net/x/2010/07/12/the-ordeal-of-installing-oracle-service-bus-on-a-windows-based-developer-workstation/</link>
		<comments>http://www.crazymcphee.net/x/2010/07/12/the-ordeal-of-installing-oracle-service-bus-on-a-windows-based-developer-workstation/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 07:30:12 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[infrastructure and frameworks]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[esb]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[osb]]></category>
		<category><![CDATA[poorly attempted humour]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[weblogic]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=570</guid>
		<description><![CDATA[This is a genuine installation procedure which I wrote, but you might want to read it for its other values. Overview OSB installation in a development environment consists of a completely separate Weblogic instance and yet another &#8216;special installation&#8217; of Eclipse. You can&#8217;t use existing Eclipse installations. Nor is it recommend to use one of [...]]]></description>
			<content:encoded><![CDATA[<p>This is a genuine installation procedure which I wrote, but you might want to read it for its other values.</p>
<h2>Overview</h2>
<p>OSB installation in a development environment consists of a completely separate Weblogic instance and yet another &#8216;special installation&#8217; of Eclipse. You can&#8217;t use existing Eclipse installations. Nor is it recommend to use one of the five other existing Weblogic instances that Oracle products thoughtfully demand their own copy thereof (SOA Suite, I am looking at you).</p>
<h2>Installation process</h2>
<p>This is the procedure for installing OSB development environment.</p>
<p>As network firewall policy prevents the downloading of files, you will need to use installation media located within &lt;companyname&gt; network. Take the files conveniently stored on network server &lt;location redacted&gt; and copy them into a directory on your local computer. This directory is hereafter referred to as &#8216;installation files directory&#8217; below.</p>
<h3>Install Weblogic</h3>
<ol>
<li>Go to the installation files directory.</li>
<li>Run the executable file wls1033_oepe111150_win32.exe</li>
<li>This action launches the Oracle Installer for the Weblogic instance. It takes some time to run so contemplate the meaning of your life for a few minutes while it does. Maybe get a cup of tea. Stretch your legs. Think about lunch or your next holiday. File a support request for more memory. You should get at least 8GB.</li>
<li>Okay that&#8217;s it, you&#8217;ll finally see the Oracle Weblogic 10.3.3.0 installer. Think about the fact that Oracle sees fit to put &#8220;instructions&#8221; on the first screen telling you what the &#8220;Next&#8221; button does. This is advanced JEE server technology you&#8217;re installing, and potentially, Oracle think you don&#8217;t know what the &#8220;Next&#8221; button does. Maybe this reflects the level of experience inside Oracle, or perhaps it is indicative of the depth of respect in which Oracle holds their customers.</li>
<li>Press the &#8220;Next&#8221; button. The next screen you will see  is very important. If you fsck it up you&#8217;ll have to uninstall and start over. It does not have any instructions, but that&#8217;s OK, we&#8217;ve done it here in this wiki page for you. Pay attention.</li>
<li><strong>DO. NOT. ACCEPT. THE. DEFAULT.</strong> Especially if you installed SOA Suite or some other Oracle product before you installed this one. Double especially if you still want that product to work.</li>
<li>SELECT &#8220;Create a new Middleware Home&#8221; (THIS IS VERY IMPORTANT)</li>
<li>TYPE a name of an Appropriate Directory. I used &#8220;C:\Oracle\OSB_Middleware&#8221;</li>
<li>PRESS The &#8220;Next&#8221; button. Use the &#8220;Back&#8221; button if you need to see the instructions about how to use the &#8220;Next&#8221; button that Oracle conveniently provided for you on the first Screen. No, don&#8217;t do that. If you do that you&#8217;ll probably have to do this proceedure again and it will just make this entire experience last longer than it needs to. This is not a recommended practice.</li>
<li>The next screen demands that you give Oracle your Email Address to get &#8220;security updates&#8221;. It also wants a thing called your &#8220;My Oracle Support Password&#8221; (I suspect this is what might have been known as Oracle TechNet). As we both know, the best possible security measure is not to give out your password to strange programs that demand it.</li>
<li>As I planned on giving them my &lt;workcompany&gt; email, and as my Technet sub doesn&#8217;t use that Email address, I also unchecked the &#8220;I wish to receive security updated via My Oracle Support&#8221; check box.</li>
<li>Are you Sure? YES I&#8217;M VERY SURE. I would like to be &#8220;ignorant of security updates&#8221; and also Oracle spam. Ignorance is Bliss.</li>
<li>Look at that, I can&#8217;t give them my email address after all, what they really meant was &#8220;type your Oracle Support user id&#8221;. Press &#8220;Next&#8221;.</li>
<li>Now you have to choose whether you want a &#8220;Typical&#8221; installation or a &#8220;Custom&#8221; one. I chose &#8220;Typical&#8221;, which, being an Oracle installation, I expect to require an 8-core 64GB RAM 2TB SAN SSD -based supercomputer with a external 4-way Oracle RAC for configuration (&#8220;infrastructure&#8221;) DB in order to have enough grunt to service about 3 requests a minute. Press &#8220;Next&#8221;.</li>
<li>There&#8217;s a lot of choices here about the various subdirectories under the Middleware Home Directory that you created further back. I recommend accepting the defaults, but you can probably cause yourself countless of fun trolling on the My Oracle Support forums as you get ever-more-desparate for a solution to a very obscure problem that the phone support have no idea about and that was likely caused by you mucking about these defaults, causing the support personel to simply recommend you to reinstall the product, if you really feel the need to change them here.</li>
<li>If you can remember the instruction about the use of the &#8220;Next&#8221; button at step 4, then Press &#8220;Next&#8221;.</li>
<li>Now you can choose whether you want to put the shortcuts for &#8220;All users&#8221; or just you (&#8220;Local user&#8221;). If you are the BOFH I recommend &#8220;All Users&#8221;. As this is the default, we can all safely assume that the BOFH works for Oracle and is now responsible for designing their installation processes. Accept the default, and press &#8220;Next&#8221;.</li>
<li>The next screen is a summary of what you&#8217;ll be installing. You can also select each item and see a summary of what it does. Ponder the mystery of Oracle, and press &#8220;Next&#8221;.</li>
<li>Keep pondering that mystery while Oracle Weblogic Server 11g Release 1 (10.3.3.0) is installed. It takes a little bit of time. While it does that, you might to book that Holiday, get another cup of tea, or chase up that support request for the additional RAM you&#8217;ll be soon needing.</li>
<li>Congratulations! Installation is complete.</li>
<li>I opted to leave the &#8220;Run Quickstart&#8221; option checked.</li>
<li>Press &#8220;Done&#8221;. There are no onscreen instructions for this button.</li>
<li>Quickstart will run. It&#8217;s just a link farm.</li>
</ol>
<h3>Install Oracle Enterprise Pack for Eclipse (OEPE aka &#8220;Special Eclipse&#8221;)</h3>
<ol>
<li>Go to the installation files directory</li>
<li>Extract the file oepe-galileo-all-in-one-11.1.1.5.0.201003170852-win32.zip &#8230; I used 7zip and made sure to put it into a subdirectory of the installation files directory.</li>
<li>It&#8217;s kind of pretty big, takes a cople of minutes.</li>
<li>Just like a regular version of Eclipse, once this is unzipped, it&#8217;s installed. However it&#8217;s not a regular version of Eclipse. It is a &#8220;special&#8221; Eclipse that went to &#8220;special&#8221; school.</li>
<li>Although this directory can <em>probably</em> live anywhere, it&#8217;s a good idea to copy this directory into the new Oracle Middleware Home that you created when you installed Weblogic. Look I really have no idea why this is the case, however, it&#8217;s not good to anger the Oracle by using you regular development directories. ORACLE_HOME sweet ORACLE_HOME it is then.</li>
</ol>
<h3>Install OSB and OSB Dev Tools</h3>
<ol>
<li>Go to the installation files directory.</li>
<li>Extract the file ofm_osb_generic_11.1.1.3.0_disk1_1of1.zip &#8230; again I used 7zip and made sure to put it into a directory underneath the installation files directory.</li>
<li>Enter this directory. Enter the directory &#8220;osb&#8221; that will be created underneath it. Note that even though the file said &#8220;disk1_1of1&#8243; in the file name that underneath here there&#8217;s two directories, Disk1 and Disk2.</li>
<li>Go into the directory &#8220;Disk1&#8243;</li>
<li>Run the executable file &#8220;setup.exe&#8221;</li>
<li>A DOS window opens which asks you for the location of a JRE in order to use Oracle Universal Installer. Probably. Exactly why the Weblogic installer didn&#8217;t need to know where the JDK was, I do not know. Probably it used a sensible installer rather then the Oracle Universal Installer. I don&#8217;t ever think I&#8217;ve ever seen an machine with two Oracle installations on it that didn&#8217;t also have two or more installations of the Oracle Universal Installer also installed on it. Its name perhaps means that it installs itself universally, rather than it is a product which has a universal use for installing other software. Ponder the mystery of the Oracle.</li>
<li>A JRE will be located in the original Oracle Middleware Home that you created when you installed Weblogic. In fact there&#8217;s at least two (Sun JDK and JRockit). Use the Sun JDK. For example, my value for the JDK was &#8220;C:\Oracle\OSB_Middleware\jdk160_18&#8243;. Press Enter.</li>
<li>Now the Universal Installer will actually attempt to install something. It says &#8220;You are about to install the Oracle Service Bus (OSB) and may install the Oracle Service Bus IDE and Oracle Service Bus Examples (OSBE). Before proceeding, make sure that you have installed and configured Oracle WebLogic Server 11g. If you want to design OSB applications in Eclipse, make sure Oracle Enterprise Package for Eclipse (OEPE) is installed.&#8221; Which is all true if you&#8217;ve been following this guide.</li>
<li>Press &#8220;Next&#8221;. There&#8217;s no instructions in this program for the use of the &#8220;Next&#8221; button. Someone ought to file a change request for that.</li>
<li>Now you can choose whether you want a &#8220;Typical&#8221; installation or a &#8220;Custom&#8221; one. Typically, choose &#8220;Typical&#8221;.</li>
<li>Press &#8220;Next&#8221;. I tried looking for online help here about the use of the &#8220;Next&#8221; button but I did not find anything.</li>
<li>It does a prerequisite check. It should pass, and if it doesn&#8217;t, you are probably screwed. If it does, you will be able to Press &#8220;Next&#8221;</li>
<li>At this next screen <strong>DO NOT ACCEPT THE DEFAULTS</strong>.</li>
<li>Choose the Oracle Middleware Home that you installed the Weblogic into at the first part of this installation procedure. E.g. I chose &#8220;C:\Oracle\OSB_Middleware&#8221;.</li>
<li>Once you do the previous step, ff you followed the instructions for the Special Eclipse (OEPE), it will have found it automatically. If not, choose the location where you installed the Special Eclipse (OEPE Location). For example, my value was &#8220;C:\Oracle\OSB_Middleware\oepe-galileo-all-in-one-11.1.1.5.0.201003170852-win32&#8243;</li>
<li>Press &#8220;Next&#8221;. Did you know that the Oracle at Delphi was a priestess called the &#8216;Pythoness&#8217; who answered your question using gibberish verse. A Male Attendant of the Pythoness interpreted her raving mad gibberings and told you what they meant. For a fee. Does this sound familiar?</li>
<li>Review the installation details. When you are sure they are correct, press &#8220;Install&#8221;.</li>
<li>OSB will now install. It takes a little time so run those errands, go to lunch, get a coffee, dream of the Holiday you just Booked. I&#8217;d tell you to install the new 8GB of memory that you ordered before which surely has arrived by now, but that would mean turning your computer off. Best to wait until it&#8217;s finished then.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2010/07/12/the-ordeal-of-installing-oracle-service-bus-on-a-windows-based-developer-workstation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mistakes you can make with SOA</title>
		<link>http://www.crazymcphee.net/x/2009/11/03/mistakes-you-can-make-with-soa/</link>
		<comments>http://www.crazymcphee.net/x/2009/11/03/mistakes-you-can-make-with-soa/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 07:49:45 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[professional practice]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[tools and techniques]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[profession]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[test driven design]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=494</guid>
		<description><![CDATA[Bob Lewis has a great column this month, &#8220;What if SOA is a mistake&#8220;? His penultimate paragraph asks: Lost in the shuffle is something basic: Programmer productivity. Friends who are hands-on with such matters tell me the available SOA development environments are less than half as productive as products like PowerBuilder and Delphi were, back [...]]]></description>
			<content:encoded><![CDATA[<p>Bob Lewis has a great column this month, &#8220;<a href="http://www.weblog.keepthejointrunning.com/wordpress/?p=3174" target="_blank">What if SOA is a mistake</a>&#8220;? His penultimate paragraph asks:</p>
<blockquote><p>Lost in the shuffle is something basic: Programmer productivity. Friends who are hands-on with such matters tell me the available SOA development environments are less than half as productive as products like PowerBuilder and Delphi were, back when they were viable.</p></blockquote>
<p>Putting aside the Powerbuilder and Delphi love for just one minute, this is something I&#8217;ve been banging on about now for the past year &#8230; the programming tooling that is foisted onto programmers by the choice of the deployment architecture. It&#8217;s just all <em>wrong</em>.</p>
<p>In my view, what makes a programming language really productive is <em>notepad</em>. Or <em>vi</em>, or <em>emacs, </em>or<em> gvim, </em>or<em> textmate</em>, take your pick. What I mean is &#8230; <em>the programming language has to be able to be programmed with a simple editor</em>. Yes, an advanced IDE will make things more productive, but the basics must also apply. Now a lot of SOA environments are simply <em>not programmable</em> without the specific IDE tied to it. Even worse, the IDEs are often completely custom jobs that require a developer to be re-trained &#8230; losing <em>years and years</em> of productive speed with muscle-memory style automatic ability to navigate the programmer&#8217;s usual editing tool. Seriously. This stuff is whack. A program language or an environment needs to be IDE-neutral. If you got a plumber around, would you insist that he only use the tools you supply from your home handyman kit? Or would you expect the plumber to have mastered a set of his own tools already? And making matters worse, it&#8217;s rarely <em>programmers</em> that choose these tools which are foisted on them. The server/deployment environment and the language used to implement need to be decoupled from the tools used to build it.</p>
<p>But an even <em>worse</em> failing of many of these SOA tool suites, is that they all strongly and irrevocably coupled to the deployment/runtime environment. Generally they totally lack the ability to keep up with modern programming practice. Like for instance, automated testing. Or even <em>unit tests</em>, let alone advanced and productive techniques such as Test-First approaches or Test Driven Design. The tools often lack refactoring support. All of these things are in my opinion, and in the opinion of many leading developers, absolutely essential to quality engineering practice and agile development outcomes like &#8220;delivery of working software&#8221;. Both the &#8220;delivering&#8221; and the &#8220;working&#8221; part means the whole process needs to be <em>repeatable</em>. That&#8217;s why automated integration testing, to name just one thing, is <em>essential</em> in modern development. But often the fancy custom development tooling is a complete barrier to achieving this.</p>
<p>But you won&#8217;t hear any of this from the big vendors. One big vendor recently announced their new version of their middleware product suite had a &#8216;focus on testability&#8217;, but you ask any of their presales guys to demonstrate this in an actual development environment. Ask them about continuous integration support, for example. Witness their blank looks. Their development product is completely orientated to &#8220;one button push from the IDE to production&#8221; modes of thinking the idea of continuous integration builds is almost totally antithetical to the very concepts of operation the product is organised around. They think that finally adding support for Subversion version control system, at least five years too late, is a wondrous achievement.</p>
<p>They are aiming for &#8216;programmerless programming&#8217;: of course in process just creating a new type of programmer. Every new generation of programmers simply have to learn the same hard-fought lessons of software engineering over and over again because each generation of tooling apparently scraps the paradigm over and over again in a vain attempt to create push-button, wizard-driven programming models. They nearly all suffer from &#8216;hello world&#8217; programming &#8211; the simple examples that sell them to IT management are trivial to conquer using the wizards, but more complex problems (i.e. real world ones) are flat-out impossible. Thus these tools are always mirages which look great at a huge distance on the horizon but are flat lifeless salt pans of bleached skulls and bones on closer examination (or, maybe they are more like tar pits that look like a nice waterhole but one step into it and you are sucked down   to your doom).</p>
<p>As you might be able to tell, I am utterly contemptuous of many of these SOA tool paradigms. I have nothing against SOA itself, <em>per se</em>. But there is nothing more productive than a programmer who understands the importance of simple and repeatable build and deployment automation using command line tools and who knows his programming <em>editor</em> inside out after ten years of use. Give that programmer a better language by all means, add incremental features to that IDE, allow the programmers to continuously improve their techniques, promote professional craftsmanship, yes, yes and a thousand times yes. But no amount of drag and drop wizards, push-button deployments, and &#8220;object inspector&#8221; property editors will ever usurp that deep knowledge a good programmer brings to both his language and his personal tooling choices.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/11/03/mistakes-you-can-make-with-soa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Out of the box experience</title>
		<link>http://www.crazymcphee.net/x/2009/10/06/out-of-the-box-experience/</link>
		<comments>http://www.crazymcphee.net/x/2009/10/06/out-of-the-box-experience/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 03:44:47 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[infrastructure and frameworks]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[profession]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=483</guid>
		<description><![CDATA[Every now and again we get some customers who expect that they can get a custom website, portal, or services integration done by looking at a vendor&#8217;s &#8220;out of the box&#8221; experience. This can be very frustrating for us, as we need to get into their heads that no platform will delivery any website, portal, [...]]]></description>
			<content:encoded><![CDATA[<p>Every now and again we get some customers who expect that they can get a custom website, portal, or services integration done by looking at a vendor&#8217;s &#8220;out of the box&#8221; experience. This can be very frustrating for us, as we need to get into their heads that no platform will delivery any website, portal, or integration &#8220;out of the box&#8221;. I classify this as a species of magical thinking.  This sort of thinking is so persuasive among many IT systems users that they will spend $500,000 on the infrastructure and $50,000 on the development effort. They are often shocked to discover that to get all the features they demand &#8211; even when those features can be delivered trivially from the chosen platform, costs time (and therefore money) often to the equivalent value of the software licensing. The &#8220;out of the box&#8221; approach can deliver excellent results in terms of a single-point-system, let&#8217;s say a CRM (e.g. sign up for a Salesforce account) but they don&#8217;t see to integrate that CRM into their custom warehousing system (for example) and linking all of that into a comprehensive product website involves completely customised software development. Every website, portal or integration scenario is custom &#8211; always. Unless it is somehow the case that you don&#8217;t mind that your website is the default &#8220;Welcome to Apache Tomcat&#8221; page.</p>
<p>In recent times I&#8217;ve seen this often enough that I think it&#8217;s really a failing of the IT industry in general, and we need to educate business IT users about the various scenarios and categories of software.</p>
<p>The simplest analogy I can think of is to say the website or portal is the letter, and the platform is the word processor.  Regardless if you use Word, Wordperfect, Pages 09, your email program or just plain old &#8216;notepad.exe&#8217;, at the end of the day the time to write the letter is pretty much the same effort and therefore the task is basically identical. If you said &#8220;I want you to help me to write a letter to my member of parliament&#8221;, should  I ask you whether you&#8217;re using the new letter wizard in Word? Have you seen this great &#8220;clippy&#8221; feature? Have you considered the new upgrade to Office 2007? Tell you to buy a Mac? Or would I be better off asking who is your member of parliament and what&#8217;s the matter about? When we get these sorts of naive clients we need to concentrate their minds on what their actual problem is and the best way we can solve it, when they&#8217;ve got their head in the sand thinking about that great drag-and-drop wizard feature the vendor showed them they totally thinking about the completely wrong thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/10/06/out-of-the-box-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile is dead</title>
		<link>http://www.crazymcphee.net/x/2009/06/23/agile-is-dead/</link>
		<comments>http://www.crazymcphee.net/x/2009/06/23/agile-is-dead/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 05:49:44 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[infrastructure and frameworks]]></category>
		<category><![CDATA[professional practice]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[profession]]></category>
		<category><![CDATA[vendors]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=400</guid>
		<description><![CDATA[I know that&#8217;s a pretty bold statement but here&#8217;s why. This morning I went to a vendor&#8217;s presentation morning, it was the usual game of buzzword bingo from the very first slide on. All the usual enterprise2.0, social-networking, portal-compliant, content-management, vertically-integrated, SOA-BPM-UCM-JEE-ESB-WS-BPEL platform-framework-enabling scalability-enhancing fun-lovin&#8217; don&#8217;t write code but manage-the-enterprise-blog-wiki-twitter-facebook-youtube shopping cart drag-n-drop non-content that [...]]]></description>
			<content:encoded><![CDATA[<p>I know that&#8217;s a pretty bold statement but here&#8217;s why. This morning I went to a vendor&#8217;s presentation morning, it was the usual game of <em>buzzword bingo</em> from the very first slide on. All the usual enterprise2.0, social-networking, portal-compliant, content-management, vertically-integrated, SOA-BPM-UCM-JEE-ESB-WS-BPEL platform-framework-enabling scalability-enhancing fun-lovin&#8217; <em>don&#8217;t write code</em> but manage-the-enterprise-blog-wiki-twitter-facebook-youtube shopping cart drag-n-drop <em>non-content</em> that we have all come to expect from the big vendors was fully in attendance.</p>
<p>But the real kicker was a presentation on <em>Agile Integration</em>, by one of the vendor&#8217;s partners (and in the interests of disclosure, a competitor to my own employer). A few slides in and there&#8217;s the inevitable &#8220;what is agile&#8221; slide with a standard dictionary definition and some lip-service to previous history. Now the thing here of course, is that the word <em>Agile</em> in software development parlance is by now a well-entrenched piece of <em>jargon</em> &#8211; it has a specific meaning to most people that is fairly precise and different to just the garden-variety common English usage. This is the purpose of jargon in a discipline: to be precise in communication. And the <a href="http://agilemanifesto.org/" target="_blank">agile manifesto</a>, nearly 10 years old, just means in effect, if you&#8217;re in the software development game you just can&#8217;t redefine the term to mean something else.</p>
<p>Except of course, you <em>can</em>, if you do, and you&#8217;re <em>big</em> enough and enough people listen to your incredibly mangled marketoid-speak. <em>But implementing a SOA solution is not Agile</em>, no matter how many times you make an incredibly weak case that it is or how many times you repeat any other platform-orientated mantra. Yes, you read it right, according to the vendor&#8217;s partner at least, <em>SOA is Agile</em>.</p>
<p>This banality made me so angry, it was very lucky that straight after there was the morning coffee break because I was seething and it took all my self-discipline not to launch into an attack during the questions (easy picking, because there were no other questions asked!). I had to vent at my poor colleagues in the break.</p>
<p>Anyway, on my admittedly pessimistic reading it means that <em>Agile Is Dead</em>, as pretty soon we are going to find clients telling people, &#8220;Yeah we do agile, we bought the million-dollar SOA package off that vendor&#8221;, and then they&#8217;ll be saying the reason their integration projects are still failing is because they haven&#8217;t installed the very latest patchset, or upgraded to all-new <em>LEANsuite 17.4.15.8 release B</em> with the optional drag-n-drop Super-Agility add-in for Portals, Release 16f (the &#8220;f&#8221; is for &#8220;fail&#8221;).</p>
<p>At sushi train lunch afterwards, we made the observation that pretty much the vendor wants to be <em>all the food groups all at once</em>. Kind of like this bit of gluggy sushi I mistakenly lifted off the train:</p>
<div id="attachment_404" class="wp-caption alignnone" style="width: 310px"><a href="http://www.crazymcphee.net/x/wp-content/uploads/2009/06/img_0080.jpg"><img class="size-medium wp-image-404" title="bad sushi" src="http://www.crazymcphee.net/x/wp-content/uploads/2009/06/img_0080-300x225.jpg" alt="All the food groups. Nasty." width="300" height="225" /></a><p class="wp-caption-text">All the food groups. Nasty.</p></div>
<p>Now I&#8217;m not saying that you can&#8217;t do &#8220;SOA&#8221; with an agile process, if that&#8217;s your preferred architectural style, then if you are committed you can certainly develop it in an Agile fashion. You can&#8217;t afford however, to confuse the two things. If you do, that picture above is  what your enterprise will look like too if you mistake the <em>buzzword bingo</em> offered by vendors for actual <em>insight into agile development process</em>. Talk to an expert instead.</p>
<p>Sorry to be so negative, the whole morning pretty much sapped my will to live.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/06/23/agile-is-dead/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>In those OTHER multiverses, Oracle already bought it for $500mil</title>
		<link>http://www.crazymcphee.net/x/2009/05/21/in-those-other-multiverses-oracle-already-bought-it-for-500mil/</link>
		<comments>http://www.crazymcphee.net/x/2009/05/21/in-those-other-multiverses-oracle-already-bought-it-for-500mil/#comments</comments>
		<pubDate>Thu, 21 May 2009 11:40:54 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[poorly attempted humour]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=364</guid>
		<description><![CDATA[Strange IM conversation came my way the other night, whilst discussing some code a team I led wrote at a previous workplace, I think it highlights some crucial factors Oracle bring to the Enterprise Java World: anon 9:04PM [about that code] crazymcphee 9:05 PM well, it WAS perfect &#8230; CRAZY perfect anon 9:06 PM lol&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Strange IM conversation came my way the other night, whilst discussing some code a team I led wrote at a previous workplace, I think it highlights some crucial factors Oracle bring to the Enterprise Java World:</p>
<blockquote><p><strong>anon</strong> 9:04PM<br />
[about that code]</p>
<p><strong>crazymcphee</strong> 9:05 PM<br />
well, it WAS perfect &#8230; CRAZY perfect</p>
<p><strong>anon</strong> 9:06 PM<br />
lol&#8230;  no doubt it even spans a 2yr time frame and 2 organisational puchases later, with no impact</p>
<p><strong>crazymcphee</strong> 9:07 PM<br />
exactly. all future and past and alternative universe combinations taken care of forever. no changes necessary.</p>
<p><strong>anon</strong> 9:08 PM<br />
sweeet&#8230; it should be a product</p>
<p><strong>crazymcphee</strong> 9:08 PM<br />
oh it already is just not in this instantiation of the multiverse</p>
<p><strong>anon</strong> 9:08 PM<br />
this instance has finished run level 3 yet</p>
<p><strong>crazymcphee</strong> 9:08 PM<br />
but in those OTHER multiverses, Oracle already bought it for $500mil</p>
<p><strong>anon</strong> 9:09 PM<br />
hahaha, i can see you partying with ellison and his geisha girls ;D</p>
<p><strong>crazymcphee</strong> 9:09 PM<br />
tried a &#8216;sudo shutdown&#8217; but something&#8217;s threadlocked the kernel</p>
<p><strong>anon</strong> 9:10 PM<br />
then I stepped in a core dump</p>
<p><strong>crazymcphee</strong> 9:10 PM<br />
that&#8217;s why i&#8217;m hard at work building a mutiverse portal so i get me a slice of sweet ellison geisha-girl action</p>
<p>and here you are thinking about some OTHER sort of portal when i said i was working on an &#8216;Oracle 10g Portal Implementation&#8217;</p>
<p><strong>anon</strong> 9:11 PM<br />
don&#8217;t forget to add some proprietary and intrusive components that spread like a virus and grind all the other appservers to dust</p>
<p><strong>crazymcphee</strong> 9:12 PM<br />
well, that&#8217;s what at least half of those 10^100 multiverses full of new Indian IT grads are working on</p>
<p>I just send them a 500 page spec each month and they will get it to me at sometime before the death of this multiverse</p>
<p><strong>anon</strong> 9:13 PM<br />
that means it should be about ready by now, well as in it probably compiles in at least one of those multiverses, will be fully cmm lvl 5, yet not actually do what you asked</p>
<p><strong>crazymcphee</strong> 9:13 PM<br />
(oh by &#8216;spec&#8217; i mean, a drunken rant shouted into my mobile phone on the walk home)</p>
<p>well, yes, but i&#8217;m fully expecting it will meet oracle&#8217;s stringent marketing requirements</p>
<p><strong>anon</strong> 9:14 PM<br />
well shit, they have to do some work, what do they expect, 4 u to write the code as well</p>
<p>yes marketing tickbox on the packaging is the only requirements they really need</p>
<p><strong>crazymcphee</strong> 9:15 PM<br />
yeah, i mean, hell, we pay at least $5.50 a day per developer &#8230;</p>
<p>oh we don&#8217;t tell the DEVELOPERS about the marketing tickbox requirements! they are super-secret. we just slap those on the box at the end. when i say &#8216;end&#8217; i mean end of the box design process which has been ready for about 8 months now.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/05/21/in-those-other-multiverses-oracle-already-bought-it-for-500mil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Oracle 10g portlets in a continuous integration environment</title>
		<link>http://www.crazymcphee.net/x/2009/04/29/building-oracle-10g-portlets-in-a-continuous-integration-environment/</link>
		<comments>http://www.crazymcphee.net/x/2009/04/29/building-oracle-10g-portlets-in-a-continuous-integration-environment/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 07:15:37 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[professional practice]]></category>
		<category><![CDATA[tools and techniques]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[jsr168]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=336</guid>
		<description><![CDATA[Ignoring all the hints (to use wizards and manual deployments) from the Oracle information as to how to go about creating JSR168 portlets for the Oracle 10g Portal server, we have successfully designed a continuous integration environment for the Oracle portal environment for a client. The Oracle 10g portal server is the old-school Oracle app-server [...]]]></description>
			<content:encoded><![CDATA[<p>Ignoring all the hints (to use wizards and manual deployments) from the Oracle information as to how to go about creating JSR168 portlets for the Oracle 10g Portal server, we have successfully designed a continuous integration environment for the Oracle portal environment for a client. The Oracle 10g portal server is the old-school Oracle app-server portal environment, not the BEA environment. As such it&#8217;s pretty old school (the database is the World), but it did surprise us with a command line utility (&#8216;<em>dcmctl</em>&#8216;) that allows us to programmatically deploy components such as portlet WARs into the application server using nothing but simple shell scripts. Unfortunately no such programmatic control has been found yet for the actual portal configuration, but we are working on that (if you know how to programmatically control the configuration of an Oracle 10g Portal with the command line please leave a comment!).</p>
<p>Simply put, using nothing but a <em>/bin/bash</em> script and <em>wget</em> we scrape the latest version of the relevant artefacts from the Artifactory Maven repository. These artefacts are deployed (published) into the repository by the Hudson continuous integration build.</p>
<p>As they say, a picture tells a thousand words and I&#8217;ve included a schematic of the environment we have created below (image links to PDF).</p>
<p> </p>
<p><a href="http://www.crazymcphee.net/x/wp-content/uploads/2009/04/build-process.pdf"><img class="alignnone size-full wp-image-338" title="build-process" src="http://www.crazymcphee.net/x/wp-content/uploads/2009/04/build-process.png" alt="build-process" width="418" height="281" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/04/29/building-oracle-10g-portlets-in-a-continuous-integration-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle to buy Sun &#8230;</title>
		<link>http://www.crazymcphee.net/x/2009/04/20/oracle-to-buy-sun/</link>
		<comments>http://www.crazymcphee.net/x/2009/04/20/oracle-to-buy-sun/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 13:33:04 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=329</guid>
		<description><![CDATA[Yes, it&#8217;s true. Oracle and Sun have both announced the marriage. Techcrunch has the full press release. ZDnet some other commentary. A few people seem to be sweating about MySQL. It would not be stressing about MySQL too much. It could get spun off, who knows. It&#8217;s even possible, as some commenters on Techcrunch say, [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, it&#8217;s true. Oracle and Sun have both announced the marriage. <a href="http://www.techcrunch.com/2009/04/20/oracle-to-buy-sun-hold-on-to-your-hats/" target="_blank">Techcrunch</a> has the full press release. <a href="http://blogs.zdnet.com/BTL/?p=16598" target="_blank">ZDnet</a> some other commentary.</p>
<p>A few people seem to be sweating about MySQL. It would not be stressing about MySQL too much. It could get spun off, who knows. It&#8217;s even possible, as some commenters on Techcrunch say, that Oracle might use the free MySQL offering to hammer Microsoft&#8217;s database market from the bottom-up</p>
<p>It&#8217;s more touch-and-go in the app-server market (what Oracle likes to call &#8216;middleware&#8217;) which is already suffering a little from Oracle&#8217;s transition over to BEA Weblogic from its older products. Sun has excellent products in that area, i.e. Glassfish. I have used all of these products (plus Websphere and JBoss) and Glassfish is <em>easily</em> the nicest (in fact I would say it&#8217;s the best app-server I&#8217;ve used, apart from plain old Tomcat).</p>
<p>And what will happen to Java? Of course, Oracle wants Java, that&#8217;s part of the reason they are buying Sun in the first place (as well as their hardware business). But will IBM play along now it&#8217;s most critical competitor owns Java (and IBM has previously bet its software integration farm on the Java stack)? And what of the JCP?</p>
<p>Even more worrying for some, is what will happen in the IDE space. Of course, I&#8217;m a confirmed Eclipse man, but it is always a worry when competition is reduced. What will happen to Netbeans? And dare I say it &#8230; JDeveloper is fairly horrible compared to Netbeans but will that save either of them? Oracle&#8217;s got a lot invested into it&#8217;s tooling, which all runs on JDeveloper. As much as I prefer to just write <em>code</em>, that use <em>wizards</em>, Oracle does seem to have at least some customers in that area. Oracle&#8217;s development model tends to focus a <a href="http://www.crazymcphee.net/x/2009/02/14/gui-builders-modern-development-practices-and-vendor-lock-in/">little too much on magic wizards</a>. From the IDE-JDeveloper-to-the-app-server single click-to-deploy, drag-and-drop to create-the-control, easy-peasy wizardry, which I hate, because I think it gets in the way of <em>craftmanship</em>. It&#8217;s the Bunnings Warehouse of software development. Show me the command-line Oracle! you should remember, that Sun is most definitely a company built around the Unix shell prompt. Even with Oracle middleware, it&#8217;s definitely possible, I&#8217;ve just been working on command-line deployment automation for their older Orion-based app-server, they just don&#8217;t like to promote it.</p>
<p>I&#8217;m hoping that Sun can reverse-ferret them on that score and teach them about <em>Ant</em>, <em>Maven</em>, <em>/bin/sh</em> and the goodness of installations that are as simple as <em>tar xcf </em>in the spot you want to install it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/04/20/oracle-to-buy-sun/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>GUI builders, modern development practices, and vendor lock-in</title>
		<link>http://www.crazymcphee.net/x/2009/02/14/gui-builders-modern-development-practices-and-vendor-lock-in/</link>
		<comments>http://www.crazymcphee.net/x/2009/02/14/gui-builders-modern-development-practices-and-vendor-lock-in/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 02:22:34 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[infrastructure and frameworks]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[tools and techniques]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[weblogic]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=176</guid>
		<description><![CDATA[The Paranoid Engineer has declared &#8216;Screw All Gui Builders&#8216;, with an excellent example of the genre of code that can be produced by one such tool, contrasted against the much nicer hand-written code. Now I can certainly sympathise with his pain. The thing that really gets my goat up, and the subject of this post, [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://paranoid-engineering.blogspot.com/">Paranoid Engineer</a> has declared <a href="http://paranoid-engineering.blogspot.com/2009/02/screw-all-gui-builders.html" target="_blank"><em>&#8216;Screw All Gui Builders</em></a>&#8216;, with an excellent example of the genre of code that can be produced by one such tool, contrasted against the much nicer hand-written code. Now I can certainly sympathise with his pain. The thing that really gets my goat up, and the subject of this post, is when vendors use a GUI builder to lock the poor developer and the target <span style="text-decoration: line-through;">victim</span> sorry, enterprise, into their <em>entire product suite</em>.</p>
<p>My case-in-point <em>du jour</em> is Oracle&#8217;s new <a title="Oracle Rich Enterprise Applications" href="http://rea.oracle.com/" target="_blank">Rich Enterprise Applications</a> site and the associated technology.  On that site you will find a flash presentation of their technology around delivering and I quote:</p>
<blockquote><p>multi-channel capable applications that deliver desktop quality, highly interactive user experiences that are pre-integrated to enterprise class server technology.</p></blockquote>
<p>That sounds pretty good, might be of interest to me. Lets investigate further. Now, a lot this technology is built on top of standards, like JSF, and other commonly used technology like AJAX. The earlier version of the ADF component technology was donated to Apache where it lives as the <a title="Apache Trinidad" href="http://myfaces.apache.org/trinidad/index.html" target="_blank">Apache Myfaces Trinidad</a> project. The new components are built on top of these open sourced components. So far, so much is OK.</p>
<p>But, the kick in the tail can be seen in   even just in the quoted sentence above: <em>&#8220;pre-integrated to enterprise class server technology&#8221;</em> &#8211; they certainly don&#8217;t mean <em>Tomcat</em>, right? The point of the presentation is induce <em>lock in</em>. However I&#8217;m still willing to cut them some slack on this particular point. Of course, if you are thinking about using Oracle&#8217;s JSF technology, you probably are already committed to Oracle&#8217;s middleware technology anyway &#8211; and Weblogic is a perfectly good application server, if you need such advanced capabilities (and whether you actually do is another question for another day).</p>
<p>But what absolutely does my head in, is the insistence the only way to develop for this technology is to write it using their proprietary, non-standard developer technology, aka <em>JDeveloper</em>. This is the point where I have to say, I&#8217;m sorry Oracle, but &#8230; <em><strong>FAIL</strong></em>. <em>I actually don&#8217;t even care if your IDE is even the world&#8217;s best!</em> Or even if it comes as an Eclipse plugin. My beef with this sort of IDE integration is the total mind-set that it embodies. The IDE might have all the <em>drag-and-drop interface-building mojo</em> in all the world, but the code it produces will never, ever, stand up to a hand coded model driven off the target domain, using modern agile development techniques that are designed to ensure the most cost-effective, best-quality development delivering timely business process transformation (aka <em>value</em>) that the enterprise prioritises and chooses. Just look at the <a title="Oracle ADF FAQ" href="http://wiki.oracle.com/page/Oracle+ADF+FAQ?t=anon" target="_blank">ADF FAQ on the Oracle Wiki</a>.  Half the questions are related to the <em>IDE</em>. Here&#8217;s a <a title="Introduction to Oracle's ADF Faces" href="http://java.dzone.com/news/introduction-oracles-adf-faces" target="_blank">tutorial style introduction</a> that just assumes JDeveloper as the default way to get access to the Oracle JDF components.<em> </em></p>
<p><em>No, no a thousand times NO!</em></p>
<p>The biggest insult is the way that developers are treated as mere <em>commodities</em> in this whole process. They are just the warm bodies occupying the chair driving the interface. Much like the continually failed dream of <a title="Programmerless programming is just a mirage" href="http://www.crazymcphee.net/x/2009/01/17/programmerless-programming-is-just-a-mirage/" target="_self">developerless development</a>, their primary skill is seen as not &#8220;being a programmer&#8221; but &#8220;being a driver of a software package&#8221;. If I said, my financial skills and experience include 10 years Excel and 5 years MYOB &#8211; <em>I can haz CFO jobz now</em>? NO?! <em>Why not?</em> It&#8217;s insulting, that&#8217;s why not.</p>
<p>Software development is a profession, or at the very least a <em>craft</em>, and software developers should be able to choose their own tools. Obviously, some agreement has to be made organisationally, or at least across a single team or a whole project, to use a certain common toolset. Here&#8217;s one possible checklist:</p>
<blockquote><p>We&#8217;re writing a Java app, check. Deploying onto Weblogic, check. Database is Oracle 11g, check. We have <a href="http://www.crazymcphee.net/x/tag/scrum/">Scrum</a> as our process framework, check. <a href="http://www.crazymcphee.net/x/tag/test-driven-design/">TDD</a> is in our list of favoured engineering disciplines, check. Maven is our chosen build tool, check. Using Subversion for version control, check. Hudson for a continuous integration server, check. Writing the interface with Oracle ADF, check. Using Crossfire to deliver our web services, check. Spring for application wiring, check. Hibernate for persistence, check.</p></blockquote>
<p>Each of these things has to be agreed upon at an architectural and organisational level (and obviously I don&#8217;t mean to say that each of the above is the only choice for each type of item, I&#8217;m just giving <em>examples</em>).</p>
<p>You should note one very deliberate omission from that list, the IDE. <em>Architects</em> might impose a certain application server, a particular approach to application layering, and so on. The <em>developers</em> &#8211; at least the senior ones &#8211; have to choose and agree, for example, on whether to use Ant or Maven, CVS or SVN, Cruisecontrol or Hudson. But what they do not do, is force developers to favour Eclipse or IntelliJ or Netbeans or JDeveloper. What is the point of taking someone who is super-productive with a particular IDE&#8217;s keystrokes and  then forcing them to spend six months learning a whole new set, a new environment? That&#8217;s not productive! A developer needs to have the IDE <em>get out of the way</em>, become second nature &#8211; they need to be thinking about <em>code</em>, not where the menu is for the rename-method refactoring because they are unfamiliar with the keystrokes of the unfamiliar IDE. Keystrokes are <em>muscle memory</em>. You just think, <em>rename this method</em> and your fingers are already on the keys you need to press, without breaking your all-important <em>flow</em>. That&#8217;s how a developer is as <em>productive</em> as they can be. A productive development team should have a <em>mix</em> of IDEs (I&#8217;d propose that this would be statistically in proportion to the usage patterns of the common IDEs). Then we have the specific example of JDeveloper. I won&#8217;t even go into it except to say I&#8217;ve never heard a developer do anything but <em>curse</em> it, or maybe <em>laugh</em> at it. But it&#8217;s the laughter of the condemned man.</p>
<p>It&#8217;s something that vendors really need to get serious about. Rather than presenting me with a seamlessly integrated vision, from developer&#8217;s screen, through application server, to user&#8217;s screen, their technology presentations ought to think <em>discrete</em>. Each piece of technology ought to live and die on it&#8217;s own merits, something I&#8217;m sure Oracle&#8217;s ADF is perfectly capable of &#8211; without JDeveloper. If it&#8217;s not capable of being developed productively without JDeveloper, it&#8217;s already in the reject pile as far as I am concerned.</p>
<p>This essential information needs to be right up front. Don&#8217;t bury the information a thousand web sites deep in your developer portal. <em>Put it right there in the first presentation!</em> Separate the selling of the developer tooling from the selling of the user presentation frameworks and the server technology. Show me how I integrate Oracle ADF into TDD, into continuous integration, into the IDE of the developer&#8217;s choice. Because if you don&#8217;t, <em>you&#8217;ve already lost me as a potential customer</em>. This is the <em>real</em> future of software development. Look at where the major thought leaders of software development are taking development &#8211; open source frameworks, inversion of control, TDD, Domain Driven Design, Domain Specific Languages, Agile Methods, delivering real process transformation and business capability as early as possible &#8211; not <em>drag and drop with wizards</em>. FFS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/02/14/gui-builders-modern-development-practices-and-vendor-lock-in/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

