<p>My experience with software developing in any sort of managed (read: rational) way is actually rather limited. ÂI didn’t <em>really</em> know what Agile was until a few days ago, I’ve only been using RCSes for the last few years, I sold or gave away all of my O’Reilly books, and I always seem to be a little behind the times. ÂNow that I’ve been getting more and more into programming, though, I’ve decided that managed programming environments are most definitely a good thing, even as a solo developer. ÂI read up on Agile, switched from Subversion to Git in several cases, and I’ve been trying to keep a little more current, finally caving and adopting an IDE (NetBeans) and some project management software.</p>
<p>I’ve been playing with several different systems for a few months, now, ever since I started working on my first really sizable Java project. ÂMy first experiments with integral products were with online systems. ÂI worked with Kenai until Oracle took it down, and found the fact that I could have everything I really needed tied in with my project, even if it was a little slow. ÂWhen Kenai left, I switched to Google Code, which I still use in some respects. ÂGoogle Code has a significantly better interface, more consistent speeds, and of course I can commit all of my Django projects there as well.</p>
<p>Atlassian, however has topped all of those. ÂI recently followed a friend into the <ahref="http://confluence.atlassian.com/display/ATLAS/Here+Be+Dragons">Dragons</a> challenge and, as a result, wound up with a set of their products installed with evaluation licenses on my server. ÂI found it comforting in a funny sort of way that they were perfectly willing to admit that they knew that their products could be a bitch to install (my words, there), and that if you could get their software up and talking properly, they’d send you a T-shirt. ÂOf course, it was also just about the best way to learn the software possible, since the set-up had you create a project that was tied into each of the applications.</p>
<p>I started with Crowd, a SSO source for all of their projects, meaning that one sign-on would be valid for all products, even though they had different URLs (different ports). ÂArmed with some prior knowledge, painfully earned, about <ahref="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560142">a problem with Java on Debian</a>, I got that up and running fairly painlessly. ÂActually, the entire process was rather painless, adding on JIRA (issue tracking) with GreenHopper (Agile), Confluence (Wiki, documentation), FishEye/Crucible (source management), and Bamboo (continuous integration/builds) with no really big problems, other than some mess with Maven and Ant in Bamboo. ÂThe hardest part, I think, was just keeping in mind all of the changes that had to be made to all of the various configuration files, though by the end, I was only glancing at the changes required to get applications talking with Crowd, I had done it so many times.</p>
<p>I’m really impressed with the quality and inventiveness of the products. ÂAlthough Google Code and Trac, which I’ll get to in a bit, offered much the same in terms of features, both seemed rather difficult or slow to use in comparison. ÂUsually, JavaScript used in order to make a page flashy or animated is irritating at best, but when it’s used to increase the usability and functionality of the website, it really adds a lot. ÂDue to the comparatively static nature of Trac and GC, Atlassian’s products come off as much more intuitive and comfortable to use. ÂNow that I have six open projects and two implementations to keep track of, the last thing I really want is to feel like the management software is just getting in the way.</p>
<p>As noted, I have also started using Trac, for a different reason. ÂI’m using Atlassian for all of my projects, which are open source and thus get me the software for free (once I apply). ÂHowever, at one of my workplaces, I helped to implement a similar system for use with a single project, but multiple users. ÂWhile I think the Atlassian software would be great, the project isn’t open source, and I don’t think the team would’ve been willing to spring for the cost of all of the software I just set up, no matter how awesome it is. ÂThe next best (free) thing by a long shot is Trac, which was a breeze to set up by comparison, and has much of the same functionality of JIRA, Confluence, and FishEye/Crucible, but without any of the bells and whistles. ÂBut hey, I’m learning how to do some of the stuff that Atlassian does with JavaScript, so perhaps I can contribute to Trac, since it’s open source. ÂBest of both worlds, then (and it’s certainly better than using a word document to track issues and changes).</p>