<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>niksilver.com &#187; Technology</title>
	<atom:link href="http://niksilver.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://niksilver.com</link>
	<description>Mostly about the management of software development</description>
	<lastBuildDate>Wed, 01 Feb 2012 20:37:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='niksilver.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/929dd549b4d099719f34e472d1f7a25a?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>niksilver.com &#187; Technology</title>
		<link>http://niksilver.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://niksilver.com/osd.xml" title="niksilver.com" />
	<atom:link rel='hub' href='http://niksilver.com/?pushpress=hub'/>
		<item>
		<title>Less technology is better technology</title>
		<link>http://niksilver.com/2011/07/21/less-technology-is-better/</link>
		<comments>http://niksilver.com/2011/07/21/less-technology-is-better/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 04:58:21 +0000</pubDate>
		<dc:creator>Nik</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://niksilver.com/?p=1288</guid>
		<description><![CDATA[In the Guardian development team we continually talk about the naturally increasing complexity of our codebase &#8212; there are always new features to add, so it always gets more complex. On the hardware side, a couple of articles recently ([1], [2]) have pointed out the ubiquity of smartphones, and how a business&#8217;s IT function might &#8230; <a href="http://niksilver.com/2011/07/21/less-technology-is-better/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=1288&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In the Guardian development team we continually talk about the naturally increasing complexity of our codebase &#8212; there are always new features to add, so it always gets more complex. On the hardware side, a couple of articles recently (<a href="http://blogs.hbr.org/cs/2011/07/coming_to_terms_with_the_consu.html">[1]</a>, <a href="http://www.infoworld.com/t/it-management/10-truths-it-must-learn-accept-934">[2]</a>) have pointed out the ubiquity of smartphones, and how a business&#8217;s IT function might deal with that &#8212; there&#8217;s a danger of company information leaking, but it&#8217;s an unavoidable reality that employees expect to own and use technology that&#8217;s slicker than than their standard issue corporate hardware.</p>
<p><a href="http://www.flickr.com/photos/nhussein/3583560407/"><img class="alignright size-full wp-image-1292" title="Less technology is better technology" src="http://niksilver.files.wordpress.com/2011/07/less-technology1.jpg?w=750" alt="Less technology is better technology"   /></a>In general, and in both cases above, I would say less technology is better.</p>
<p><strong>Less software</strong></p>
<p>More software features can be better, but it comes at a price. More software means more staff to maintain it, or slower progress as new features are added onto a more complex system. Or both. That in turn means greater costs (and almost certainly decreasing profitability) and a loss of momentum in the market.  Good architecture can help manage this (for example, see the Guardian&#8217;s micro-app framework), but it won&#8217;t solve it entirely. More features can also mean more complexity for users, and hence less engagement. At some point new features have to stop going in.</p>
<p>But less technology doesn&#8217;t necessarily mean less capability. To give one example: Guardian.co.uk has <a href="http://www.guardian.co.uk/media/video/2011/jul/19/rebekah-brooks-mps-questions">its own video player</a>, but <a href="http://www.guardian.co.uk/media/pda/2011/jul/15/viral-video-chart-harry-potter-xfactor">journalists can embed YouTube videos</a>, too. Had we not have chosen to develop our own player (built <a href="http://blog.brightcove.com/en/2007/10/guardian-news-media-signs-brightcove-customer-uk">on top of Brightcove&#8217;s technology</a>) then the capability to put videos onto our website would remain.</p>
<p><strong>(But not &#8220;no software&#8221;)</strong></p>
<p>The Guardian software team, by the way, needs to enable not just  video on web pages. If it did, then YouTube alone would be a sufficient  solution. However, we also need to enable video distribution and  syndication across a variety of platforms, so an in-house player  fronting a well-managed back-end store is important. That also explains  why &#8220;no technology&#8221; is also inappropriate, <a href="../2008/07/12/buzzmachine-goes-clunk-when-media-companies-do-tech/">as I&#8217;ve said before</a> &#8212; even though it looks like the logical conclusion of &#8220;less technology is better technology&#8221;.</p>
<p><strong>Less hardware</strong></p>
<p>Turning to the case of smartphones, what is the internal technology team to do? I disagree with <a href="http://blogs.hbr.org/cs/2011/07/coming_to_terms_with_the_consu.html">the viewpoint of R &#8220;Ray&#8221; Wang on the HBR Blog Network</a>. He seems to be saying that for the corporate technology function to remain relevant they must be able to bless consumer technologies through standardisation and commoditisation:</p>
<blockquote><p>If IT slows down the business capability to innovate, the company will  suffer as new business models emerge and infrastructure will fail to  keep up.  If business moves ahead of IT in technology, then the company  fails because IT will spend years cleaning up technology messes. As  technologies mature, IT should take over the commoditized technologies  and drive efficiencies.</p></blockquote>
<p>I think that means the IT department should be buying smartphones for everyone, getting a bulk discount, and then giving them standard configs. Unfortunately it&#8217;s exactly that approach that led us here in the first place. Once upon a time, just before smartphones, the IT function bought lots of BlackBerrys and gave them out to the staff. This worked really well for a long time, but of course not everyone got to have a BlackBerry and then smartphones overtook them, and everyone had a different smartphone that they liked and which wasn&#8217;t locked down. BlackBerrys-for-many-if-not-all became a burden that was seen to be holding the staff back. No wonder Ray says &#8220;We&#8217;ve yet to see many organizations succeed&#8221; in this.</p>
<p>Buying smartphones for everyone is a &#8220;more technology&#8221; solution, and causes problems.</p>
<p>Instead, I think <a href="http://www.infoworld.com/t/it-management/10-truths-it-must-learn-accept-934">Dan Tynan at InfoWorld has the right attitude</a> when he says &#8220;bring your own device&#8221; is a reality, and the business has to embrace it. As one of their interviewees explains:</p>
<blockquote><p>&#8220;Unless IT supports the devices and technologies  users demand, the users  will simply go around IT and use personal tech  for business purposes [...] That is a much more dangerous situation from  a security  standpoint than supporting the consumer devices in the  first place.&#8221;</p></blockquote>
<p>I&#8217;m pleased to be working for an organisation which succeeds at this. You can use your smartphone to access your corporate mail as long as you adhere to certain reasonable security requirements. The company&#8217;s primary concern is managing the data.</p>
<p><strong>Towards a less burdened future</strong></p>
<p>As technology (software services like YouTube, and hardware like smartphones) becomes consumerised we in-house technologists have to question what we&#8217;re really here for. As Ray says, &#8220;For IT leaders accustomed to having control over corporate technology, this represents a huge challenge&#8221;. But the answer is not to find better ways of controlling what we used to control &#8212; it&#8217;s to verify what we should be enabling&#8230;</p>
<p>The enterprise tech team needs to be enabling secure e-mail access, and if it can do that without having to manage hundreds of devices then great. Similarly, as we saw above, the Guardian&#8217;s software team needs to enable distribution and syndication beyond the desktop web browser, so an in-house video player results. But YouTube is still an option &#8212; if it&#8217;s more convenient for journalists whose video content doesn&#8217;t need those additional channels then it&#8217;s a fine, lightweight option; and if those extra channels were never needed then we&#8217;d have been better off without the player and accompanying infrastructure.</p>
<p>Overall, having less technology is better.</p>
<br />Filed under: <a href='http://niksilver.com/category/technology/'>Technology</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/niksilver.wordpress.com/1288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/niksilver.wordpress.com/1288/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/niksilver.wordpress.com/1288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/niksilver.wordpress.com/1288/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/niksilver.wordpress.com/1288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/niksilver.wordpress.com/1288/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/niksilver.wordpress.com/1288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/niksilver.wordpress.com/1288/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/niksilver.wordpress.com/1288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/niksilver.wordpress.com/1288/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/niksilver.wordpress.com/1288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/niksilver.wordpress.com/1288/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/niksilver.wordpress.com/1288/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/niksilver.wordpress.com/1288/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=1288&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://niksilver.com/2011/07/21/less-technology-is-better/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ed5f211191ad95ff564f9972490f40b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">niksilver</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2011/07/less-technology1.jpg" medium="image">
			<media:title type="html">Less technology is better technology</media:title>
		</media:content>
	</item>
		<item>
		<title>Technology decisions are social decisions</title>
		<link>http://niksilver.com/2011/07/13/social-technology-decisions/</link>
		<comments>http://niksilver.com/2011/07/13/social-technology-decisions/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 07:11:33 +0000</pubDate>
		<dc:creator>Nik</dc:creator>
				<category><![CDATA[Software design]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://niksilver.com/?p=1279</guid>
		<description><![CDATA[A couple of things happened recently bringing home something that I&#8217;ve found increasingly important: technology decisions are social. Social decisions in software architecture The other day in conversation about team structures the Guardian&#8217;s lead software architect, Mat Wall, mentioned that architecture is social. This is a good, and often disregarded, observation. In that context he &#8230; <a href="http://niksilver.com/2011/07/13/social-technology-decisions/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=1279&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A couple of things happened recently bringing home something that I&#8217;ve found increasingly important: technology decisions are social.</p>
<p><strong><a href="http://www.flickr.com/photos/worldbank/5094162993/"><img class="alignright size-full wp-image-1285" title="People and technology - Photo by Jonathan Ernst" src="http://niksilver.files.wordpress.com/2011/07/people-computers1.jpg?w=750" alt="People and technology - Photo by Jonathan Ernst"   /></a>Social decisions in software architecture</strong></p>
<p>The other day in conversation about team structures the Guardian&#8217;s lead software architect, <a href="http://twitter.com/#!/matwall">Mat Wall</a>, mentioned that architecture is social. This is a good, and often disregarded, observation. In that context he meant that architectural decisions influence who works with who, what issues they need to sort out together, how they regard their work, and so on. Three examples&#8230;</p>
<p>The Guardian has an API that allows access to its content. That means that when developing an iPhone application the iOS team can work much more closely together, requiring less information about the guts of the back-end, and become more focused on the user experience.</p>
<p>Consider also the team embracing Scala. Our platform lead <a href="http://www.infoq.com/articles/guardian_scala">Graham Tackley has gone on record</a> to say that one consequence of this is that it has &#8220;reinvigorated the team&#8221;. That&#8217;s not the only reason to take up a technology, but it is a significant consideration.</p>
<p>Third, I&#8217;ll relate the story of one of our recent projects. The team devised four candidate architectures and needed to choose between them. The first decision was to make the call in conjunction with the business owner. The second decision was for them to ask not &#8220;which architecture do you prefer?&#8221; but rather &#8220;what do you want your business to look like?&#8221; Because each architecture had a different impact on the end users inside and outside the company: certain things would be difficult, others would be easy, etc.</p>
<p><strong>Social decisions in algorithms</strong></p>
<p>And it&#8217;s not just about architecture and software design. It&#8217;s true also of the more abstract matter of algorithms, as seen by a couple of examples from the masters (or should that be &#8220;slaves&#8221;?) of the algorithm: Google.</p>
<p>The most recent example concerns Google+. <a href="http://techcrunch.com/2011/07/09/scoble-problem-social-networks/">Rocky Agrawal wrote</a>:</p>
<blockquote><p>I finally blocked Robert Scoble in Google+. I have absolutely nothing against Scoble. I quite admire him, actually. He’s a great asset to the startup scene and he works damn hard. I’ve met him a few times and I’m sure we’ll meet again. But he was just getting to be way too much.</p>
<p>My Google+ feed was dominated by him. I tried to take a half-step and just remove Scoble from my circles. But then he became Google’s perpetual #1 suggestion for a new friend.</p></blockquote>
<p>Google have created an algorithm which provides recommendations, and of course highly-referenced people will be recommended more than others. But Robert Scoble&#8217;s star power is clearly so significant it&#8217;s ended up disrupting Rocky&#8217;s experience, and getting in the way of him using the service effectively. Clearly the algorithm needs to be tweaked for the optimum user experience, and how that is done is entirely at the discretion of Google engineers. They could cap the influence of exceptional stars like Scoble if they wanted. They have choices, and ultimately those choices are based on social, human instincts.</p>
<p>The second Google example comes from <a href="http://searchengineland.com/google-bing-is-cheating-copying-our-search-results-62914">the spat earlier this year between the Google search team and Bing</a>. Google noticed that Bing was copying some of its search results; they demonstrated this by deliberately generating irrelevant Google search results for particular nonsense queries, and then observing that the same results appeared in Bing for the same queries; Microsoft said, <a href="http://www.zdnet.com/blog/microsoft/microsoft-we-do-not-copy-googles-results/8557">sure, &#8220;We use multiple signals and approaches&#8221;,</a> including observing what search results people click on, even if those clicks happen to be by Google engineeers conducting a sting operation; Google cried foul; the world moved on.</p>
<p><a href="http://searchengineland.com/bing-why-googles-wrong-in-its-accusations-63279">What was happening</a> was that the Bing toolbar was tracking search results that the user clicked on. If a user had the Bing toolbar installed, did a Google search, and clicked on a link, then the toolbar would send a message back to Bing HQ saying &#8220;Hey, someone thought this link was good for this query&#8221; and Bing would consider that next time it needed to respond to the same query.</p>
<p>I found the whole episode quite amusing and slightly baffling, most notably <a href="http://googleblog.blogspot.com/2011/02/microsofts-bing-uses-google-search.html">these rather indignant words on the Official Google Blog</a>:</p>
<blockquote><p>At Google we strongly believe in innovation and are proud of our search quality. We’ve invested thousands of person-years into developing our search algorithms because we want our users to get the right answer every time they search, and that’s not easy. We look forward to competing with genuinely new search algorithms out there—algorithms built on core innovation, and not on recycled search results from a competitor.</p></blockquote>
<p>To be fair, I think that post was written before Google knew exactly how Bing was doing its job, but even so, they jumped to conclusions. My personal reading of the above is that &#8220;pure&#8221; algorithms using only digital, abstract data are good and acceptable, while algorithms that use human data and feedback from a wide variety of sources are cheating and bad.</p>
<p>Unfortunately that&#8217;s just wrong. Google may like to say they don&#8217;t editorialise and their search results are purely machine-generated. But what they choose to feed into their algorithm, and how they weight those things, is an entirely human affair influenced by very human traits: culture, prejudice, politics and more. That&#8217;s not a critique of Google or its staff; it&#8217;s a critique of human beings.</p>
<p><a href="http://jonathanstray.com/the-editorial-search-engine">Jonathan Stray has made this point, too.</a> He said &#8220;It’s impossible to build a computer system that helps people find or filter information without at some point making editorial judgements.&#8221; And he quoted Matt Cutts of Google: &#8220;In some sense when people come to Google, that’s exactly what they’re asking for — our editorial judgment. They’re expressed via algorithms.&#8221;</p>
<p>So however &#8220;pure&#8221; we think a technical decision might be, ultimately it&#8217;s not. Whether it&#8217;s software architecture, algorithms, or something else, it&#8217;s all influenced by and influences our social world.</p>
<br />Filed under: <a href='http://niksilver.com/category/software-design/'>Software design</a>, <a href='http://niksilver.com/category/technology/'>Technology</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/niksilver.wordpress.com/1279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/niksilver.wordpress.com/1279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/niksilver.wordpress.com/1279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/niksilver.wordpress.com/1279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/niksilver.wordpress.com/1279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/niksilver.wordpress.com/1279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/niksilver.wordpress.com/1279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/niksilver.wordpress.com/1279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/niksilver.wordpress.com/1279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/niksilver.wordpress.com/1279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/niksilver.wordpress.com/1279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/niksilver.wordpress.com/1279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/niksilver.wordpress.com/1279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/niksilver.wordpress.com/1279/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=1279&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://niksilver.com/2011/07/13/social-technology-decisions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://niksilver.files.wordpress.com/2011/07/people-and-technology-featured.jpg?w=141" />
		<media:content url="http://niksilver.files.wordpress.com/2011/07/people-and-technology-featured.jpg?w=141" medium="image">
			<media:title type="html">People and technology</media:title>
		</media:content>

		<media:content url="http://0.gravatar.com/avatar/ed5f211191ad95ff564f9972490f40b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">niksilver</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2011/07/people-computers1.jpg" medium="image">
			<media:title type="html">People and technology - Photo by Jonathan Ernst</media:title>
		</media:content>
	</item>
		<item>
		<title>Proprietary software: Like a Lego brick in plasticine</title>
		<link>http://niksilver.com/2011/03/14/proprietary-software/</link>
		<comments>http://niksilver.com/2011/03/14/proprietary-software/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 06:16:11 +0000</pubDate>
		<dc:creator>Nik</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://niksilver.com/?p=1045</guid>
		<description><![CDATA[We think software is soft, but that isn&#8217;t always true. I was speaking recently to a friend with a large system he was struggling to scale. I was saying while the Guardian does have to spend tangible time (and sometimes money) to ensure its systems scale, we do tend to deal with the issues successfully. &#8230; <a href="http://niksilver.com/2011/03/14/proprietary-software/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=1045&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/tim_norris/2782369046/in/photostream/"><img class="alignright size-full wp-image-1052" title="Photo by Tim Norris" src="http://niksilver.files.wordpress.com/2011/03/lego-plasticine2.jpg?w=750" alt="Photo by Tim Norris"   /></a></p>
<p>We think software is soft, but that isn&#8217;t always true.</p>
<p>I was speaking recently to a friend with a large system he was struggling to scale. I was saying while the Guardian does have to spend tangible time (and sometimes money) to ensure its systems scale, <a href="http://www.enterpriseirregulars.com/16687/the-guardian-nosql-eu-don%E2%80%99t-melt-the-database/">we do tend to deal with the issues successfully</a>. But that wasn&#8217;t his experience, to the extent he was considering tearing his system down and starting again.</p>
<p>We often think we can reconfigure and rework software, to adapt it to new circumstances. And often we&#8217;re correct. This is even the essence of agile development: get something useful out there, learn, and make it better.</p>
<p>But we need to think slightly differently when we&#8217;re dealing with proprietary software, as was at the heart of my friend&#8217;s system. It may be configurable, but it&#8217;s never as malleable as something open source or self-made. We&#8217;ll be working with the soft squishy stuff, then suddenly come to a hard black box which won&#8217;t flex. It&#8217;s like finding a piece of Lego while rolling out a ball of plasticine.</p>
<p>So there are different risks around using proprietary systems compared to more open ones. Proprietary systems allow us to do some things faster, and other things not at all. This doesn&#8217;t mean we should avoid them but it does mean we need to manage our projects accordingly. Activities need to be prioritised accordingly, and that may involve addressing earlier potential requirements which would lead to impossible changes. Thus it can have implications for project planning and (if it may mean changing our business-level expectations) governance.</p>
<br />Filed under: <a href='http://niksilver.com/category/technology/'>Technology</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/niksilver.wordpress.com/1045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/niksilver.wordpress.com/1045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/niksilver.wordpress.com/1045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/niksilver.wordpress.com/1045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/niksilver.wordpress.com/1045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/niksilver.wordpress.com/1045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/niksilver.wordpress.com/1045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/niksilver.wordpress.com/1045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/niksilver.wordpress.com/1045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/niksilver.wordpress.com/1045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/niksilver.wordpress.com/1045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/niksilver.wordpress.com/1045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/niksilver.wordpress.com/1045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/niksilver.wordpress.com/1045/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=1045&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://niksilver.com/2011/03/14/proprietary-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ed5f211191ad95ff564f9972490f40b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">niksilver</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2011/03/lego-plasticine2.jpg" medium="image">
			<media:title type="html">Photo by Tim Norris</media:title>
		</media:content>
	</item>
		<item>
		<title>The need (or otherwise) for a technology roadmap: Part 2</title>
		<link>http://niksilver.com/2010/12/08/technology-roadmaps-2/</link>
		<comments>http://niksilver.com/2010/12/08/technology-roadmaps-2/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 18:00:00 +0000</pubDate>
		<dc:creator>Nik</dc:creator>
				<category><![CDATA[Governance]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://niksilver.com/?p=879</guid>
		<description><![CDATA[In the first part of this post I considered four ways a technology roadmap might come about. I dubbed them the bureaucratic, the defensive, the directive and the aligned. The aligned roadmap in particular is the ideal way to deliver the overarching organisational goal. Now in this post I&#8217;m going to suggest that&#8230; Maybe you &#8230; <a href="http://niksilver.com/2010/12/08/technology-roadmaps-2/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=879&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In the first part of this post I <a href="http://niksilver.com/2010/12/06/technology-roadmaps-1/">considered four ways a technology  roadmap might come about</a>. I dubbed them the bureaucratic, the defensive,  the directive and the aligned. The aligned roadmap in particular is the  ideal way to deliver the overarching organisational goal. Now in this  post I&#8217;m going to suggest that&#8230;</p>
<p><strong><img class="alignright size-full wp-image-889" title="Sometimes a roadmap just won't be useful" src="http://niksilver.files.wordpress.com/2010/12/frogger1.jpg?w=750" alt="Sometimes a roadmap just won't be useful"   />Maybe you don&#8217;t need a roadmap</strong></p>
<p>So those are all respectable reasons to have a technology roadmap. But there are also respectable reasons to not have a roadmap.</p>
<p>To start with, not all companies have a clear strategy which  determines where it aims to be in the medium or long term. If our  company is like this then we can&#8217;t produce an aligned roadmap.</p>
<p>(By the way, that doesn&#8217;t mean our company doesn&#8217;t have a clear driver. <a href="http://steveblank.com/2010/11/18/crisis-management-by-firing-executives-%E2%80%93-there%E2%80%99s-a-better-way/">Steve Blank says</a> that &#8220;the purpose of a startup is the search for a business model (not  execution.)&#8221; So for startups at least it&#8217;s possible to have a strategy  without it leading to a technology roadmap.)</p>
<p>Next, we might think about a directive roadmap: &#8220;my company doesn&#8217;t  have a strategy or direction, so I&#8217;ll create opportunities and drive out  a strategy or direction from that&#8221;. But as we saw before, that has  risks associated with it, and ultimately the risks might not be worth  the reward.</p>
<p>Then, we might recognise that our department is in quite a healthy  organisational position, so doesn&#8217;t need to create a roadmap for  defensive reasons. Good for us. No point making grand plans for the sake  of it.</p>
<p>And finally, if no-one outside our team is demand a roadmap for its  own sake we aren&#8217;t looking to create a one to satisfy bureaucracy.</p>
<p>So what are we left with? Not much material from which to create a legitimate roadmap. Now there are two options.</p>
<p>Option one: forget it, and don&#8217;t worry. We don&#8217;t have a grand plan,  but it&#8217;s not as if there&#8217;s no work to do. There are still projects,  bugfixing and general consultancy that needs to happen. And as long we  don&#8217;t feel the need for structure in every aspect of our lives then we  will find nobility in honest labour. In fact, most people&#8217;s work is like  this.</p>
<p>Option two is what I&#8217;m going to call &#8220;lean roadmapping&#8221;. Just because  we can&#8217;t produce a roadmap with several milestones it doesn&#8217;t follow  that we can&#8217;t decide what the single next milestone is going to be. A  plan with only one milestone is hardly a roadmap, but it&#8217;s certainly  more than operational or project delivery.</p>
<p>As an example, we might see that the company is <em>generally </em>increasing its global sales, or that it&#8217;s <em>broadly </em>shifting to more corporate clients, or that customer responsiveness is <em>tending </em>to  become more central to the business. There&#8217;s no explicit strategy, but  there is a general direction nevertheless. It&#8217;s this kind of thing that  we can respond to. Increasing global sales may mean increasing support  for global working. More corporate clients may require a shift to a more  robust infrastructure. Customer responsiveness may mean better  integration of CRM-type systems.</p>
<p>By spotting a general direction we can work out our next milestone.  In fact, it would be wrong to work out any further milestones: there  isn&#8217;t a clear strategy and it would be an expensive mistake to act as if  there was. We might line up a number of candidates for what might  follow, but we don&#8217;t need to make a commitment immediately.</p>
<p>Lean roadmapping moves us forward strategically, beyond what a  project or daily operations might do, but it does so without requiring  wasteful planning or doomed prophesising. Only when we reach the end of  this milestone will we determine the next one, and only then by  reassessing the business context as it is at the time.</p>
<p>So in summary: There are a few reasons we might usefully create a  technology roadmap, ranging from the not-so-great to the excellent. But  while having a roadmap for the right reasons is a good thing, the best  business solution may be just to plan one milestone at a time to  honestly reflect the realities of an uncertain future.</p>
<br />Filed under: <a href='http://niksilver.com/category/governance/'>Governance</a>, <a href='http://niksilver.com/category/technology/'>Technology</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/niksilver.wordpress.com/879/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/niksilver.wordpress.com/879/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/niksilver.wordpress.com/879/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/niksilver.wordpress.com/879/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/niksilver.wordpress.com/879/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/niksilver.wordpress.com/879/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/niksilver.wordpress.com/879/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/niksilver.wordpress.com/879/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/niksilver.wordpress.com/879/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/niksilver.wordpress.com/879/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/niksilver.wordpress.com/879/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/niksilver.wordpress.com/879/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/niksilver.wordpress.com/879/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/niksilver.wordpress.com/879/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=879&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://niksilver.com/2010/12/08/technology-roadmaps-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ed5f211191ad95ff564f9972490f40b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">niksilver</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2010/12/frogger1.jpg" medium="image">
			<media:title type="html">Sometimes a roadmap just won&#039;t be useful</media:title>
		</media:content>
	</item>
		<item>
		<title>The need (or otherwise) for a technology roadmap: Part 1</title>
		<link>http://niksilver.com/2010/12/06/technology-roadmaps-1/</link>
		<comments>http://niksilver.com/2010/12/06/technology-roadmaps-1/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 09:00:26 +0000</pubDate>
		<dc:creator>Nik</dc:creator>
				<category><![CDATA[Governance]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://niksilver.com/?p=873</guid>
		<description><![CDATA[This is a post in two parts, inspired by a recent conversation with a colleague. In this part I&#8217;ll set out what a technology roadmap is and circumstances in which it would be useful. In the next part I&#8217;ll set out why it might be best to go without. Introduction Let&#8217;s first make sure we &#8230; <a href="http://niksilver.com/2010/12/06/technology-roadmaps-1/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=873&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a post in two parts, inspired by a recent conversation with a colleague. In this part I&#8217;ll set out what a technology roadmap is and circumstances in which it would be useful. In the next part I&#8217;ll set out why it might be best to go without.</p>
<p><strong><a href="http://www.flickr.com/photos/pigsaw/5235356375/"><img class="alignright size-full wp-image-881" title="Roadmaps can be useful" src="http://niksilver.files.wordpress.com/2010/12/roadmap-3501.jpg?w=750" alt="Roadmaps can be useful"   /></a>Introduction</strong></p>
<p>Let&#8217;s first make sure we know what we&#8217;re talking about. A roadmap is a series of milestones to achieve some end; a technology roadmap is a roadmap for the technology base of an organisation.</p>
<p>Simple examples might be: we will replace the following legacy systems so that we can respond more quickly to our users&#8217; demands; we will move our non-core systems into the cloud, in this sequence; we will implement the following technologies so that we can operate our distribution system globally.</p>
<p>In reality such a roadmap is likely to be more complex, with several different elements.</p>
<p>People get very excited about roadmaps. If you have two departments about to  spend your time and money, and one has a roadmap and the other doesn&#8217;t,  then the one without is going to look pretty shabby. And that&#8217;s even  without looking at the content of the roadmap&#8230;</p>
<p><strong>Any roadmap has some positives</strong></p>
<p>Now, setting aside for one moment the benefit that any particular roadmap or plan might or might not give us, any technology roadmap clearly has some positives. It demonstrates purpose to those outside it (&#8220;They&#8217;re on a mission&#8230;&#8221;) even if those outside don&#8217;t fully understand it (&#8220;&#8230;and I guess I have to trust them on that&#8221;). It gives purpose to those implementing it (&#8220;I have to go in today despite being sick; there&#8217;s a key deadline for our roadmap&#8221;). It shuts down any number of unwanted conversations (&#8220;Can you do this for me?&#8221; / &#8220;Sorry, we&#8217;re maxed out delivering the roadmap, and you know the board&#8217;s expecting results&#8221;).</p>
<p>Obviously this is an overly cynical perspective, but like I said, that&#8217;s setting aside the benefits of the roadmap itself. So roadmaps are good, and have benefits even if they don&#8217;t actually deliver any real value themselves.</p>
<p>But really and truly a roadmap does need to have a purpose, and (because technology for its own sake has no benefit) that purpose must be driven by something outside technology. Here are four suggestions of where that purpose might come from, in order of increasing maturity:</p>
<p><strong>4. The bureaucratic roadmap</strong></p>
<p>Here, a roadmap is created purely because corporate bureaucracy requires it. Maybe it&#8217;s budget time and your budget won&#8217;t be approved unless it looks like there&#8217;s a grand plan. Maybe the CEO &#8212; or the VCs who are bankrolling your startup &#8212; want to see things mapped out before they&#8217;ll give you the time of day.</p>
<p>This scenario is not much better (possibly worse) than the cynical reasons given above. Except this time it&#8217;s not you who is made to feel better for applying some arbitrary order to daily pressures, but the corporate powers that be.</p>
<p><strong>3. The defensive roadmap</strong></p>
<p>This is where a tech team realises it must do something for itself to head off something less palatable. An example might be integrating a corporately-approved web service, such as Basecamp, before too many staff sign up to similar services themselves, directly, and scatter company data all over the Internet. Another is modernising the mail system ahead of a merger with a larger company to avoid being utterly taken over by the larger company&#8217;s technology base.</p>
<p>Clearly it&#8217;s not great to be on the defensive, but at least we&#8217;re responding.</p>
<p><strong>2. The directive roadmap</strong></p>
<p>This is where a tech team recognises the company doesn&#8217;t have a particular direction, so it implements something in order to create one. An example here might be enhancing all the systems&#8217; robustness and security because there&#8217;s an opportunity to shift from a consumer to a corporate clientbase, and the tech team realises this would be the way to open up those kind of opportunities.</p>
<p>The directive approach can really only be instigated by the most senior one or two people in the tech team. Also, it&#8217;s a bit risky because it could be called into question if there&#8217;s a lack of trust or change of leadership. The IT director could find themselves in a difficult situation if their peers suddenly thought they were running an expensive project which wasn&#8217;t aligned with any current company purpose. But if it works then it&#8217;s a good result: a previously directionless company gets a new lease of life. Or at least new opportunities, whether or not it chooses to exploit them.</p>
<p><strong>1. The aligned roadmap</strong></p>
<p>Almost certainly the highest form of technology roadmap. In this situation the organisation has a clear strategy which becomes the basis of every other department&#8217;s own, localised strategy &#8212; the the technology department is one of those.</p>
<p>If a company decides it needs to increase its overseas sales then there are implications for distribution, legal, advertising, procurement, and of course technology. Even without a single co-ordinated programme to achieve a specific goal every department suddenly has a purpose, each one can work out for itself what it needs to achieve that, and all departments are working to achieve the same thing.</p>
<p>That this is highest form of technology roadmap should not be surprising. It&#8217;s born of a very high level of organisational maturity which may seem easy but isn&#8217;t in practice. Just <a href="http://niksilver.com/2010/11/07/lessons-from-ebay-using-technology-to-push-your-business/">recall the story from eBay</a> where the company had a long-term strategy to emphasize fixed-priced goods, but they managed to forget to tell the technology team.</p>
<p>In the next part of this article I&#8217;ll consider reasons why it might actually be better not to have a roadmap&#8230;</p>
<br />Filed under: <a href='http://niksilver.com/category/governance/'>Governance</a>, <a href='http://niksilver.com/category/technology/'>Technology</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/niksilver.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/niksilver.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/niksilver.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/niksilver.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/niksilver.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/niksilver.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/niksilver.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/niksilver.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/niksilver.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/niksilver.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/niksilver.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/niksilver.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/niksilver.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/niksilver.wordpress.com/873/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=873&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://niksilver.com/2010/12/06/technology-roadmaps-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ed5f211191ad95ff564f9972490f40b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">niksilver</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2010/12/roadmap-3501.jpg" medium="image">
			<media:title type="html">Roadmaps can be useful</media:title>
		</media:content>
	</item>
		<item>
		<title>When board leaders fail to grasp technology</title>
		<link>http://niksilver.com/2010/06/20/when-board-leaders-fail-to-grasp-technology/</link>
		<comments>http://niksilver.com/2010/06/20/when-board-leaders-fail-to-grasp-technology/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 15:32:06 +0000</pubDate>
		<dc:creator>Nik</dc:creator>
				<category><![CDATA[General management]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://niksilver.com/?p=756</guid>
		<description><![CDATA[I&#8217;m amazed and disappointed that it&#8217;s still acceptable for people who run major companies to show wilful ignorance of technology. And I don&#8217;t mean what firewalls do or how to get wifi working on your laptop. I mean what it means to the companies they run, how it impacts their people and their customers, and &#8230; <a href="http://niksilver.com/2010/06/20/when-board-leaders-fail-to-grasp-technology/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=756&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m amazed and disappointed that it&#8217;s still acceptable for people who run major companies to show wilful ignorance of technology. And I don&#8217;t mean what firewalls do or how to get wifi working on your laptop. I mean what it means to the companies they run, how it impacts their people and their customers, and how to make sure it&#8217;s an asset rather than a liability. And there was an exemplary demonstration of this on <a href="http://www.bbc.co.uk/programmes/b00sq1zd#synopsis">last week&#8217;s edition of The Bottom Line on Radio 4</a>.</p>
<p><a href="http://www.flickr.com/photos/jpeepz/6237004/"><img class="alignright size-full wp-image-767" title="Another CEO prepares to demonstrate IT leadership" src="http://niksilver.files.wordpress.com/2010/06/boxer-medium2.jpg?w=750" alt="Another CEO prepares to demonstrate IT leadership"   /></a>The programme is a straight discussion of business issues with Evan Davis and a number of business leaders. It&#8217;s not dumbed down (any more than it has to be edited down) and is a consistently excellent listen. Last week the guests were Luke Johnson, chairman of <a href="http://www.riskcapitalpartners.co.uk/">Risk Capital Partners</a>, Vincent de Rivaz, chief executive of EDF Energy, and Jacqueline de Rojas, UK and Ireland vice president of McAfee. And they dealt with two major topics: organic growth versus acquisitions, and problems with IT. Luke Johnson in particular seemed to really have problems with technology, and to me there was overwhelming evidence that some of the causes might be rather closer to home than he might like to think.</p>
<p>Coming up is some criticism of what Luke Johnson and (to a much lesser extent) Vincent de Rivaz say, but don&#8217;t mistake it for a criticism of them as individuals. The point of what follows is that their attitude is representative of so many board leaders. Even though there are many board leaders who have a very confident grasp of technology issues it&#8217;s still remarkable there are so many others who handle technology as if they were wearing boxing gloves.</p>
<p><strong>Problems with technology<br />
</strong></p>
<p>As the resident IT expert it was Jacqueline de Rojas who was asked first about her own experience of IT problems, and in particular <a href="http://www.pcworld.com/businesscenter/article/194752/few_answers_after_mcafee_antivirus_update_hits_intel_others.html">the bad software update that her company issued in April</a> which disabled many of its customers&#8217; computers. Notably, she responded to a technology-related question with a positive and human answer: &#8220;The key in a crisis like that is how you respond; that&#8217;s how you&#8217;re judged&#8221;. Then Vincent de Rivaz was asked if he had ever had any IT disasters, and before he could finish his response (along the lines of &#8220;no actual disasters, but we have had problems&#8221;) Luke Johnson cut in:</p>
<p style="padding-left:30px;">LJ: &#8220;Every business I&#8217;ve ever come across has always been having problems with [its IT].&#8221;</p>
<p style="padding-left:30px;">VdR: &#8220;We have to invest in our IT and we have to develop our IT systems which we are doing at the moment [with a new online system to help our customers with their bills.]</p>
<p style="padding-left:30px;">ED: &#8220;What sort of problems have you had with your IT?&#8221;</p>
<p style="padding-left:30px;">VdR: &#8220;The problem is to control the costs. That is the permanent challenge for me, to be sure that we are spending the right amount of money on the IT systems.&#8221;</p>
<p style="padding-left:30px;">LJ: &#8220;All my experience of IT systems is they are always overdue and over budget, and I think it&#8217;s a built-in part of the IT industry that they deliberately under-quote and then they may get up on the extras.&#8221;</p>
<p>Now there are many problems board leaders could have with IT: We aren&#8217;t getting the best out of our technology investments. Our technology portfolio isn&#8217;t broad enough to help us in a constantly-shifting market. We don&#8217;t have the people who really understand how to manage and change our technology infrastructure.</p>
<p>These are all problems that require board-level investment and oversight. And they are also all questions that, if you substitute &#8220;financial&#8221; for &#8220;technology&#8221; all boards <em>do</em> deal with. But sadly it&#8217;s okay to ignore those matters if they&#8217;re technological, and so the top-of-mind IT issues for our token CEO and chairman are (1) cost control, and (2) IT people are sharks.</p>
<p>Indeed, Luke Johnson seems to have something of a chip on his shoulder about technologists. Jacqueline de Rojas goes on to explain a bit about the difficulty of  turning &#8220;woolly and aspirational&#8221; IT demands into concrete deliverables, but that doesn&#8217;t stop him:</p>
<p style="padding-left:30px;">LJ: &#8220;I think the IT experts blind clients with science, and I think very often they themselves overestimate the benefits, and overcharge for what they do. And the fact is there isn&#8217;t another industry, except perhaps pharmaceuticals, that makes the returns on capital and margins that software does. Huge margins.&#8221;</p>
<p style="padding-left:30px;">JdR: &#8220;The level of investment we have to make to stay ahead technologically is also huge. So where do you think that money goes? It goes right back into making sure we stay one step ahead of &#8212; in our case &#8212; the hackers and cyberterrorists and the competition&#8221;</p>
<p style="padding-left:30px;">ED: &#8220;Let me challenge you, Luke. Is there something different about IT from other areas of company purchasing? Is IT unique in being difficult and awkward for a company?&#8221;</p>
<p style="padding-left:30px;">LJ: &#8220;No, I don&#8217;t think it&#8217;s unique, but I think it is mission critical, and unquestionably we are all more dependent on IT than ever. I accept all that, and it can deliver huge values, and the very nature of it is it&#8217;s constantly evolving. But the truth of the matter is, what other sort of project or product, rather, do you buy that requires these perpetual upgrades and offers such super returns? I was involved with a retailer once, Whittard of Chelsea. We spent, many years ago, the best part of half a year&#8217;s profits on building a fully-integrated website. This was in the early days of the web. Within two years we had to throw it away. Because it just didn&#8217;t work. We used the wrong suppliers and we made a lot of mistakes.&#8221;</p>
<p>To him IT is a homogenous  blob, and he transfers his anxieties freely between commodity software sales (&#8220;returns on capital and margins&#8230; perpetual upgrades&#8221;) and individual business change projects (&#8220;a fully-integrated website&#8221;). Maybe he&#8217;s just exploiting the opportunity to have a go directly at a software vendor, because when Jacqueline de Rojas highlights how technology change really does improve our lives he&#8217;s having none of it:</p>
<p style="padding-left:30px;">LJ: &#8220;What are the cost of goods in software? What are the cost of goods? How much does each new program cost Microsoft? Zero.&#8221;</p>
<p>Which is silly, because he knows perfectly well that software (like pharmaceuticals) costs a lot of money to create, and Jacqueline de Rojas has already explained the cycle of investment, return, and re-investment that her market demands.</p>
<p><strong><img class="alignleft size-full wp-image-769" title="IT - easy money" src="http://niksilver.files.wordpress.com/2010/06/troubled-companies-medium2.jpg?w=750" alt="IT - easy money"   />Where the problems lie</strong></p>
<p>I&#8217;m not for a second denying that Luke Johnson&#8217;s frustration is unfounded. It&#8217;s clearly borne from many hard experiences: this is a man who&#8217;s job is to cast his net widely across many, many companies, to look into them seriously, and having done this he finds that &#8220;every business [he's] ever come across has always been having problems with [its IT]&#8221; and he&#8217;s witnessed one of his companies building one costly system only to have to replace it unexpectedly early.</p>
<p>But from where I sit a lot of his problems are of his own making. If you treat IT primarily as a cost then the best you&#8217;ll achieve with it is cost control, whereas the best you <em>should</em> get out of it is business transformation. If you think IT contractors under-quote on the basics and expect to make up for it on the extras, then you probably want to structure the next deal differently and be prepared to make it more of a partnership &#8212; if you can be confident of being able to act as a partner. If you think IT experts blind you with science then you&#8217;re talking to the wrong people &#8212; and if you don&#8217;t know who the right people are then you need to start filling that gap in your personal network. If you think IT experts overcharge then you&#8217;ve created a relationship with conflict at its core and the best you&#8217;ll get out of them is the minimum they&#8217;re contractually obliged to deliver, whereas you should be getting them to apply their creativity and rigour to help propel your business forward.</p>
<p>The thing that&#8217;s really shocking to me is that there are many company leaders like this, who are unashamed of their blunt handling of technology &#8212; which is undeniably mission critical &#8212; and yet the same people wouldn&#8217;t stay a week in their jobs if they demonstrated the same disregard for, say, legal matters or finance.</p>
<p>Which is rather ironic, because earlier in the programme it was Luke Johnson who was called on to be the resident expert on organic growth versus acquisitions, and one insight he provided was this:</p>
<p style="padding-left:30px;">LJ: &#8220;Many studies suggest that even perhaps a majority of all acquisitions fail to deliver shareholder value. So it&#8217;s important to put it into perspective and say if we can achieve returns through organic growth, but perhaps a little more slowly, then maybe that is the more sensible way to proceed.&#8221;</p>
<p>Let&#8217;s take a second to understand what we&#8217;ve just heard: possibly more than half of acquisitions fail to deliver value to the owners of the business &#8212; which sounds very similar to his problems with IT. And acquisitions are a significant part of his company&#8217;s business &#8212; mission critical, even. Just like IT.  But in that conversation he wasn&#8217;t remotely upset or bitter about this, he just treated it as something to deal with. He could do that because he was comfortable with working in that sphere and, I suspect, because while he might have had his share of acquisition failures they will have been outweighed by his successes.</p>
<p>It seems to me that if board leaders were obliged to grasp technology to the same degree as they are obliged to deal with financial or legal matters then their companies &#8212; and their companies&#8217; technology &#8212; would be in a much better place.</p>
<p><strong>Two final things</strong></p>
<p>A couple of parting thoughts.</p>
<p>First, some not-at-all-serious observations about Risk Capital Partners. While confirming that indeed they don&#8217;t invest in any IT or software companies, I found they do have <a href="http://www.riskcapitalpartners.co.uk/interquest.php">an interest  in InterQuest</a>, &#8220;a fast growing IT recruitment business&#8221;. So if Luke Johnson is concerned about the high cost of IT professionals then he might want to have a word with them. Also, I couldn&#8217;t help but think if software really is the fantastic high-margin business he thinks it is then RCP really should start making some investments there. I don&#8217;t know if they really will make a lot of money, but I do know they&#8217;ll learn a huge amount.</p>
<p>Second, a much more serious note. Earlier I said that if these sorts of leaders had IT problems then some of the causes were close to home. But it&#8217;s also true that some of the causes lie with us technology professionals. If technology really is seen above all else as a cost to be controlled, and if we are finding ourselves in unbalanced, conflict-driven relationships, then we really do need to do a much, much better job at explaining what we do. And then we have to carry that through into our actions. Technology in business is about making the business more effective and people&#8217;s working lives better. We ought to be able to find routes to even the most sceptical business leaders to explain that, and get a positive reception.</p>
<br />Filed under: <a href='http://niksilver.com/category/general-management/'>General management</a>, <a href='http://niksilver.com/category/technology/'>Technology</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/niksilver.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/niksilver.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/niksilver.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/niksilver.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/niksilver.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/niksilver.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/niksilver.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/niksilver.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/niksilver.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/niksilver.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/niksilver.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/niksilver.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/niksilver.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/niksilver.wordpress.com/756/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=756&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://niksilver.com/2010/06/20/when-board-leaders-fail-to-grasp-technology/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ed5f211191ad95ff564f9972490f40b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">niksilver</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2010/06/boxer-medium2.jpg" medium="image">
			<media:title type="html">Another CEO prepares to demonstrate IT leadership</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2010/06/troubled-companies-medium2.jpg" medium="image">
			<media:title type="html">IT - easy money</media:title>
		</media:content>
	</item>
		<item>
		<title>The Eigenharp, openness, and launching something (really) new</title>
		<link>http://niksilver.com/2009/10/07/the-eigenharp-openness-and-launching-something-really-new/</link>
		<comments>http://niksilver.com/2009/10/07/the-eigenharp-openness-and-launching-something-really-new/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 22:21:28 +0000</pubDate>
		<dc:creator>Nik</dc:creator>
				<category><![CDATA[Planning]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://niksilver.com/?p=585</guid>
		<description><![CDATA[Today I attended the launch of something weird and wonderful: a new musical instrument, the Eigenharp. And although this is a hardware device the event, and the run up to it, brought to mind the launch of our own Open Platform six months ago. By seeing some commonalities between the two it gave me a &#8230; <a href="http://niksilver.com/2009/10/07/the-eigenharp-openness-and-launching-something-really-new/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=585&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/pigsaw/3990391407/in/set-72157622537697462"><img class="alignright" title="Eigenharp buttons and lights up close" src="http://farm3.static.flickr.com/2561/3990391407_2f5e9be01f_d.jpg" alt="" width="500" height="333" /></a>Today I <a href="http://www.flickr.com/photos/pigsaw/sets/72157622537697462/">attended the launch</a> of something weird and wonderful: a new musical instrument, the <a href="http://eigenlabs.com/alpha/">Eigenharp</a>. And although this is a hardware device the event, and the run up to it, brought to mind the launch of our own <a href="http://www.guardian.co.uk/open-platform">Open Platform</a> six months ago. By seeing some commonalities between the two it gave me a whole new respect for the people who do marketing and PR, because it reminded me how much stuff needs to be planned. Common phases I saw are: (1) the controlled buzz, (2) openness at launch, and (3) the follow-through. But first a few words about the two products&#8230;</p>
<p><strong>The Eigenharp and the Open Platform</strong></p>
<p>The Eigenharp is a new kind of device. It&#8217;s a musical instrument with several patents already filed, and incorporates 132 keys with three-colour LEDs and a breath pipe. The keys operate in three dimensions (so you can exploit, say, pressure, pitch bend and filter effects with one finger) and are sensitive to within one micron. So while it&#8217;s compatible with MIDI, that&#8217;s an incredibly out-of-date protocol compared to what you could do with it.</p>
<p>The Open Platform has been well-documented here and elsewhere: a full content API directly into the Guardian&#8217;s content database, plus a store of raw data on which our journalists base some of their stories.</p>
<p>Although they are clearly two different kinds of beasts a remarkable similarity struck me in that they are both not just new products, but <em>really</em> new products. There is no clearly defined place for them in either of their markets, and no predictable success path for either one. The success of each is dependent entirely on other people&#8217;s innovation. The Eigenharp&#8217;s success is dependent on musicians taking their creativity into new directions &#8212; no-one to date has written music for an Eigenharp. The Open Platform&#8217;s success is dependent on developers doing innovative things with the new data they have access to.</p>
<p>So how do you launch a product that&#8217;s <em>really </em>new? The similar steps I can see are&#8230;</p>
<p><strong><a href="http://www.flickr.com/photos/pigsaw/3990393187/in/set-72157622537697462"><img class="alignleft" title="A view from the breath pipe" src="http://farm3.static.flickr.com/2514/3990393187_0c1be9337f_m_d.jpg" alt="" width="160" height="240" /></a>1. The controlled buzz</strong></p>
<p><a href="http://eigenlabs.com">Eigenlabs</a> (the creators of the Eigenharp) and the Guardian (creators of the Open Platform) managed to seed a few select people with their product &#8212; musicians and developers respectively &#8212; and some small details leaked out. This clearly did a couple of things.</p>
<p>First, it helps you get the product right. I know from my conversations around the Open Platform that what might seem a good idea to one or two people close to the product can provoke strong negative reactions when you float it past an informed outsider. When you&#8217;re inside the company you can easily think too much and lose the big picture, so it&#8217;s good to get an informed but independent view before you go public.</p>
<p>Second,  <a href="http://www.engadget.com/2009/09/11/video-mysterious-eigenharp-offers-blinkenlight-sitar-looks-chi/">creating a buzz</a> protects you from a bit of unforeseen negative reaction &#8212; if people are excited about your product and want it to succeed they will forgive some minor mistakes. You can see Eigenlabs achieved this with this low-fi video of <a href="http://www.youtube.com/watch?v=zcVqJh0qEMc">two guys playing the James Bond/Moby theme</a> on YouTube. Eigenlabs didn&#8217;t create this themselves, but they let &#8220;close friends&#8221; do it, and you can see the reaction in the comments underneath: &#8220;What the hell!! This is awesome&#8221;, &#8220;where can I buy one of these?&#8221;, &#8220;dear god this is epic&#8221; and so on.</p>
<p>The benefits of this are <a href="http://www.pcmag.com/article2/0,2817,2352751,00.asp">well explained by Lance Ulanoff at PCMag.com</a>. Here he compares the lacklustre launch of the Motorola Cliq with the hype from the January 2009 announcement (six months before the launch) of the Palm Pre:</p>
<p><span id="intellitxt"> </span></p>
<blockquote><p>Speaking of Palm, it has a good bit in common with Motorola right now. The Pre (and now Pixi) is its hail-Mary pass. If the new phone and WebOS platform fail, Palm will be done. Back in January, however,<!-- start ziffarticle //--> <a href="http://www.pcmag.com/article2/0,2817,2338482,00.asp">Palm ran the best product rollout event</a><!-- end ziffarticle //--> I have ever attended. It perfectly conveyed the company&#8217;s excitement and all that is good about the <!-- start ziffarticle //--><a href="http://www.pcmag.com/article2/0,2817,2338899,00.asp">Pre</a><!-- end ziffarticle //-->. I remember tweeting the event with mounting excitement. Today, I tweeted the Motorola event with mounting confusion.</p>
<p>What Palm did in January was give the Pre a good hard shove off the shore. Those waves of excitement produced a good six months of positive press. Eventually, Palm and the Pre hit some rough waters—a shipping delay, the slow delivery of the SDK and tiny list of apps that has yet to grow. Still, that first day set the tone.</p></blockquote>
<p>Then after the buzz is&#8230;</p>
<p><strong><a href="http://www.flickr.com/photos/pigsaw/3991138894/in/set-72157622537697462"><img class="alignleft" title="A select crowd gathers" src="http://farm4.static.flickr.com/3506/3991138894_313a90d946_m_d.jpg" alt="" width="240" height="160" /></a>2. Openness at launch</strong></p>
<p>There&#8217;s much that doesn&#8217;t need to be said about the launch event, but one thing that struck me about both the <a href="http://www.sonicstate.com/news/2009/10/06/eigenharp-officially-relased-first-look-video/">launch of the Eigenharp</a> and the <a href="http://www.guardian.co.uk/open-platform/blog/launch-presentation-kings-place-london">launch of the Open Platform</a> was a common ethos: the honesty and openness of the presenters, and the openness of the products.</p>
<p>At both events the &#8220;real users&#8221; (musicians/developers) were on-stage demonstrating their early adoption of the product and open to questions from the audience. These are the kinds of people who most marketing and PR people would lock in cupboards at a press event for fear they arrive without the regulation press-on smile and go off-message. But when a product&#8217;s success relies on innovation and creativity from its real users then it&#8217;s important that intended audience hears an authentic voice.</p>
<p>Also, there is an openness about both products. Aside from the very concept of opening up content and data, the Open Platform gives a lot of latitude to developers, <a href="http://www.badidea.co.uk/2009/03/guardians-open-platform-interface-looking-a-lot-better-than-the-new-york-times/">including (unusually) commercial use</a>. Meanwhile Eigenlabs are open-sourcing their software. Again, because each product&#8217;s success relies on people taking it in unexpected directions it&#8217;s important for there to be as many opportunities as possible for that to happen. Otherwise its success is stifled.</p>
<p>And then finally there&#8217;s&#8230;</p>
<p><strong>3. The follow-through</strong></p>
<p>Well, it&#8217;s early days for both products. The Open Platform API is still in beta, but you can see some developments now, such as the launch last week of the <a href="http://www.guardian.co.uk/open-platform/apps">Applications Gallery</a>. It&#8217;s even earlier for the Eigenharp. Company founder John Lambert was asked what well-known musicians he&#8217;d like to see using his creation and he said that a number of high profile people do have the instrument but that he cannot name any names yet. Clearly some really interesting things are going to happen some time soon.</p>
<p>If a product really does depend on the creativity of others then you can&#8217;t &#8212; and mustn&#8217;t &#8212; be too controlling of what those people do with it. (When I spoke to him John seemed slightly apprehensive about the quality of some of the things people might produce around the Eigenharp; I bet Matt McAlister didn&#8217;t anticipate <a href="http://www.guardian.co.uk/open-platform/dataviz-swear-word-tracker">a swearword tracker</a> coming out of the Open Platform.) But if you can&#8217;t control what others do, you can at least show some examples of what might be achieved, and that&#8217;s what the follow-through is doing with each of these products.</p>
<p><strong>1-2-3, easy as A-B-C</strong></p>
<p>Now if any marketing people have stumbled across this blog post I wouldn&#8217;t be surprised if they were horrified by the naivety of these observations &#8212; all of this might just be first grade A-B-C of marketing for them. But I find this fascinating. As a tech person it&#8217;s very easy for me to focus on my own role and not spend much time wondering what challenges are faced by my colleagues in other departments. Here are two products whose paths to success are unusually dependent on the unknown and whose stories will be well worth watching. By looking at the communication that&#8217;s gone on around them the significance of other people&#8217;s role becomes much more apparent. Technology success is about much more than successful technology.</p>
<br />Posted in Planning, Technology  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/niksilver.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/niksilver.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/niksilver.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/niksilver.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/niksilver.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/niksilver.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/niksilver.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/niksilver.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/niksilver.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/niksilver.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/niksilver.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/niksilver.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/niksilver.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/niksilver.wordpress.com/585/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=585&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://niksilver.com/2009/10/07/the-eigenharp-openness-and-launching-something-really-new/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ed5f211191ad95ff564f9972490f40b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">niksilver</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2561/3990391407_2f5e9be01f_d.jpg" medium="image">
			<media:title type="html">Eigenharp buttons and lights up close</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2514/3990393187_0c1be9337f_m_d.jpg" medium="image">
			<media:title type="html">A view from the breath pipe</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3506/3991138894_313a90d946_m_d.jpg" medium="image">
			<media:title type="html">A select crowd gathers</media:title>
		</media:content>
	</item>
		<item>
		<title>Thanks to ProgrammableWeb</title>
		<link>http://niksilver.com/2009/09/17/thanks-to-programmableweb/</link>
		<comments>http://niksilver.com/2009/09/17/thanks-to-programmableweb/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 18:06:17 +0000</pubDate>
		<dc:creator>Nik</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://niksilver.com/?p=577</guid>
		<description><![CDATA[A quick thanks to the folks at ProgrammableWeb for making my Guardian Tag Bubbles app their Mashup of the Day. It was terrific to see it up there with the likes of the imaginative The Sheep Market and Again But Slower &#8212; to pick just two at random. Posted in Technology<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=577&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">A quick thanks to the folks at <a href="http://www.programmableweb.com">ProgrammableWeb</a> for making my <a href="http://niksilver.com/guardian-tag-bubbles/">Guardian Tag Bubbles app</a> their Mashup of the Day. It was terrific to see it up there with the likes of the imaginative <a href="http://www.thesheepmarket.com/">The Sheep Market</a> and <a href="http://againbutslower.com">Again But Slower</a> &#8212; to pick just two at random.</p>
<p style="text-align:center;"><img class="aligncenter size-full wp-image-581" title="Mashup of the Day screenshot" src="http://niksilver.files.wordpress.com/2009/09/tag-bubbles-programmableweb-screenshot-100pc1.jpg?w=750" alt="Mashup of the Day screenshot"   /></p>
<br />Posted in Technology  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/niksilver.wordpress.com/577/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/niksilver.wordpress.com/577/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/niksilver.wordpress.com/577/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/niksilver.wordpress.com/577/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/niksilver.wordpress.com/577/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/niksilver.wordpress.com/577/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/niksilver.wordpress.com/577/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/niksilver.wordpress.com/577/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/niksilver.wordpress.com/577/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/niksilver.wordpress.com/577/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/niksilver.wordpress.com/577/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/niksilver.wordpress.com/577/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/niksilver.wordpress.com/577/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/niksilver.wordpress.com/577/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=577&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://niksilver.com/2009/09/17/thanks-to-programmableweb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ed5f211191ad95ff564f9972490f40b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">niksilver</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2009/09/tag-bubbles-programmableweb-screenshot-100pc1.jpg" medium="image">
			<media:title type="html">Mashup of the Day screenshot</media:title>
		</media:content>
	</item>
		<item>
		<title>Discovering JavaFX with the Guardian Open Platform</title>
		<link>http://niksilver.com/2009/08/31/discovering-javafx-with-the-guardian-open-platform/</link>
		<comments>http://niksilver.com/2009/08/31/discovering-javafx-with-the-guardian-open-platform/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 20:02:33 +0000</pubDate>
		<dc:creator>Nik</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://niksilver.com/?p=499</guid>
		<description><![CDATA[I&#8217;ve spent a while learning JavaFX and developing an application which is now live. I&#8217;ve written about the application itself over on the Guardian&#8217;s Open Platform blog, because it makes use of the Open Platform&#8217;s Content API. But in this blog post I want to write less about the application and more about my experiences &#8230; <a href="http://niksilver.com/2009/08/31/discovering-javafx-with-the-guardian-open-platform/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=499&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://niksilver.com/guardian-tag-bubbles/"><img class="alignright size-full wp-image-547" title="Guardian tag bubbles - click to see the application" src="http://niksilver.files.wordpress.com/2009/09/screenshot-450.jpg?w=750" alt="Guardian tag bubbles - click to see the application"   /></a>I&#8217;ve spent a while learning <a href="http://javafx.com/">JavaFX</a> and developing <a href="http://niksilver.com/guardian-tag-bubbles/">an application which is now live</a>. I&#8217;ve written about the application itself over <a href="http://www.guardian.co.uk/open-platform/blog/guardian-tag-bubbles">on the Guardian&#8217;s Open Platform blog</a>, because it makes use of the <a href="http://api.guardianapis.com/docs">Open Platform&#8217;s Content API</a>. But in this blog post I want to write less about the application and more about my experiences with the JavaFX technology.</p>
<p>In this article:</p>
<ul style="text-align:left;">
<li><a href="#what-is">What is JavaFX?</a></li>
<li><a href="#language">The language (good)</a></li>
<li><a href="#development">Development support (ugly)</a></li>
<li><a href="#user-experience">The user experience (bad)</a></li>
<li><a href="#conclusions">Conclusions and (inevitable) comparison with Flash</a></li>
</ul>
<p><strong><a name="what-is"></a>What is JavaFX?</strong></p>
<p>JavaFX is probably best viewed as Sun&#8217;s answer to Flash, just as Silverlight is Microsoft&#8217;s response. So it&#8217;s a way of developing rich internet applications, or embedding fancy graphical thingies into web pages.</p>
<p>In some sense Sun might not have had any need for JavaFX. For example, take a look at <a href="http://www.wefeelfine.org/">We Feel Fine</a>. This is an astonishingly beautiful and imaginative application, and though it might look like it&#8217;s been written as Flash it&#8217;s actually a Java applet.</p>
<p>So why did Sun feel the need for adding to Java? <a href="http://blogs.sun.com/chrisoliver/entry/f3">According to JavaFX&#8217;s creator, Chris Oliver</a>, &#8220;its purpose was to explore making GUI programming easier in general&#8221;. In other words, the Java language is not really optimised for GUI development. In addition, the language needs a number of libraries. But all of this compiles down to Java bytecode and runs on the JVM, so JavaFX is really just Java with special add-ons to make graphical-oriented applications easier.</p>
<p><strong><a name="language"></a>The language (good)</strong></p>
<p>The most obvious initial difference with JavaFX is the language that comes with it: JavaFX Script. As implausible as it sounds Sun has combined the best bits of Javascript and Java, and come up with something really rather wonderful. Consider the following code snippet from my application:</p>
<pre>ring = Circle {
    centerX: bind bubble.x
    centerY: bind bubble.y
    radius: bubble.diameterInScene / 2
    opacity: 0.0
    fill: null
    stroke: BUBBLE_INDICATOR_COLOUR
};</pre>
<p>This creates a thin ring, which is actually just a circle with an outline and no fill. It starts off being invisible (opacity 0). The variable <code>ring</code> was declared on a previous line and is initialised here. I think this simple piece of code demonstrates a number of really nice things about the language. First, the code <code>Circle { ... };</code>. This is a constructor, which I really like. It feels lightweight, like Javascript, and it&#8217;s got Javascript&#8217;s named properties. But like Java, JavaFX Script is a statically typed language, so <code>ring</code> is of type <code>Circle</code> and if I forget this later on in my development then the compiler will signal an error &#8212; that error won&#8217;t make it into production. Second, the most exciting addition: the <code>bind</code> keyword. This means that the formula that follows will change dynamically when any of its component parts changes. So the x co-ordinate of the ring&#8217;s centre is bound to <code>bubble.x</code> &#8212; the <code>x</code> property of the variable <code>bubble</code>, which is the x co-ordinate of its centre. Similarly for the y co-ordinates. Now I know that the ring will always be centred on the bubble: whenever I update the bubble&#8217;s position the ring&#8217;s position will change, too. As one of our team&#8217;s developers explained when I started telling him about JavaFX binding (in fact he didn&#8217;t even let me finish my sentence) it&#8217;s just perfect for a GUI-oriented language where you want the view to track the model. Another great feature of the language is its native handling of timelines. For example, here&#8217;s a piece of code I use to fade something in or out over a period of half a second:</p>
<pre>Timeline {
    repeatCount: 1
    keyFrames: [
        at (0.5s) { this.opacity =&gt; targetOpacity }
    ]
}.play();</pre>
<p>This constructs a <code>Timeline</code> with a single keyframe (at the half second point), and JavaFX is told that by that point the opacity needs to be at the target opacity. On calling the <code>play()</code> method it will interpolate the object&#8217;s opacity value so that it fades in or out accordingly. Needless to say, you can have several keyframes, and interpolate several values simultaneously or in sequence.</p>
<p>You can also ensure specific actions at certain points. Here is some code which fades a message out, changes it, and fades it back in again. This mixes native timeline syntax with more usual JavaFX syntax:</p>
<pre>Timeline {
    repeatCount: 1
    keyFrames: [
        at (0.5s) { barText.opacity =&gt; 0.0 }
        KeyFrame {
            time: 0.5s
            action: function():Void { barText.content = message; }
        }
        at (1.0s) { barText.opacity =&gt; 1.0 }
    ]
}.play();</pre>
<p>You might also notice from this that functions are treated as a first class object: another very handy feature of the language.</p>
<p><img class="alignright size-full wp-image-519" title="Eclipse development with JavaFX" src="http://niksilver.files.wordpress.com/2009/08/eclipse-4501.jpg?w=750" alt="Eclipse development with JavaFX"   /><strong><a name="development"></a>Development support (ugly)</strong></p>
<p>As you might expect from a Java extension JavaFX integrates well with Java: you can use any Java class or object in your JavaFX code. In my case I wrote a small physics engine in Java and then accessed it via my JavaFX code; it was trivial to do.</p>
<p>On the other hand, JavaFX classes and methods can&#8217;t be accessed from Java without a lot of jumping through hoops (you have to create an interface in Java, implement it in JavaFX, and then you can reference that interface in your Java code). Also, Java generics aren&#8217;t available in JavaFX, which is a bit of loss.</p>
<p>The JavaFX platform itself is evolving. Version 1.0 was <a href="http://www.sun.com/aboutsun/media/features/2008-1204/index.jsp">released in December 2008</a>. <a href="http://java.sun.com/javafx/1/reference/releasenotes/javafx-sdk-release-notes-1-1.html">Version 1.1 came out in February 2009</a> and changed not only the underlying libraries, but also the language, so even your source code needed be revised. Most recently <a href="http://java.sun.com/javafx/1/reference/releasenotes/javafx-sdk-release-notes-1-2.html">version 1.2 came out in May 2009</a>, with similar changes and similar consequences.</p>
<p>Overall, these changes are a very good thing. Each new version contains not only extra front-end features (charting capabilities appeared in 1.2) but also performance enhancements and changes which ensure greater API consistency and extensibility. It&#8217;s interesting to see Sun take a different approach from Java: there the remit has been to preserve backwards compatibility at all costs, because there are so many applications deployed in it, but JavaFX is still in its infancy and breaking backwards compability is a significantly lesser evil than consistency and extensibility. Nevertheless, the feeling is of a platform that&#8217;s yet to mature, and my productivity was knocked back by one or two platform bugs whose equivalents just wouldn&#8217;t be be dreamt of in, say, Java. Still, JavaFX is clearly actively evolving, and most certainly for the better.</p>
<p>More disappointing is the poor IDE support. Inevitably, support for Sun&#8217;s NetBeans is being actively pursued alongside the evolving platform. But my first experience with JavaFX in NetBeans earlier in 2009 found it to be an imperfect environment, and I opted to switch to Eclipse &#8212; I decided I could live with more quirks in return for a more familiar working environment. And after <a href="http://niksilver.com/2009/05/06/solved-annoying-javafx-eclipse-plugin-problem/">some considerable hassle</a> I got it working.</p>
<p>But Eclipse support really is poor: there are <a href="http://piliq.com/javafx/?p=1075">a few annoyances documented over on pliq.com</a>, and I found a few more. Overall it meant that even typing code was a bit of a minefield, and that&#8217;s without refactoring support.</p>
<p>There is also the inevitable problem with unit testing graphically-oriented applications. I admit I resorted to the old fashioned develop-debug cycle, which was a little disappointing and inevitably frustrating. But I can&#8217;t quite conceive of a unit test framework for a platform in which there is so much visually-oriented code. I suspect it would mean a slightly different approach to coding. My brain can&#8217;t quite work out what, though.</p>
<p><img class="alignright size-full wp-image-521" title="Swirly Java preloader" src="http://niksilver.files.wordpress.com/2009/08/java-logo-tunnel2.jpg?w=750" alt="Swirly Java preloader"   /><strong><a name="user-experience"></a>The user experience (bad)</strong></p>
<p>So developers have problems. Let&#8217;s pretend not to worry about them; their entire lives revolve around solving problems so they&#8217;ll find ways to solve those. Much more important is the experience of end users, and with <a href="http://www.sun.com/aboutsun/pr/2008-12/sunflash.20081204.1.xml">Sun boasting that Java runs on &#8220;800 million desktops&#8221;</a> (isn&#8217;t that more than the number of atoms in the universe&#8230;?) those people&#8217;s experience is paramount.</p>
<p>Well, if you&#8217;re running the right environment then the JavaFX experience isn&#8217;t at all bad. Unfortunately you&#8217;re very unlikely to be running in the right environment&#8230;</p>
<p>Sun have done an excellent job in making it <a href="http://javafx.com/docs/tutorials/deploy-applet/">simple and reliable to embed your applet into a web page</a>: once you&#8217;ve configured your code you only need some very simple and clear JavaScript in your page. This JavaScript takes care of platform versioning, prompts the user for an update if necessary, shows a standard &#8220;Loading&#8230;&#8221; animation, and downloads and runs your code.</p>
<p>In the circumstances this clever; but the circumstances are far from ideal. For example, when did you last update your JVM? Probably not recently enough to have the latest JavaFX release, so your first use of a 1.2 application is going to prompt you for a very large download of the JavaFX 1.2 runtime. You&#8217;re also going to need to run a launcher applet from Sun, which then prompts you with a popup requesting you trust software from Sun. Anyone who wants a seamless user experience is going to take one look at JavaFX and run a mile.</p>
<p>Even if you&#8217;ve already got the 1.2 runtime and launcher applet the JavaScript embed code itself references a script on Sun&#8217;s website. That means your web page is always relying on Sun&#8217;s website being up, running and performant in order to load. For code on my own little blog that&#8217;s fine &#8212; Sun&#8217;s uptime will always be more reliable than mine. But if this is to be adopted by bigger players, such as my own employer, the Guardian, then the sysadmins responsible for page delivery time and reliability won&#8217;t be happy with another third party dependency.</p>
<p>And if you&#8217;re not impressed with that, then I hope you&#8217;re not an Apple user. Java support for Macs has long lagged behind that of Windows machines (I recall the Java 5 SDK came out over a year after the Windows release) and this shows again with JavaFX. In theory JavaFX runs on a Mac. In practice it&#8217;s a world of pain: it&#8217;s slow and rendering features such as antialiasing are dire. Experiments show that if you&#8217;re running a very high end Mac then it&#8217;s half-way approaching decent, but not actually decent.</p>
<p>As someone who spent a long time developing this on a Windows machine it was very disspiriting to see the fruits of my labour reduced to a syrupy judder when I wanted to demo it to someone with a Mac.</p>
<p><a href="http://www.flickr.com/photos/leaf4/2873452813/"><img class="alignright size-full wp-image-523" title="Dstandley chasm nt by *watersprite" src="http://niksilver.files.wordpress.com/2009/08/chasm_by_watersprite2.jpg?w=750" alt="Dstandley chasm nt by *watersprite"   /></a><strong><a name="conclusions"></a>Conclusions and (inevitable) comparison with Flash</strong></p>
<p>If Flash didn&#8217;t exist then my view of JavaFX would be different. But Flash does exist, it&#8217;s the dominant RIA platform &#8212; certainly within web pages &#8212; and so any view of JavaFX has to be assessed in that context.</p>
<p>I find it very amusing that Adobe and Sun have eyed up each others&#8217; territory and each wanted a piece of the other&#8217;s action. Adobe has wanted to move out of the web page and onto the desktop, so they&#8217;ve introduced AIR, while ActionScript has gone all serious, ditching the JavaScript-like version 2 for the Java-like version 3, and encouraging <a href="http://www.adobe.com/devnet/actionscript/articles/ora_as3_design_patterns.html">a cavalcade of grown-up design patterns</a>. Meanwhile Sun has left behind that heavyweight baggage of the Java programming language and gone all JavaScripty, with easy constructor syntax, type inference and treating functions as first-class objects. They&#8217;ve each adopted the other&#8217;s clothes, but changing clothes is only part of what&#8217;s needed.</p>
<p>For my money JavaFX Script is the superior language. It&#8217;s designed for graphics creation and management, while ActionScript looks like Java before generics. The code I&#8217;ve found online to <a href="http://snipplr.com/view/10626/draw-rectangle/">draw shapes in ActionScript</a> brings back nightmares from the early days of writing Java applets: get a graphics object, set some properties, start the filling, do the drawing, stop the filling&#8230; it&#8217;s unintuitive, uphill work. (What the hell is a &#8220;graphics object&#8221;, anyway?) With JavaFX you use a constructor like the one shown above.</p>
<p>Mind you, there&#8217;s a reason for this difference. Flash development is predicated on the use of some really well-developed proprietary, commercial tools to do the job: Flash Professional for designers and Flex Builder for application developers. Looking for an ActionScript Hello World program produces some entertaining results. <a href="http://www.dreamincode.net/forums/showtopic14745.htm">Here&#8217;s one conversation</a> in which the request for a Hello World app is met with incomprehension: can&#8217;t you just drop the text on the stage? asks one responder, who misses the point of a programming tutorial; I suppose you could use the trace function to print the text out, suggests someone else. Here&#8217;s <a href="http://www.flashdev.ca/article/hello-world/">an ActionScript Hello World tutorial</a> which includes the instruction &#8220;Select the Text Tool&#8230;&#8221;. There <em>is</em> <a href="http://www.payne.org/index.php/ActionScript_HelloWorld">a purely programmatic tutorial</a> which Andrew Payne created because &#8220;The other examples I could find all used Adobe&#8217;s paid tools, Flash Designer, etc.&#8221; &#8212; but that was written only in January 2009.</p>
<p>So Flash is deeply embedded into design houses, which have come to rely on some very mature tools in which programming is secondary, particularly when it comes to asset creation. And while this might make more traditional developers smile it does demonstrate the cultural chasm that seperates Flash from JavaFX. Designers demand a first rate user experience, or else their work won&#8217;t sell itself. That means Flash execution doesn&#8217;t suffer the popup bombardment of JavaFX. And it means Flash runs just as well on a Mac as on a PC. And it means Flash developers have become obsessed with performance in a way that JavaFX developers can&#8217;t even imagine, so there&#8217;s an entire mindset which has yet to be addressed. And it means component support in JavaFX is lacking where in Flash it&#8217;s commonplace. One example of this is the lack of a JavaFX preloader: with Flash it&#8217;s standard to have a progress bar as the application loads; with JavaFX the standard preloader is an animated image that continues to animate even if there&#8217;s a background error, and I can&#8217;t find any code which shows a progress bar. Another is the ease in which one Flash swf can load another; again, not readily possible in JavaFX.</p>
<p>Designers would also bring a huge benefit to JavaFX beyond setting high bars for user experience: they are the people who will make JavaFX applications look beautiful, and so attract others&#8217; interest, and so start a rolling snowball of adoption. I think my own application is quite pretty, but it was quite different in the early stages. It was only when I studied and tried to emulate the work of the Guardian&#8217;s professional designers that it started to come alive: circles were a friendlier shape than rounded rectangles, the palette of guardian.co.uk was infinitely prettier than my original palette of browns, and so on.</p>
<p>Sun is <a href="http://forums.sun.com/thread.jspa?threadID=5324114">not unaware that this cultural gap needs to be bridged</a>. That will be one reason why they&#8217;ve created <a href="http://javafx.com/docs/gettingstarted/production_suite/">JavaFX Production Suite</a>. But years of cultural awareness and workflow embedded into design studios&#8217; daily operations will be very, very hard to reverse.</p>
<p>So my own thoughts about JavaFX reflect my own experience with it. My development experience was very positive: it&#8217;s a great language and a mediocre development environment with many teething troubles which will no doubt be ironed out over time. I had terrific fun with it, and getting fast results was very rewarding. But beyond the development experience the future seems more difficult. The user experience is very poor, with JavaFX throwing up barriers in front of the non-technical end user where Flash is invisible. And the leap from niche developer interest to general acceptance by design studios is just enormous.</p>
<p>Making JavaFX a real success is huge job for Sun. They&#8217;ve got off to an excellent start, with a language and runtime environment that allow for very quick development. But that, alas, is the easy bit compared to what lies ahead. I do wish them the very best of luck.</p>
<br />Posted in Technology  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/niksilver.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/niksilver.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/niksilver.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/niksilver.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/niksilver.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/niksilver.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/niksilver.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/niksilver.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/niksilver.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/niksilver.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/niksilver.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/niksilver.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/niksilver.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/niksilver.wordpress.com/499/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=499&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://niksilver.com/2009/08/31/discovering-javafx-with-the-guardian-open-platform/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ed5f211191ad95ff564f9972490f40b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">niksilver</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2009/09/screenshot-450.jpg" medium="image">
			<media:title type="html">Guardian tag bubbles - click to see the application</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2009/08/eclipse-4501.jpg" medium="image">
			<media:title type="html">Eclipse development with JavaFX</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2009/08/java-logo-tunnel2.jpg" medium="image">
			<media:title type="html">Swirly Java preloader</media:title>
		</media:content>

		<media:content url="http://niksilver.files.wordpress.com/2009/08/chasm_by_watersprite2.jpg" medium="image">
			<media:title type="html">Dstandley chasm nt by *watersprite</media:title>
		</media:content>
	</item>
		<item>
		<title>Solved: Annoying JavaFX Eclipse plugin problem</title>
		<link>http://niksilver.com/2009/05/06/solved-annoying-javafx-eclipse-plugin-problem/</link>
		<comments>http://niksilver.com/2009/05/06/solved-annoying-javafx-eclipse-plugin-problem/#comments</comments>
		<pubDate>Wed, 06 May 2009 22:51:51 +0000</pubDate>
		<dc:creator>Nik</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://niksilver.com/?p=411</guid>
		<description><![CDATA[[I don't usually post very technical material here, and apologies if you're after higher level discussion, but it seemed the most appropriate place for this.] I was quite thrilled last night to have solved a really frustrating bug in a piece of open source software. First the background, then the problem and finally, for the &#8230; <a href="http://niksilver.com/2009/05/06/solved-annoying-javafx-eclipse-plugin-problem/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=411&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>[I don't usually post very technical material here, and apologies if you're after higher level discussion, but it seemed the most appropriate place for this.]</em></p>
<p>I was quite thrilled last night to have solved a really frustrating bug in a piece of open source software. First the background, then the problem and finally, for the record, the solution.</p>
<p><strong>Background</strong></p>
<p>I&#8217;ve been messing around programming with with <a href="http://javafx.com/samples/">JavaFX</a> and would have liked to have used my favourite IDE, Eclipse.</p>
<p>Unfortunately JavaFX has a bit of a poor pedigree. It&#8217;s <a href="http://www.theregister.co.uk/2008/12/06/sun_javafx_launch/">a me-too product</a> being Sun&#8217;s response to Adobe Flash and <a href="http://www.adobe.com/products/air/">AIR</a>, just as <a href="http://silverlight.net/">Silverlight is Microsoft&#8217;s response</a>. It also doesn&#8217;t seem to have been given the heavy backing and attention within Sun that anyone would need going up against the incumbent RIA platform. I see this because (a) <a href="http://java.sun.com/javafx/1/reference/releasenotes/javafx-sdk-release-notes-1-1.html">the language changed slightly</a> after the first official release (1.0) to the next &#8220;minor&#8221; version, which smacks of carelessness (or pressures on dates of public announcements); (b) JavaFX application loading seems to be a variable experience, and certainly not as slick as Flash&#8217;s; (c) patchy documentation &#8212; for your reading pleasure I quote here <a href="http://openjfx.java.sun.com/current-build/doc/reference/ch10s01.html">Chapter 10 of the JavaFX language reference</a> in its entirety:</p>
<blockquote><p><strong>Chapter 10. Animation</strong></p>
<p><strong>Table of contents</strong></p>
<p><em>[To do: write chapter]</em></p></blockquote>
<p>Added to that, <a href="http://www.guardian.co.uk/business/2009/apr/20/oracle-buys-sun-microsystems">Oracle has just bought Sun</a>. Who knows what the new owners will think of this project&#8230; it&#8217;s a long way from their core business of providing large scale middleware solutions. It&#8217;s a shame, because JavaFX has a lot going for it, and as far as I can tell stands up well technically to Flash; but it needs investment in giving it a lot of polish if it&#8217;s to demonstrate this widely. Certainly there doesn&#8217;t seem to be a fully-featured IDE readily available.</p>
<p><strong>Problem</strong></p>
<p>However, a small team of independent developers wrote <a href="http://kenai.com/projects/eplugin">an open source Eclipse plugin</a> which was released in December 2008, but the last commit was on 13 January 2009. Since that time <a href="http://java.sun.com/javafx/1/reference/releasenotes/javafx-sdk-release-notes-1-1.html">JavaFX 1.1 was released</a> in February 2009 which doesn&#8217;t play nicely with the Eclipse plugin, but no word from the maintainers on any new releases. It seems to be dormant.</p>
<p>The problem I (and many before me) found is <a href="http://kenai.com/bugzilla/show_bug.cgi?id=206">bug 206, documented in bugzilla</a>: when writing seemingly innocuous code the incremental compiler reports</p>
<blockquote><p>incompatible types found   : Integer required: com.sun.javafx.runtime.location.FloatVariable</p></blockquote>
<p>Which doesn&#8217;t read very well but I think means &#8220;I found an integer but requred a float&#8221;. The error is reported on about one line in five, swamping genuine error messages, and no amount of bracketing, casting or whatever seems to help. It&#8217;s clearly <a href="http://kenai.com/projects/eplugin/forums/forum/topics/423-Incompatible-types-found-integer-required">frustrated a lot of people</a> and it certainly made me rather disappointed with the whole JavaFX experience.</p>
<p>Anyway, inspired by insights from some of those similarly affected, and after a lot of semi-random hacking and poking I found a solution, which at least works for me.</p>
<p><strong>Solution</strong></p>
<p>The solution is to build the plugin yourself from the source, and use that. <a href="http://kenai.com/projects/eplugin/pages/BuildFromSources">The original documentation for this</a> is a little terse (well, I struggled a couple of times) so here&#8217;s an augmented version:</p>
<p><em><span style="text-decoration:underline;">How to build the plugins from sources</span></em></p>
<p><span style="text-decoration:underline;">1. Requirements</span></p>
<ul>
<li>Install the Eclipse IDE for Java EE Developers from <a href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a>.</li>
<li>Install the DeltaPack from <a href="http://update.eclipse.org/downloads/drops/R-3.4-200806172000/index.php#DeltaPack">http://update.eclipse.org/downloads/drops/R-3.4-200806172000/index.php#DeltaPack</a>. (I have no idea what this DeltaPack is, but I think it&#8217;s used in this instance as libraries against which the plugin sources are compiled. I unzipped the download and dropped the files into my Eclipse application directory as appropriate: features in the  <em>features</em> directory, plugins in the <em>plugins</em> directory.)</li>
<li><a href="http://java.sun.com/javafx/downloads/">Get the JavaFX SDK</a> from Sun in the form of a zip file. Since it&#8217;s currently only available as an executable, you need to download and  install that in the usual way (if you haven&#8217;t done so already) and then zip it up into a file. I called my file <em>javafx-sdk1.1.zip</em> (though I&#8217;ve actually got version 1.1.1 &#8212; using only major and minor seems to be the convention).</li>
</ul>
<p><span style="text-decoration:underline;">2. Get the plugin source files</span></p>
<ul>
<li>On the Unix commandline the incantation is <code>svn co https://kenai.com/svn/eplugin~subversion/trunk eplugin</code> (though I&#8217;ve not checked this).</li>
<li>Alternatively on Windows you can use <a href="http://tortoisesvn.net/">TortoiseSVN</a>.</li>
<li>However my Eclipse was set up to use subversion so I imported the source directly into Eclipse:</li>
<li>Import the files into Eclipse. In Eclipse I did <em>File</em> &gt; <em>New</em> &gt; <em>Project</em>&#8230; &gt; <em>SVN</em> &gt; <em>Checkout Projects From SVN</em>. Then use the repository location <em>https://kenai.com/svn/eplugin~subversion/trunk</em> and get the entire contents. I had to accept a few certificates (temporarily) along the way. One time I tried this the new Eclipse project showed lots of Java errors (libraries not found), but they didn&#8217;t seem to cause a problem.</li>
</ul>
<p><span style="text-decoration:underline;">3. Amend and then run the build</span></p>
<p>Running the build that came with the source files didn&#8217;t work, and I needed to amend the Ant <em>build.xml</em> file. I had to change the original line</p>
<blockquote><p><code>&lt;property name="javafx.sdk.root.dir" value="javafx-sdk1.0"/&gt;</code></p></blockquote>
<p>to</p>
<blockquote><p><code>&lt;property name="javafx.sdk.root.dir" value="javafx-sdk1.1"/&gt;</code></p></blockquote>
<p>That is,  I had to change the javafx.sdk.root.dir variable to match the name of my JavaFX SDK zip file, but without <em>.zip</em> bit.</p>
<p>Now you can run the build from within Eclipse. To do this I did: Right click the <em>build.xml</em> file in the Eclipse package navigator, choose <em>Run As &gt; Ant Build&#8230;</em> Go to the <em>Main</em> tab, then the <em>Arguments</em> box and fill in these arguments</p>
<blockquote><p><code>-DeclipseDir=&lt;path&gt; -Djavafx.sdk.build.url=&lt;url_to_zip&gt; clean build-windows [build-macosx] [build-linux]</code></p></blockquote>
<p>Note that you need one file path and one URL, and you need to name the operating system you&#8217;re building for. This took a few minutes to run, but it completed without problems.</p>
<p>If you&#8217;re not doing this from inside Eclipse you can use Ant directly.</p>
<p><span style="text-decoration:underline;">4. Install the results</span></p>
<p>The result of this is in a new <em>dist</em> directory. Here you will find a few files, but the one you&#8217;re interested in is the .zip file. In my case it was called <em>com.sun.javafx.eclipse.feature-win32-win32-x86-1.0.1.zip</em>. This is an Eclipse plugin. Unzip it and drop the contents into the relevant places in your Eclipse install directory: features in <em>features</em>, plugins in <em>plugins</em>.</p>
<p>I hope you find this goes relatively smoothly.</p>
<p><strong>Why did this happen?</strong></p>
<p>Honestly, you think I know? My guess is that the plugin was built with JavaFX 1.0.x embedded, and those of us with JavaFX 1.1.x get compatibility errors; recompiling from sources ensures your new plugin in built with your current JavaFX SDK. If so, that&#8217;s a pain, as it may mean you&#8217;ll need to do all this again when the next JavaFX SDK comes out. But, hey, you&#8217;ll get a few hours of happy coding done in the meantime.</p>
<br />Posted in Technology  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/niksilver.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/niksilver.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/niksilver.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/niksilver.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/niksilver.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/niksilver.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/niksilver.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/niksilver.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/niksilver.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/niksilver.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/niksilver.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/niksilver.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/niksilver.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/niksilver.wordpress.com/411/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=niksilver.com&amp;blog=205744&amp;post=411&amp;subd=niksilver&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://niksilver.com/2009/05/06/solved-annoying-javafx-eclipse-plugin-problem/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ed5f211191ad95ff564f9972490f40b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">niksilver</media:title>
		</media:content>
	</item>
	</channel>
</rss>
