Archive for the ‘rants and raves’ Category

Bugblatter – a bug tracking software for bioinformaticians

Wednesday, April 8th, 2009

rbbbot.jpg

I have spent rather too many hours over the last couple of days looking at and reviewing software for tracking ideas, plans, bugs and assigning meaning to what is supposed to fairly straightforward software development. I am looking for a simple piece of software that can run as a single user environment and can provide a list of projects, plans and bugs. Trac and Bugzilla are server side and heavy. Excel is awful and there doesn’t seem to be anything that I can run from a memory stick.

I have placed a software design brief with my contacts at Mnemosyne BioSciences and have asked for the development of a simple, OS agnostic solution that can run either as a single user from local files or can interact with a SVN server (or even as something more embedded). They have approved my design brief and have promised to develop a java tool for Windows and OSX that will provide bug tracking, reporting and management capabilities as a standalone tool. They have charged a pretty reasonable start-up fee for the project, but their understanding of the task is pretty much what I had envisioned from the start.

The name for their planned tool is “Mnemosyne Bugblatter”. Cool name, let’s see how the software looks when delivered? If anyone else could be interested in a simple portable tool for tracking projects, bugs and managing feature creep then please send a mail to bugblatter@mnemosyne.co.uk

tracking bugs, managing plans and coping with feature creep

Wednesday, April 8th, 2009

nbss.png

I am a bioinformatician. My background is as a traditional geneticist, my PhD was in the fields of molecular biology (and a little phylogenetics and domain analysis). I only entered the domain of bioinformatics during my Post doctoral years when I worked as a genome annotator for the first green eukaryotic genome project. During this time I learned a lot of PERL, moved into Python and integrated a load of stuff to link my needs with a relational database and distributed jobs across a large cluster to run the typical InterPro / UniProt / nonred type tasks. GUI was never considered (or attempted) and code remained ad hoc until broken.

Now 10 years on from these heady days, I am now writing code in C, Java, R and a little Python. During my few years as an adjunct professor at a Finnish research centre I rewrote the whole software pipeline that I imagined in Java as a rather monolithic beast and have reimplemented the whole stack as something a little more abstracted and perhaps useful over the last few years as a distraction on the daily commute to the capital city. The whole software environment is now several hundred thousand lines of code, we have a rich GUI delivered over HTML and through Java WebStart and things are finally beginning to look how they should have when I first starting planning the project back in 2004.

Critical at this point is how is a self-taught informatician supposed to handle this code? I work alone, there is no code audit and no one works with me to validate, correct or comment on my code! I maintain a single code tree and this is at least within a code versioning system (subversion for bioinformatics is great …), so I am hopefully not completely inept at doing my work.

My question is how should I really manage the long list of non-specific issues, bugs and problems that I routinely encounter. A campaign to resolve an issue that has been introduced through feature creep can take hours if not days, and during this time I undoubtedly discover many more bugs and issues…

At the moment bugs are documented within a text file of problems, issues and events. I have a todo list, and this seems rather inefficient and trivial. I know that something like Bugzilla could work, but this seems rather more complex than is absolutely needed. I also work on a train, and therefore don’t have web access for much of the commute – a client side project that can be synced through SVN would be ideal. I also work on Linux, OSX and Windows, so ideally something that is cross-platform would be great…

This seems like a tall order, and something that there is no simple answer for. What bug tracking software do other bioinformaticians use?

Enterprise documents vs. academic documents

Friday, February 6th, 2009

document_management_solution.jpg

It is time for a rant-and-rave. As someone on a tightrope between academia and industry I see the best of both, and I imagine the worst of both. I have spent a little too much time today (as an enteprise bioinformatician) in synchronising study data between a document management system at a CRO and our own document management system. We both use Windows systems (yikes!), we both use the same system from the same provider, and we are both connected to the internet. Should be simple?

No – should be remarkably difficult! Drag-and-drop folders, fight with the anti-virus (which decides now is a really good time to do something interesting with the hard disk), manually interact with certain files (that periodically throw remarkably obtuse and unhelpful messages) and wait around in a cycle of despair. The (surprisingly, didn’t someone think of this during testing) software decides that is needs to flip between Internet Explorer and some Java applet every 2 seconds rendering the piece-of-muck, not fit for purpose, MS useless computer completely inoperable for all other activities! Great!

In academia on the other hand, I feel that there are 2 camps. One the one side of the river are the core scientists, high-tech is a Word document with track-changes enabled. A file is continuously forwarded, edited, merge changed, accept changed and so on, and no one has any idea of which document is the “live version”. On the other side of the river are the more technology enabled scientists who have grasped concepts such as subversion, CVS and common repositiories. Somehow enterprise document systems bridge the river and provide collaborative tools, ease of use (for most) and frustration and despair for the few … If only I could have managed something as simple as svn co to extract everything and svn ci to put it back again!