<?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; rants</title>
	<atom:link href="http://www.crazymcphee.net/x/category/rants/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.crazymcphee.net/x</link>
	<description>programming idiom and methodology</description>
	<lastBuildDate>Tue, 13 Jul 2010 21:56:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<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>0</slash:comments>
		</item>
		<item>
		<title>Glassfish is doomed in the &#8216;department&#8217;</title>
		<link>http://www.crazymcphee.net/x/2010/02/04/glassfish-is-doomed-in-the-department/</link>
		<comments>http://www.crazymcphee.net/x/2010/02/04/glassfish-is-doomed-in-the-department/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 10:25:18 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[infrastructure and frameworks]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[weblogic]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=508</guid>
		<description><![CDATA[There&#8217;s been lots of discussion the past six months about the fate of MySQL under the ownership of Oracle. Now that the purchase of Sun is complete, I&#8217;m much more concerned about the fate of the excellent JEE platform Glassfish. For example some people think that superior technology will prove to Oracle that Glassfish is [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been lots of discussion the past six months about the fate of MySQL under the ownership of Oracle. Now that the purchase of Sun is complete, I&#8217;m much more concerned about the fate of the excellent JEE platform <a href="http://glassfish.dev.java.net/">Glassfish</a>. For example some people think that superior technology will prove to Oracle that Glassfish is worth pursuing (see the <a href="http://java.dzone.com/news/oh-yes-sun-not-set-yet">comments on this dZone thread about Kenai.com</a>).</p>
<p>The problem for Glassfish, as <a href="http://www.theserverside.com/news/thread.tss?thread_id=59317">the  second sentence of this ServerSide article states</a> (see it straight from Oracle&#8217;s mouth <a href="http://blogs.sun.com/arungupta/entry/glassfish_strategy_by_oracle_sun">here</a>, and see also <a href="http://www.infoworld.com/d/open-source/oracle-reveals-strategy-glassfish-mysql-openoffice-and-solaris-914">here</a>) is that Oracle  view it as being used for &#8220;non-mission critical department apps&#8221;. Glassfish&#8217;s superior technology (or otherwise) just doesn&#8217;t come into it. It&#8217;s not a factor (as it rarely every is).</p>
<p>Not so long ago Oracle spent a <em>big</em> wad of money acquiring an app server (Weblogic) and then a stack of <em>more</em> money porting all its other products into it and branding the resulting <span style="text-decoration: line-through;">mess</span> platform &#8220;Oracle Fusion Middleware 11g&#8221;. Now not only do they have their <em>third</em> app server (OC4J/OAS, Weblogic and Glassfish), but the Sun product suite includes products that compete with various Fusion Middleware 11g products (portals, ESBs, and so on).   So on one hand you&#8217;ve got a &#8220;departmental&#8221; application server, which you can either licence for free by downloading the open-source version, or buy support for the fancier &#8216;Enterprise&#8217; version, and on the other, an expensive, full-stack-integrated (all the way to the IDE), fully-branded <em>strategic platform</em> that Oracle just invested a vast amount of money into, and have been pushing like crazy onto customers the past six months. And it is the same sales team that will sell both this licensed &#8220;departmental&#8221; Glassfish. Therefore if you say the magic words like &#8220;need a cluster&#8221; or maybe &#8220;we might build a portal&#8221;, or &#8220;we are considering adopting a service-orientated architecture&#8221;, lo and behold you&#8217;ll find the molto-dinero &#8220;Fusion Middleware&#8221; based solution installed all over your sorry arse quicker than you can say &#8220;<em>can you please explain this per-core with special CPU-architecture-loading-factor licencing schema to me once again and why is it a different price if I upgrade my hardware without adding any additional cores???</em>&#8220;.</p>
<p>Let&#8217;s dissect those &#8220;key points&#8221; of Oracle&#8217;s strategy announcement:</p>
<blockquote>
<table cellpadding="10">
<tr>
<th width="50%">
Key Point
</th>
<th width="50%">
What they meant to say
</th>
</tr>
<tr>
</tr>
<tr valign="top">
<td>GlassFish continues as the Java EE reference implementation and as an open source project.</td>
<td>
We see it as the way to dominate the direction of Java EE for at least two years, but for Larry&#8217;s sake don&#8217;t try to use it <em>in production</em>.
</td>
</tr>
<tr valign="top">
<td>Oracle&#8217;s strategic application server, Oracle WebLogic Server, together with GlassFish, provide world class Java EE infrastructure.</td>
<td>
Oracle&#8217;s strategic application server, Oracle WebLogic Server something something something provide world-class something something infrastructure.
</td>
</tr>
<tr valign="top">
<td>GlassFish Enterprise Server and WebLogic Server expected to share core components.</td>
<td>
We are the Borg. Resistance is futile. You will be assimilated.
</td>
</tr>
<tr valign="top">
<td>Oracle plans to add GlassFish Enterprise Server all WebLogic offerings.</td>
<td>
Hey, look at this cute free &#8220;reference implementation&#8221; thingy that comes free with Weblogic! You could use that to run your departmental Wiki instead of having to pay us another fortune for more Weblogic licences. Did you say &#8220;WIKI&#8221;? Did we tell you all about the great wiki-like Enterprise 2.0 features available in the Oracle Fusion Middleware 11g offering? How many test environments did you say you needed licences for?
</td>
</tr>
<tr valign="top">
<td>GlassFish Web Stack maintained for existing customers.</td>
<td>
Not available for sale.
</td>
</tr>
<tr valign="top">
<td>GlassFish Message Queue remains as the GlassFish messaging infrastructure.</td>
<td>
We&#8217;re not expecting to sell any licences of this. Just use Oracle Fusion Middleware&#8217;s SOA Suite 11g already. We&#8217;re fairly sure that&#8217;s got a message queue in it.
</td>
</tr>
<tr valign="top">
<td>Oracle plans to license GlassFish Enterprise Server and Java System Web Server with all WebLogic Server offerings.</td>
<td>
See above.
</td>
</tr>
<tr valign="top">
<td>GlassFish also available as standalone offering.</td>
<td>
Are you sure you didn&#8217;t mean to say &#8220;Weblogic&#8221;? No? Can you call back next Thursday at 2pm and ask for Fred? We&#8217;re reasonably certain he might know something about that Glassthingy.
</td>
</tr>
<tr valign="top">
<td>GlassFish will continue to be supported and maintained for an extended time period for customers current on support.</td>
<td>
Well, the lawyers said we had to. We know how to do this. Ask any 10g customer.
</td>
</tr>
<tr valign="top">
<td>GlassFish open source projects thrive</td>
<td>
As long as we will let them.</td>
</tr>
</table>
</blockquote>
<p>I know I&#8217;m a completely cynical bastard about these things, but I will wager within a few months that even if you deliberately ask for Glassfish Enterprise <em>directly</em> that you&#8217;ll have to fight off the Weblogic borg absolutely <em>tooth and nail to the last man</em> as they repeatedly try to board your IT department brandishing their integrated-wizard-driven <em>Red Stack</em>. I predict that, basically, after a year of not even <em>trying</em> to sell any Glassfish licences &#8211; because if you ask for any of the features that are in the licenced version and not the open-source one, you&#8217;ll be pushed to Weblogic (and anyway, at ten times the price they&#8217;ll prefer to sell you Weblogic as a default position, after all &#8220;Glassfish comes free with Weblogic&#8221;) &#8211; Oracle will announce, &#8220;there&#8217;s no sales in it&#8221;, then probably ditch the licenced Glassfish version completely, leaving only the open source version. Finally sometime after that they&#8217;ll cut the open source funding off and it will have to limp along without hardly any of the resources it formerly had. Maybe they&#8217;ll donate it to the ghetto of an Apache incubator project where it can die unnoticed a couple of years after that.  It&#8217;s a pity because IMHO Glassfish is ten thousand times a better app server than anything Oracle ever produced, or even bought before this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2010/02/04/glassfish-is-doomed-in-the-department/feed/</wfw:commentRss>
		<slash:comments>11</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>American Express are enablers of security threats</title>
		<link>http://www.crazymcphee.net/x/2009/09/14/american-express-are-enablers-of-security-threats/</link>
		<comments>http://www.crazymcphee.net/x/2009/09/14/american-express-are-enablers-of-security-threats/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 00:14:22 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[american express]]></category>
		<category><![CDATA[amex]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=471</guid>
		<description><![CDATA[Peter Newton, &#8220;Director of Marketing&#8221; at American Express Australia Limited ABN 92 108 952 085, really likes Russian Mafiosa. Or maybe it&#8217;s Chinese Triads, bikie gangs, or maybe some local spivs operating out of a small rented smash repair shop near Beenleigh. Perhaps all of the above. Look at this email I got in my [...]]]></description>
			<content:encoded><![CDATA[<p>Peter Newton, &#8220;Director of Marketing&#8221; at American Express Australia Limited ABN 92 108 952 085, really likes Russian Mafiosa. Or maybe it&#8217;s Chinese Triads, bikie gangs, or maybe some local spivs operating out of a small rented smash repair shop near Beenleigh. Perhaps<em> all of the above</em>. Look at this email I got in my inbox this morning:</p>
<div id="attachment_472" class="wp-caption alignnone" style="width: 310px"><a href="http://www.crazymcphee.net/x/wp-content/uploads/2009/09/Screen-shot-2009-09-14-at-09.34.36-.png"><img class="size-medium wp-image-472" title="American Express email phishing attempt ... by American Express" src="http://www.crazymcphee.net/x/wp-content/uploads/2009/09/Screen-shot-2009-09-14-at-09.34.36--300x263.png" alt="American Express email phishing attempt ... by American Express" width="300" height="263" /></a><p class="wp-caption-text">American Express email phishing attempt ... by American Express. Click to see full size.</p></div>
<p>This email is signed, with a little jpg at the bottom, &#8220;Peter Newton&#8221;, Director of Marketing, because, you know, that makes it more <em>trustworthy</em>. BTW, at the bottom of the email (not in the picture) it says &#8220;You can contact American Express Customer Service for further information. Unfortunately we can not accept incoming emails to this address&#8221;, snail mail only, FFS.</p>
<p>It appears quite clear to me that American Express possesses an unbelievable <em>commitment</em> to training their customers to accepting any roughly legitimate-looking email or incoming phone call (see below) as authentic, and having them hand over their <em>valuable financial information</em> to who knows what is at the other end. This email is totally incredible &#8211; but yet it is legitimate, I checked the linked addresses before I, nonetheless, still marked it as a &#8220;phishing attempt&#8221; in Gmail. Look at those security melting links! &#8220;If you have forgotten your user ID or password, please click here&#8221; (!!!). Amex, you are not some pissy little forum I visited once three years ago that can send an email with a link to the password recovery, you are a bloody <em>financial service</em>. <em>This stuff is a massive security FAIL, you idiots.</em></p>
<p>I will note in passing that my bank has a line in their online banking website that says to the effect &#8216;we will never email you about this service&#8217;.  They do send me an email that says &#8220;your online statements are available&#8221; but <em>there&#8217;s not a single link in the email</em>. Dear Amex, there is a good reason they never do that! Thank god my current credit balance is zero &#8211; although come to think of it that makes me more worried that someone could be stealing <em>more</em> of my credit limit <em>right now</em>.</p>
<p>As I hinted above with the comment about &#8220;incoming phone calls&#8221;, this is not the first time I&#8217;ve discovered that Amex likes to operate in complete contradiction to the rules of good security practice. A few years ago I was rung on my mobile phone by their customer service department; &#8220;This is xxx at American Express, we&#8217;d like to talk to you, but first can you identify yourself with the following information?&#8221;, ran the voice at the other end of the line. No amount of me saying otherwise could persuade them it was a very bad idea: &#8220;Well, if you are really Amex, you&#8217;ll have all that detail on file in front of you, perhaps you ought to tell me that information to prove you are who you say you are. After all you rang me &#8230; &#8220;   I said I&#8217;d call them back &#8211; the operator tried to give me the number but I cut her short and said I&#8217;d use the number I already have, thank you very much. After I cleared the issue, I asked to speak to their relevant people and attempted to explain what was wrong with the entire scenario, but I doubt it had much effect, they just claimed &#8220;procedure&#8221; and read me a lot of boilerplate about how secure they are. But they are not, and here&#8217;s the evidence.</p>
<p>Dolts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/09/14/american-express-are-enablers-of-security-threats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mail.app alternatives &#8211; Mailplane FTW!</title>
		<link>http://www.crazymcphee.net/x/2009/08/15/mail-app-alternatives-mailplane-ftw/</link>
		<comments>http://www.crazymcphee.net/x/2009/08/15/mail-app-alternatives-mailplane-ftw/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 02:30:27 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google mail]]></category>
		<category><![CDATA[mac software]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mail.app]]></category>
		<category><![CDATA[mailplane]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[spanning sync]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=440</guid>
		<description><![CDATA[Based on the post from the other day about Mozilla Thunderbird as an alternative to Apple&#8217;s Mail.app, I got a recommendation on the straight-talking java mailing from Joey Gibson to check out the commercial application Mailplane. After a day playing with it, I&#8217;ve now bought a license. Now Mailplane isn&#8217;t your average mail program &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Based on the post from the other day about <a href="http://www.crazymcphee.net/x/2009/08/13/mozilla-thunderbird-as-alternative-to-mac-mail-app-road-test/">Mozilla Thunderbird as an alternative to Apple&#8217;s Mail.app</a>, I got a recommendation on the <a href="http://groups.yahoo.com/group/straight_talking_java/">straight-talking java</a> mailing from <a href="http://joeygibson.com/">Joey Gibson</a> to check out the commercial application <a href="http://mailplaneapp.com/">Mailplane</a>. After a day playing with it, I&#8217;ve now bought a license. Now Mailplane isn&#8217;t your average mail program &#8211; what it is a webkit-based wrapper around <a href="http://mail.google.com/">Gmail</a> with some added extras, like integration with the Apple Address Book. Unfortunately, it doesn&#8217;t have integration with the Apple iCal program. I have also been using <a href="http://www.spanningsync.com/">Spanning Sync</a> for a while now to keep my Apple and Google calendars and address books in sync, so I don&#8217;t really mind the Gmail centricity of Mailplane. You need to have a Gmail account and it will only with with Gmail. It uses the Gmail interface so it doesn&#8217;t store your emails locally (unless you get the beta version and use the Google-Gears-driven &#8220;offline&#8221; mode).</p>
<p>As for non-Google email, my work uses Exchange &#8211; and I can&#8217;t reach an secure port for that without firing up the work VPN, so usually I use the shockingly clunky webmail alternative anyway &#8211; so its not like I am losing out on any functionality. I have a .mac address which truth be told doesn&#8217;t get used that much &#8211; and Gmail can suck in pop-based email into it&#8217;s own accounts anyway. It can be used with an unlimited number of Gmail accounts.</p>
<p>If you are a Gmail user on a Mac, I&#8217;d definitely recommend having a look at Mailplane.  It&#8217;s a nice way to get the Gmail-native way of handling email (which generally I love)  onto the Mac. I think its needs some improvement, such as integration into Apple&#8217;s iCal, and perhaps, if possible, the abstraction of some of the Gmail interface elements (such as gmail&#8217;s list of labels) out into native interface widgets.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/08/15/mail-app-alternatives-mailplane-ftw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mozilla Thunderbird as alternative to Mac Mail.app</title>
		<link>http://www.crazymcphee.net/x/2009/08/13/mozilla-thunderbird-as-alternative-to-mac-mail-app-road-test/</link>
		<comments>http://www.crazymcphee.net/x/2009/08/13/mozilla-thunderbird-as-alternative-to-mac-mail-app-road-test/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 02:03:07 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[mac software]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mail.app]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[thunderbird]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=434</guid>
		<description><![CDATA[This morning my Mac&#8217;s Mail.app actually ate two emails I wrote and didn&#8217;t send them or save them in my &#8216;Drafts&#8217; folder. Data loss is unacceptable, so I searched for an alternative. It seems the best alternative on offer is Thunderbird, which I used to use in my Windows and Linux days. Thunderbird 2 doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>This morning my Mac&#8217;s Mail.app actually ate two emails I wrote and didn&#8217;t send them or save them in my &#8216;Drafts&#8217; folder. Data loss is unacceptable, so I searched for an alternative. It seems the best alternative on offer is Thunderbird, which I used to use in my Windows and Linux days.</p>
<p>Thunderbird 2 doesn&#8217;t integrate with the Macintosh Address Book, so that rules it out straight away, had to go straight to Thunderbird 3 beta. I got the latest, beta 3, released in July.</p>
<p>After about 5 minutes with Thunderbird 3 beta I was telling it to <em>go fsck itself</em>. Here&#8217;s why:</p>
<ol>
<li>Installing Thunderbird 3 &#8211; what&#8217;s with the &#8220;@googlemail.com&#8217; for Gmail? I use &#8216;@gmail.com&#8217; and always have and always will. That&#8217;s the option I want. Oh sweet lord, it will force me to use @googlemail.com &#8211; that&#8217;s a <em>disaster</em> right there. Can be edited later, however, I discover. But still.</li>
<li>Thunderbird 3  &#8220;integrates&#8221; with the Mac address book, which is to say it will pull addresses from it, but it does this through it&#8217;s own horrible, horrible, interface. Bad Mozilla! I want to use &#8211; at all times &#8211; the Apple &#8216;Calendar.app&#8217; and &#8216;Address Book.app&#8217;, OK? Their user interfaces. Not yours.</li>
<li>I got some mail with pictures in it. I can view the pictures by selecting &#8220;view external content&#8221; button for this one email. If I select the &#8220;always view external content for xxxx&#8221; it wants to add the sender to the address book (it&#8217;s internal address book). <em>No Mozilla</em>, that&#8217;s not what I&#8217;m asking for. I just want the graphics for that newsletter I get sent to be shown without me pressing extra buttons every time I get this newsletter. I don&#8217;t <em>want</em> their address in my address book!</li>
<li><em>Arrrrgh! My eyes!</em> Jesus it&#8217;s ugly. And clunky. It feels like Windows all over again. Good lord. I can&#8217;t find any way to change the list display fonts. It&#8217;s probably in there somewhere, I will admit, but I can&#8217;t find it.</li>
<li>Every single folder, I have to individually select &#8220;view by thread&#8221;, as far as I can tell.</li>
<li>Search is an entirely separate window/dialogue. I can&#8217;t search more than one account at once. &#8220;Search Subfolders&#8221; at the top level includes Spam folder. There doesn&#8217;t seem to be a way to add a criteria that &#8220;Message is not spam&#8221;.</li>
<li>The terrible search function is the only basis for &#8220;Smart Folders&#8221; that I can find so far, therefore it won&#8217;t work for what I need. In Mail.app, I use three smart folders:
<ol>
<li> All unread mail in <em>any</em> account or sub-folder thereof</li>
<li>All mail in the <em>Inbox</em> of any of my three &#8220;personal&#8221; accounts, that is, mail directly addressed to me personally.</li>
<li>All mail in the <em>Inbox</em> of my work mail account.</li>
</ol>
</li>
<li>On the plus side, it does have good support for keyboard commands. I&#8217;m an old <em>mutt</em> user (before that, <em>elm</em>) so I love keyboard commands in my mail program. Mail.app has rubbish support for this.</li>
<li>Also on the plus side, Thunderbird&#8217;s threading display is a little clearer. Mail.app just puts all messages in a thread under the one hierarchy, you don&#8217;t get any sense of what message is a reply to which.</li>
</ol>
<p>OK  Apple Mail.app lost some sent mail  <em>once</em> in the middle of a godawful crash (but a crash nonetheless), and I&#8217;ve always hated its horrible keyboard support. However maybe I am willing to take those risks and annoyances  if <em>this</em> is the alternative experience. I know that Mozilla is open source, and full of all that open sorcery goodness, but I live and die via my email program, right after my IDE, and I want a pretty nice experience with it. Thus, I&#8217;m now in a bind &#8211; use a program that just proved to me its data integrity is not 100%, or use a program that that just gives me a truly horrible user experience and wants to screw with my choice of Calendar and Address Book?</p>
<p>Mac email program suggestions in the comments if you like (and no, don&#8217;t suggest <em>Entourage</em>, it&#8217;s completely off the menu).</p>
<p><em>UPDATE</em>: I should mention that, for me, the deal killers are points 2, 6, and 7.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/08/13/mozilla-thunderbird-as-alternative-to-mac-mail-app-road-test/feed/</wfw:commentRss>
		<slash:comments>2</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>To do redux</title>
		<link>http://www.crazymcphee.net/x/2009/06/07/to-do-redux/</link>
		<comments>http://www.crazymcphee.net/x/2009/06/07/to-do-redux/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 22:50:45 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[professional practice]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[profession]]></category>
		<category><![CDATA[refactor]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=393</guid>
		<description><![CDATA[I just want to answer the anonymous &#8220;process nazis&#8221; trackback on yesterday&#8217;s &#8216;//TODO&#8217; Considered Harmful post, because that blog desn&#8217;t allow comments without a login. Quite apart from issues with Godwin&#8217;s Law (and that the writer has enumerated a bunch of rules that get &#8220;violated&#8221; then accuses other people of being process nazis), the post [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to answer the anonymous &#8220;<a href="http://chaosinmotion.com/blog/?p=279">process nazis</a>&#8221; trackback on yesterday&#8217;s <a href="http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/">&#8216;//TODO&#8217; Considered Harmful</a> post, because that blog desn&#8217;t allow comments without a login. Quite apart from issues with Godwin&#8217;s Law (and that the writer has enumerated a bunch of rules that get &#8220;violated&#8221; then accuses <em>other</em> people of being process nazis), the post severely misattributes both my post, and also, I think, misunderstands what agile methodologies are all about.</p>
<p>First, I no where made any &#8220;assertion that if you are putting ‘//TODO’ markers in your code, you’re somehow not properly following the Scrum process&#8221; &#8211; I said if you find yourself using &#8216;//TODO&#8217; markers in your code you are being prevented from getting to done-done and that you should &#8220;<em>Identify the problem, propose a counter-measure and fix the process</em>&#8220;. I can&#8217;t emphasise that enough. &#8220;Fix the process&#8221; does not mean &#8220;follow scrum&#8221; but rather to use your team&#8217;s collective brain to work out what stops you from fixing the code then and there and propose a solution to the problem.</p>
<p>I think &#8216;//TODO&#8217; should either be in the current story (I will concede that you might want to use a &#8216;//TODO&#8217; to remind yourself about tasks in your current story, i.e. &#8220;come back here tomorrow when I add the validation&#8221;) or in the &#8220;backlog&#8221;. I put &#8220;backlog&#8221; in quotes there to point out I mean &#8220;backlog&#8221; in the broadest sense, if you using Scrum or XP that&#8217;s actually where the work-to-be-done is physically kept, but if you have some other process then your &#8220;backlog&#8221; is kept somewhere else, and what is preventing you from adding to it?</p>
<p>I will ask a question of the anonymous poster &#8211; at what point exactly  is a &#8216;//TODO&#8217; comment left decaying in the codebase without a story for days or weeks <em>a good idea</em>? Or is it that you just do not want to make what it is being done in the code base <em>transparent</em> to those who are paying your bills?</p>
<p>I will contend; &#8216;//TODO&#8217; never gets done because the product owners never see them. They act as an opaque barrier to open communication. If you find a &#8216;//TODO&#8217;, lets say a big major refactoring will be needed to support a story you already see in the backlog, what&#8217;s the problem with having an open and honest communication with the <em>team</em> about the story&#8217;s estimate? If it&#8217;s a future story, i.e. feature related, it should be in the &#8220;backlog&#8221;; if it is code or design related which impacts you now, either it should be done then and there (<a href="http://www.extremeprogramming.org/rules/refactor.html">refactor mercilessly</a>) or it&#8217;s a bug which you either fix or raise a bug report for, and if it&#8217;s just some nebulous &#8220;improvement&#8221; either do it now or <a href="http://c2.com/xp/YouArentGonnaNeedIt.html">YAGNI</a>. If you&#8217;ve got great tooling like Mylyn for Eclipse you can drop a &#8220;task&#8221; at the code point and move on. The point there is the &#8220;TODO&#8221; isn&#8217;t obscured away in the code but rather <em>visible to all</em> because the &#8216;//TODO&#8217; is now either in your Wiki, your task-tracking tooling via it&#8217;s Mylyn integration, or is included as part of a story card on the story board.</p>
<p>If you can&#8217;t refactor mercilessly &#8211; what the post is <em>really</em> about &#8211; all the usual excuses apply, i.e. &#8220;we&#8217;re not confident about the code base not breaking in unknown ways&#8221; (i.e. no tests), &#8220;it has to be done by tomorrow,&#8221; <em>et cetera</em>, and all of these are <em>symptoms of dysfunction</em> in your organisation.</p>
<p>People love their little comfort zones and they don&#8217;t like being pushed out of them, that&#8217;s for sure, programmers included (yeah, and that&#8217;s a me too). <em>Habit</em> is not an excuse for avoiding improvement.</p>
<p>Here&#8217;s a great imaginary conversation from the C2 wiki entry about <a href="http://c2.com/xp/YouArentGonnaNeedIt.html">YAGNI</a> that I think applies here:</p>
<blockquote><p>&#8220;But Ron, I know how to do it right now, and later I might not.&#8221; </p>
<p>&#8220;So, Sam, you&#8217;re telling me that this class you&#8217;re writing is so complex that even <strong>you</strong> won&#8217;t be able to maintain it?&#8221;</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/06/07/to-do-redux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8216;One throat to choke&#8217;</title>
		<link>http://www.crazymcphee.net/x/2009/05/26/one-throat-to-choke/</link>
		<comments>http://www.crazymcphee.net/x/2009/05/26/one-throat-to-choke/#comments</comments>
		<pubDate>Tue, 26 May 2009 12:18:20 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[infrastructure and frameworks]]></category>
		<category><![CDATA[professional practice]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=371</guid>
		<description><![CDATA[Many developers will have heard this term used as a justification for buying all, or most, of an organization&#8217;s IT infrastructure from a single vendor. And it is, like most of these idiotic aphorisms bandied around IT management, a complete crock of excrement. It&#8217;s the sort of thing that salesmen must tell credulous IT management [...]]]></description>
			<content:encoded><![CDATA[<p>Many developers will have heard this term used as a justification for buying all, or most, of an organization&#8217;s IT infrastructure from a single vendor. And it is, like most of these idiotic aphorisms bandied around IT management, a complete crock of excrement. It&#8217;s the sort of thing that salesmen must tell credulous IT management right after the second bottle of Grange Hermitage at the pre-sales, post-golfing, dinner and drinks.</p>
<p>I&#8217;m working currently for a client, building a portal which will serve tens of thousands of users. In order to deliver reasonable functionality, we have to integrate to about a half-dozen other critical systems. Email servers (two different types/styles). Calendars (three different sources of calendar information). ERP systems containing customised enterprise information, HR and payroll, content management, identity management, and a couple of specialised web apps. This is supposedly held together with a single-sign-on system. The Portal, SSO, and ERP system all come from the one vendor, I won&#8217;t say which one, but it&#8217;s a big, major vendor. One Throat To Choke, they say. Well I call <em>bulldust</em>.</p>
<p>The thing is, the only throat&#8217;s that&#8217;s got any damage on it is the poor client&#8217;s, who has managed to have it&#8217;s own throat cut wide open and lies bleeding money on the pavement.</p>
<p>The really big gotcha, the huge hole in the way things get pitched to clients from vendors with the &#8220;we&#8217;ll take the blame&#8221; line, is the downright lies that get told to the client about the ease of integration. The portal technology we have, simply cannot propagate identity information across to the ERP&#8217;s web services (it&#8217;s even more fundamental than that, really). The whole part of this shooting match all comes from the same vendor &#8211; portal, ERP and authentication mechanisms. There is a slide in existence in a powerpoint that I&#8217;ve seen which claims this integration is trivial. I&#8217;ve seen a document from the vendor that claims this is possible, and gives a detailed procedure. But when you try it, it doesn&#8217;t work.</p>
<p>Worse, after you struggle with this integration for several days, and log a support call to the vendor (who by now, having banked the cheque, has disappeared from the site completely). Well, that&#8217;s a whole new kettle of fish trying to tell each and every newly minted support technician who deal with your support requests just what is meant by WSRP (you can substitute your own appropriate acronym which is central to your particular technology if you like), or even, the logical sequence of what you&#8217;re trying to do, which things are of significance, the repeated asking for the same basic irrelevant information over and over, the failure to understand what the question is, <em>ad nauseum</em>. Oh, then and only then do the special &#8220;support notes&#8221; come out, the ones which which warn against the particular configuration of products that the client has been sold, when the sales slides, and available documentation, and the sales pitch, told exactly the opposite as to what you get after you actually try it and experience the massive whoosh of fail that gushes out the products concerned. I&#8217;m just lucky that mostly, it&#8217;s not me who is having to deal with this particular problem. I grieve for my colleague though. We&#8217;ve lost days and days on what is a completely critical integration. Sold on a <em>lie</em> by people who don&#8217;t even know what it is they are selling. Where&#8217;s the blame, where&#8217;s the throat being choked? The vendor won&#8217;t take reponsibility for their own damn product suite&#8217;s lack of interoperability!</p>
<p>Just the other day on a different and unrelated support call for a different problem I had to explain how to read a stack-trace, twice, to the support personel involved. Although we cleared the support problem ourselves, that is we found a tedious work-around that at least got us back on the path of writing code, we want an explanation as to what the product is actually doing, so we&#8217;ve left the job open. But in that case, the support feedback has been dead a week with no follow up on the matter with the job still critical, unresolved and outstanding, as far as the vendor should be concerned (because we told them so).  Hello? &lt;cue cavenous reverb effect&gt;. &lt;tumbleweeds&gt;.</p>
<p>The hilarious thing is, the funky little systems the client has already installed, with competent programmers in the client&#8217;s own employ looking after the other end, look like a joy to integrate against: trivial, almost. Developer on site.</p>
<p>I can&#8217;t believe in this day and age these big vendors sell <em>anything</em> to anyone. Hasn&#8217;t everyone been burnt like this one too many times? I&#8217;ve dealt with other similar big vendors in the past. They are all the same basically. Snake oil salemen selling an oily tar-pit of overcomplexification as if it were the <em>acqua vitae</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/05/26/one-throat-to-choke/feed/</wfw:commentRss>
		<slash:comments>0</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>
	</channel>
</rss>
