I spent a few hours on Sunday customizing my JIRA instance to be a note transcription tool. I started out over a year ago trying to make my own standalone Java desktop application. I later changed it to Spring web application, then a Google App Engine application, but still never finished (I spent a long time designing it though, as an exercise). Then I decided to see what I could do about just customizing an existing tool.
I started with Evernote, which was pretty great, but didn’t allow the custom meta-data that I required. I then moved to WordPress, which is very good at this sort of thing. The idea of typing a note, setting the date, setting an arbitrary number of meta-data fields, attaching scanned images—all of these concepts it handles natively, and very well. However, it is somewhat rigid in the way it works. Making everything private is difficult. The editor is heavily focused on rendering HTML, and tends to obfuscate the text with layout markup. A wiki might be better, but they tend to be a pain to set up and maintain.
Then I thought about JIRA. Most of the concepts I could port to my new domain. Books, locations, pages, tagging people, simple wiki-style markup. I added a bunch of custom fields and altered the screens and workflows for the project, and after a bit I had tuned the settings to my needs. In fact, it’s been far better than I expected: none of the overhead or privacy concerns of a ‘private’ blog, a powerful query language for finding entries, a few hierarchical concepts to support the idea of “books containing pages containing entries”—I am quite satisfied.
This got me thinking though: how many of my software ideas could be designed to utilize existing systems? I’m not trying to avoid all development (that’s the best part!), but writing plugins on a flexible system should be far easier than writing a whole new application from scratch. While I enjoy the challenge and the level of control that the latter affords me, I am starting to feel that it is a poor use of my time. I am only one person, and if people don’t want to collaborate on my projects then I need to be more efficient about seeing them through.
I have another application in mind, similar to this one. I am definitely going to investigate the possibility of using JIRA to accomplish my goals, or at least prototype the idea.