<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MacWhiz Blog &#187; atlassian</title>
	<atom:link href="http://macwhiz.com/blog/tag/atlassian/feed/" rel="self" type="application/rss+xml" />
	<link>http://macwhiz.com/blog</link>
	<description>Macs, customer service, and other musings</description>
	<lastBuildDate>Thu, 26 Apr 2012 03:20:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>No, really, JIRA pisses me off.</title>
		<link>http://macwhiz.com/blog/2010/04/18/no-really-jira-pisses-me-off/</link>
		<comments>http://macwhiz.com/blog/2010/04/18/no-really-jira-pisses-me-off/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 17:56:08 +0000</pubDate>
		<dc:creator>Rob Levandowski</dc:creator>
				<category><![CDATA[Doing It Wrong]]></category>
		<category><![CDATA[Technology Horror Stories]]></category>
		<category><![CDATA[atlassian]]></category>
		<category><![CDATA[jira]]></category>

		<guid isPermaLink="false">http://macwhiz.com/blog/?p=68</guid>
		<description><![CDATA[I love JIRA, I really do, so long as I never have to do any administration to it. I&#8217;ve got a JIRA instance set up as a household to-do system.  Today, I tried installing JIRA 4.1 as a test instance, upgrading from version 4.0.  It turns out I won&#8217;t be making that upgrade for real [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmacwhiz.com%2Fblog%2F2010%2F04%2F18%2Fno-really-jira-pisses-me-off%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmacwhiz.com%2Fblog%2F2010%2F04%2F18%2Fno-really-jira-pisses-me-off%2F&amp;source=macwhiz&amp;style=normal&amp;service=ow.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I love <a href="http://www.atlassian.com/software/jira/">JIRA</a>, I really do, so long as I never have to do any administration to it.</p>
<p>I&#8217;ve got a JIRA instance set up as a household to-do system.  Today, I tried installing JIRA 4.1 as a test instance, upgrading from version 4.0.  It turns out I won&#8217;t be making that upgrade for real any time soon, as 4.1 breaks many of the plugins I need for my JIRA workflow.  If I upgraded, I&#8217;d cripple my setup beyond usability.</p>
<p>Unfortunately, Atlassian has chosen to leave many obvious and necessary workflow actions out of JIRA, instead relying upon third-party plugins to provide them.  This wouldn&#8217;t be a problem if Atlassian didn&#8217;t change their plugin API more often than Tiger Woods picks up new sexual partners.</p>
<p><span id="more-68"></span>Okay, so I figured I&#8217;d at least upgrade to version 4.0.2; I&#8217;ve been putting that off for too long.  It&#8217;s anything but an easy process, especially when you&#8217;re running the EAR/WAR version instead of their &#8220;standalone&#8221; that comes with its own Tomcat instance.  They don&#8217;t have a standalone build for FreeBSD, so I don&#8217;t really have a choice.</p>
<p>Although the process is really convoluted and something only a Java wonk could love, it wouldn&#8217;t be so bad except that JIRA&#8217;s plugin system is so horrible.  JIRA plugins are generally Java .jar files.  There are two kinds of JIRA plugin now, Version 1 and Version 2.  It&#8217;s not obvious from looking at a plugin what kind it is.  You have to either go to Atlassian&#8217;s plugin repository and find it there, and the page will tell you what version the plugin is&#8230; or you have to extract the plugin and go digging in XML files trying to find a setting that will exist only if it&#8217;s version 2.</p>
<p>Depending on whether it&#8217;s version 1 or version 2, the plugin has to go in one of two widely different directories.  If it&#8217;s version 1, it goes in a directory that will need to be wiped out when you upgrade JIRA.</p>
<p>What&#8217;s so bad about that?  It&#8217;s also the directory that houses dozens of JIRA&#8217;s own .jar files, and there&#8217;s no way to tell which ones are part of JIRA and which ones are plugins.  In fact, there&#8217;s no way to tell what plugins you&#8217;ve installed short of doing a file-by-file comparison with a clean JIRA installation of the same version.</p>
<p>Better document that JIRA installation <em>really well</em> as you do it&#8230;!</p>
<p>It gets better! Some Version 2 plugins won&#8217;t work from their new, plugins-only directory anyway! You won&#8217;t find this out until they fail to work, and then you dig through the log file—which Atlassian so thoughtfully creates <em>in whatever working directory you happened to be when you started Tomcat</em>—and see a message that you have to copy the file to the old directory!</p>
<p>Of course, if you merely <em>copy</em> the file, as directed by the error message, you&#8217;ll get another warning that there are two copies installed so you can&#8217;t use either&#8230;</p>
<p>Did I mention that every time you add or remove a plugin, you have to restart Tomcat?  If you don&#8217;t have some really rockin&#8217; hardware running your JIRA instance, that&#8217;ll bring you a minute or two of downtime.  It&#8217;s annoying with three users in one household; it&#8217;d be a bloody outrage if I were supporting a large company with this.</p>
<p>What&#8217;s particularly galling is that Atlassian&#8217;s other major product, <a href="http://www.atlassian.com/software/confluence/">Confluence</a>, does plugins so well.  You can search the Confluence plugin repository from within your Confluence instance&#8217;s administration screens.  You can see which plugins you&#8217;ve installed, and if they&#8217;re out of date Confluence will tell you so and offer you a link to download and install the latest version.  There&#8217;s even a web-upload link to install .jar files from outside of the Atlassian repository.  Atlassian <em>knows</em> how to do this right.  They just haven&#8217;t bothered with JIRA.</p>
<p>So, I do my upgrade.  This entails backing up the current JIRA instance to XML, creating a new database for the new JIRA, installing the new JIRA instance, copying over a number of settings files, tweaking my Tomcat settings, copying over plugins I&#8217;d backed up previously, restarting a few times to get the database loaded and the plugins in place, etc. etc. &#8230;</p>
<p>&#8230;and then the bloody thing doesn&#8217;t show any of my workflow actions, because I&#8217;m one plugin short.  It doesn&#8217;t even clearly tell me &#8220;hey, you have workflow actions that don&#8217;t seem to be defined&#8221; anyplace useful.  It just doesn&#8217;t show me any workflow actions. When I go into my workflow editor, the only clue is that some workflow actions look like</p>
<blockquote>
<pre><strong>Type</strong>: class
<strong>Class</strong>: com.googlecode.jsu.workflow.function.UpdateIssueCustomFieldPostFunction
<strong>Arguments</strong>:
field.value = Yes
field.name = customfield_10040</pre>
</blockquote>
<p>instead of</p>
<blockquote>
<pre>The <strong>Needs Parts</strong> of the issue will be set to <strong>Yes</strong>.</pre>
</blockquote>
<p>Notice how there&#8217;s also no hint whatsoever as to <em>which</em> plugin you previously had that&#8217;s now AWOL; you&#8217;re left to figure that out on your own.</p>
<p>After finally figuring out which plugin was missing—the one that implements the ability to change the value of a field other than the default ones provided with a generic JIRA install—installing it, starting, finding no improvement, finding the log error saying it&#8217;s in the wrong place, moving it, restarting&#8230; I finally have my workflow actions back, and I&#8217;m an hour behind on my other tasks for the day.</p>
<p>Then there&#8217;s the security patch. The boys at Atlassian had a <a href="http://blogs.atlassian.com/news/2010/04/oh_man_what_a_day_an_update_on_our_security_breach.html">rather embarrassing security breach</a> recently. It highlighted a number of XSS attacks against JIRA.  None of the code currently available for download includes the fixes, so you have to apply the patch.  For EAR/WAR installs like mine, this involves:</p>
<ol>
<li>
<ol>
<li>Extracting the patch files on top of the source for JIRA</li>
<li>Rebuilding the WAR file</li>
<li>Stopping Tomcat</li>
<li>Copying the WAR file into place</li>
<li>Backing up your existing Version 1 plugins, which Atlassian doesn&#8217;t bother to mention in the instructions, so hopefully you understand this consequence of what they <em>do</em> tell you</li>
<li>Deleting the Tomcat work directory, because otherwise Tomcat may cache the old .jar files</li>
<li>Creating a new Tomcat work directory by hand, which Atlassian doesn&#8217;t mention; if you don&#8217;t, Tomcat will appear to start but won&#8217;t actually run anything&#8230;</li>
<li>Deleting the old jira directory, because otherwise Tomcat may not unpack the new .jar files, which isn&#8217;t mentioned in the patch directions but <em>is</em> mentioned in a troubleshooting section under new installs for when you upgrade and find upon restart that you haven&#8217;t, in fact, successfully upgraded</li>
<li>Starting Tomcat</li>
<li>Waiting for Tomcat to start JIRA</li>
<li>Stopping Tomcat</li>
<li>Reinstalling the Version 1 plugins</li>
<li>Starting Tomcat</li>
</ol>
</li>
</ol>
<p>That&#8217;s one of the more convoluted &#8220;security patch&#8221; procedures I&#8217;ve ever had to deal with in over 15 years as a professional UNIX systems administrator.</p>
<p>If you&#8217;re thinking of buying JIRA for your business: If you can&#8217;t afford to hire a Java guru to be your full-time JIRA guy, don&#8217;t bother.  You will need someone who understands Java and databases and Apache Tomcat and your choice of operating system, and they&#8217;ll have their hands full.</p>
]]></content:encoded>
			<wfw:commentRss>http://macwhiz.com/blog/2010/04/18/no-really-jira-pisses-me-off/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shiny Object Development Syndrome</title>
		<link>http://macwhiz.com/blog/2010/04/12/shiny-object-development-syndrome/</link>
		<comments>http://macwhiz.com/blog/2010/04/12/shiny-object-development-syndrome/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 19:45:03 +0000</pubDate>
		<dc:creator>Rob Levandowski</dc:creator>
				<category><![CDATA[Doing It Wrong]]></category>
		<category><![CDATA[Technology Horror Stories]]></category>
		<category><![CDATA[atlassian]]></category>
		<category><![CDATA[confluence]]></category>
		<category><![CDATA[jira]]></category>

		<guid isPermaLink="false">http://macwhiz.com/blog/?p=61</guid>
		<description><![CDATA[SODS is characterized by a tendency to concentrate on developing new features that are pleasing and attractive to the developer, with a complete disregard to the usefulness, usability, or basic function of the product itself. A good example of a company full of SODS is Atlassian.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmacwhiz.com%2Fblog%2F2010%2F04%2F12%2Fshiny-object-development-syndrome%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmacwhiz.com%2Fblog%2F2010%2F04%2F12%2Fshiny-object-development-syndrome%2F&amp;source=macwhiz&amp;style=normal&amp;service=ow.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>[Edit: added one of the biggest examples i forgot while drafting this: the JIRA dashboard.]</p>
<p>I&#8217;m not particularly fond of Linux. I&#8217;ve used it, and it&#8217;s good for many things, but as a professional system administrator I prefer Solaris, or FreeBSD, or even Mac OS X (as a UNIX).  Why?  A great many of the Linux enthusiasts I&#8217;ve had to deal with have suffered from what I call Shiny Object Development Syndrome (SODS).</p>
<p>SODS is characterized by a tendency to concentrate on developing new features that are pleasing and attractive to the developer, with a complete disregard to the usefulness, usability, or basic function of the product itself. It is particularly prevalent amongst open-source developers, particularly those who work on obscure Linux distributions.</p>
<p>Developers who suffer from SODS are often heard replying to legitimate user complaints with some variation on &#8220;you can fix it yourself if it&#8217;s important to you, the source code is available.&#8221;</p>
<p>Sometimes SODS infects an entire organization.  When this happens to a company with paying clients, symptoms include: refusal to fix longstanding bugs; failure to supply updates to widely-deployed, stable versions when longstanding bugs are finally addressed; issuing updates that break existing functionality such as extensions, plug-ins, or settings.</p>
<p>Terminal company-wide SODS often reveals itself as intractable bugs pile up because the new shiny features beloved of the developers and the marketing department depend upon so much spaghetti code that it becomes impossible to fix all the problems without starting over from scratch.  By this stage, the company usually begins to hemorrhage users as the cost of migrating to another platform becomes cheaper than dealing with the SODS-ridden status quo.</p>
<p>A good example of a company full of SODS is <a href="http://www.atlassian.com">Atlassian</a>.</p>
<p><span id="more-61"></span>They make a number of interesting utilities, such as the Confluence wiki and the JIRA issue-tracking system.  These programs have a lot of neat features.  Because they are commercial programs, big companies feel comfortable buying them—they&#8217;re not some faceless open source developer.  While Atlassian does offer some nice &#8220;starter licenses&#8221; at $10 for 10 users, a corporate-sized deployment involves a substantial chunk of money, especially for a small business.</p>
<p>Unfortunately, that doesn&#8217;t mean that you get better support than you would for an open-source product. In fact, your support experience will be full of SODS.</p>
<p>Confluence has been around a while. It&#8217;s a great place to put all your team&#8217;s technical documentation. But now comes the latest version of the software, and Atlassian has stopped supporting two of the most widely used &#8220;themes&#8221; for Confluence.  (Themes are web-page layouts.)  If you upgrade, your existing themes may become unusable.  The replacement themes aren&#8217;t a drop-in replacement, so you&#8217;ll need to re-engineer your documents to get back to where you were.  Apparently the old code was unsupportable.</p>
<p>That isn&#8217;t exactly customer focused.</p>
<p>At least Confluence is reasonably easy to upgrade. Shut down the existing instance, install the new one, alter one or two settings files to change where stuff is pointed, and you&#8217;re up and running.  JIRA, on the other hand&#8230;</p>
<p>Upgrading JIRA is a system-administrator job preservation program. Even a minor upgrade involves dumping the entire JIRA database to an XML file, finding someplace to save it, and reinstalling JIRA from scratch.  Atlassian recommends you attach it to a new database instance, while you&#8217;re at it.  Once you reconfigure everything, from scratch, you can then reload all your data from XML.  Obviously, this isn&#8217;t a quick process.</p>
<p>Hopefully, you don&#8217;t have a very large database of issues in JIRA.  Otherwise, you&#8217;re going to have a very large XML file that will take a very long time to process, if your system doesn&#8217;t choke on it outright.</p>
<p>Don&#8217;t forget that you&#8217;ll need enough disk space for <em>three</em> copies of your data: two database instances, plus the XML.  And that&#8217;s presuming you don&#8217;t want to back up your data regularly—to XML.</p>
<p>Did I mention that both programs are written in Java?  Hopefully, your platform has a fast and stable Java Virtual Machine.  (In my experience, such a thing doesn&#8217;t truly exist.)</p>
<p>Now that you&#8217;ve upgraded JIRA, you get to find out which of your vital JIRA plugins are broken. You see, JIRA doesn&#8217;t implement a lot of obvious and useful features. It leaves them for third-party developers to implement via plug-in Java code. Unfortunately, Atlassian hasn&#8217;t quite figured out what the plug-in API should  look like, as of version 4.1 of JIRA, so there&#8217;s a good chance that any given JIRA upgrade will change the API and break your plugins.  Broken plugins means broken workflow, which means JIRA is broken until you can find a fix.</p>
<p>Don&#8217;t contact Atlassian for that fix, though; they don&#8217;t support any plugin they didn&#8217;t write, and they don&#8217;t even support all of the ones they <em>did</em> write.</p>
<p>But what if you do find a legitimate bug in JIRA?  Something that affects a lot of users, is highly visible, is an obvious bug in the program, and is clearly something that your expensive annual support contract should cover?  For instance: in JIRA 4.0, if you use Mozilla Firefox, your JIRA Dashboard will fail after an hour of inactivity due to malformed security tokens. You&#8217;ll have to manually reload the Dashboard in your browser to continue.</p>
<p>Well, even with hundreds of users, many from Fortune 500 companies, clamoring for a fix on Atlassian&#8217;s forums, it took months for a fix to be identified.  When it was, the fix was part of JIRA 4.1&#8230; which also includes sweeping changes to the user interface and, of course, API changes that break plug-ins.  So, upgrading to JIRA 4.1 to get the Firefox fix is a non-starter for a lot of customers.</p>
<p>Atlassian released notes on how to patch JIRA 4.0&#8230; which involved downloading Java code and splicing it into the product.  If you got adventurous and tried this, you wound up with a fully malfunctioning Dashboard.  Atlassian&#8217;s response to date has been, to paraphrase, &#8220;Oops, our bad. Upgrade.&#8221;</p>
<p>Tone-deaf doesn&#8217;t begin to describe it.</p>
<p>A more classic example of SODS: JIRA 4.0 introduced an OpenSocial-based &#8220;dashboard&#8221; that uses JavaScript &#8220;gadgets&#8221; to display the user&#8217;s main interface with the software. Previous versions rendered the Dashboard in HTML created on the server, and it was reasonably speedy.  Now, the OpenSocial dashboard <em>looks</em> pretty. It offers nerdnip like the ability to use widgets published by Google.</p>
<p>However, each gadget on your dashboard is a separate JavaScript that gets rendered by the client. The more gadgets on your dashboard, the slower it gets. If your browser has a poor JavaScript implementation (I&#8217;m looking at you, Internet Explorer), your dashboard will be dog-slow.  And you&#8217;re really in trouble if you are on a slow computer, like a PowerPC G4, or an Atom-based netbook, or an iPad, or&#8230;  Talk about a twofer; you get all the limitations of a web app together with all the slowness of your thin client.  To Atlassian, it&#8217;s apparently reasonable to require a 3GHz dual Core2 processor to get reasonable performance out of a web-based issue tracker client.</p>
<p>It&#8217;s not just JIRA, though. Atlassian&#8217;s online documentation is stored in a Confluence wiki instance. I tried reading the JIRA upgrade notes on my iPad. I couldn&#8217;t get past the first page, because Confluence refused to let me scroll.  It seems that the new themes in Confluence 3.2 don&#8217;t play nice with Mobile Safari.  Having a paid support contract, I contacted Atlassian customer service.  The response?  Here&#8217;s a list of supported platforms, if the iPad gets popular we might consider adding it.</p>
<p>Well, Safari is listed as a supported browser. I&#8217;m using Safari, albeit the mobile version.  And is there really any doubt that the iPhone OS is a popular operating system at this point?  Is it really unlikely that iPad users might want to use it to read their internal documentation?</p>
<p>It seems to me that, if you&#8217;re going to write a Web-based application like a wiki, the very first thing you should do is make sure you&#8217;re following the HTML standards to a T.  Safari is perhaps the most standards-compliant browser on the planet right now. If your application generates pages that Safari can&#8217;t render, you&#8217;re very likely doing something wrong.</p>
<p>Atlassian&#8217;s technical-support JIRA instance is full of enraged customers. Colleagues of mine that depend on Atlassian software are regretting their decision after seeing what Atlassian&#8217;s support is like.</p>
<p>In the meantime, Atlassian rolls out release after release with shiny new features, some of which seem to have little use other than to look cool.  This is Shiny Object Development Syndrome, the Internet equivalent of fiddling while Rome burns.</p>
<p>I think Atlassian should call a moratorium on the shiny-object features, and spend a few development cycles working their way through the existing defect list.  Start listening to customers and addressing their needs, even if they aren&#8217;t sexy&#8230; and even if they don&#8217;t line up with Atlassian&#8217;s vision of where the product is heading.  Spend a few releases fixing things so that the APIs don&#8217;t have to change with every minor version.  Identify the top 10 most popular plug-ins and make them unnecessary: integrate the functionality, buying out the plug-in developer if you have to.</p>
<p>(For programs like Confluence and JIRA, the plug-in libraries are almost like defect catalogues: Here is a list of all the things your customers find lacking in your software, to the extent that many of them have written their own code to overcome the problem.  Why not see this for what it is and let it inform development, instead of apparently ignoring plug-ins and breaking them without remorse?)</p>
<p>I would love to be able to recommend Confluence and JIRA.  At work and at home, they&#8217;ve generally made my life easier.</p>
<p>But then it&#8217;s time to upgrade, or something breaks, and I remember that Atlassian has an advanced case of SODS.</p>
<p>I hope that they get some help before it turns terminal.</p>
<p>For now, I&#8217;d have to recommend that readers consider alternatives to Atlassian products. The total cost of ownership is too dear.</p>
]]></content:encoded>
			<wfw:commentRss>http://macwhiz.com/blog/2010/04/12/shiny-object-development-syndrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

