This week we made our quarterly release of software, which we labeled version 8.0 (as opposed to 7.x) because (a) there were substantial changes to the internal architecture to support search engine plugins, and (b) it has a re-worked configuration system which makes life easier for CogniDox sysadmins.
The headline feature was therefore the fact that user companies can select between using the 'classic' Swish-e or the Apache Solr search engine. We've blogged in the past about Enterprise Search, so I'll just summarise to say that Solr offers features such as frequent incremental indexing, federated search, ‘more like this’ searches and spelling suggestions when no results are found. All of which combine into a single benefit - one search has a far greater probability of giving you useful results.
We also support a third search plugin in Flax Search Services, which is based on Xapian. FSS is still in development, but it will be supported when it is ready for showtime within months. As we've said before, this is a promising technology. Solr on the other hand has the power of the Apache brand. It shows how far F/OSS has come when I can say 'brand' in this context :-)
I've also blogged before about another feature - better document import - so I'll also gloss over that apart from saying that it feels good to rip out a feature and start again when it brings good usability improvements.
For ages now we've stopped using Microsoft Office Project (too expensive) and have been looking at open source alternatives. We've used GanttProject and OpenProj for task scheduling and resource levelling. It's fair to say we do a lot less of this now than in the past - less spread out geographically, smaller development groups and an Agile methodology explains why - but it still comes in handy when you need to juggle constraints. In the v8.0 release support is provided for GanttProject, an alternative to Microsoft Project that provides project scheduling and management for Linux, Windows and MacOS X users. CogniDox includes an example PDF converter script for GanttProject .gan files. There isn't much to choose between the two mentioned, but GanttProject can import and export to MS-Project .mpx and .xml file formats whereas OpenProj only has saved as .xml.
Another open-source project we use is FreeMind, a free open source mind mapping application that allows a user to capture relationships as a diagram that represents ideas arranged around a central concept. CogniDox v8.0 can render FreeMind .mm files into Flash movies as the viewable version of the document. Mind mapping is one of those things that people either love or hate. One of the big 'preparation tasks' that companies face before they introduce a document categorisation system is to decide what are the information categories. We tried doing this using outline tools but it just seemed more natural to use a mind map where you start with "My Company" in the middle and then add departments, products, projects and anything else that made sense as links. So we've experimented with FreeMind as an Information Architect support tool. But it also has merit for animating a process or workflow, and that's what we are doing when we create a Flash movie from the static map. It also allows you to create linked maps, so you could create a procedure that links you to the appropriate content in CogniDox or on other systems.
Finally, there was the usual crop of small features that were direct requests from the user base. One was worthy of note: the weekly reminder email to users now includes a useful project collaboration feature – it reports on outstanding document review and approval requests from other users on shared documents. The use case for this is when you are preparing for a product or project gate review - if there are outstanding un-issued or un-approved documents you may decide to cancel the gate review until these are done as you would fail the gate criteria until this is so.
Integrating open source technologies such as Solr, Flax, GanttProject and FreeMind with CogniDox to create a platform of useful tools reminds me of a fundamental difference between proprietary and open source products.
Proprietary software is nearly always 'streaky' - excellent modules mixed with so-so efforts. In the overall interest of the product's reputation, any concerns about these efforts are frequently suppressed or denied. When you merge open source projects into one integrated whole, you can be as objective as you like about the module you are integrating. If you get it wrong, you jettison it and find a replacement. You don't need to have a 'tiger team', or the issues of managing out under-performing contributors. To paraphrase the CSI TV show, it is all about the code.