Zk | 2010-06-19 00:12:43

blog fossil diary

My experience with software developing in any sort of managed (read: rational) way is actually rather limited.  I didn't really 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.

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.

Atlassian, however has topped all of those.  I recently followed a friend into the Dragons 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.

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 a problem with Java on Debian, 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.

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.

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).