«The only problem with Microsoft is they just have no taste.»
A colleague of mine is currently developing an outliner. There is a surprising scarcity of good outliners, esp. for Windows. Even on the Mac there is room to grow. While OmniOutliner is nice (if also very expensive), it gets sluggish when it has to deal with large amounts of data.
Seriously, just extract the text of «War and Peace» and copy-and-paste it into OmniOutliner. Yes, it’s a stupid example, nobody would put this kind of text into an outliner, but try it and you’ll see that OmniOutliner becomes useless. It’s not just sluggish, it takes seconds to react. And it’s only 15965 rows (574044 words, 3203406 characters). There is no reason why this should put any app on its knees. Especially not one running on a current generation MacBook Pro with 16 GB of RAM and a fast processor. I’ve adapted to this problem by breaking down my longer outlines into separate files. It works, but it’s not nice to work this way.
So, if there is a need for a well-designed outliner, which features should it have?
If there is one feature that determines success, it’s this here:
Rapid Stable Response: The second worst thing any productivity software can be is sluggish. You use it frequently, and you use it when you want to quickly accomplish something. So any outliner program must be fricking fast. As written above, it must work the same with large amounts of data. It should not make any difference whether it’s the items of a s short shopping list, or all the steps for the invasion of the Normandy. This likely means using something else but zipped .xml files. Perhaps an sqlite database. Something that is very fast and does not require you to load all the content at once when you open the file. Of course, speed isn’t everything. It must also be stable. This is actually the worst thing any productivity software can do: lose or corrupt data. There is no excuse if this happens and it can happen easily. Circus Ponies Notebook had this problem, rarely, but often enough to be very, very annoying (and scary).
These are the potential showstoppers if not fulfilled:
No Data Island: Never use any app that does not allow you to export the content. So yeah, the app should allow export to a few common file formats. OmniOutliner does this very well, offering not only OPML but also plain text, Excel, Word, rtf, and a few others.
File Import Functions: If a new app has any chance, it should allow for import of other outliner files. Some can export their content to OPML files, but given that attachments are usually not exported, importing the original files would be very helpful. It’s not that difficult either — OmniOutliner (save as flat file) are just .zip’s with three xml files and an attachment folder.
Excellent Keyboard Shortcuts: It’s easy to forget the obvious, but given most interaction will be via keyboard, shortcuts for indenting and outdenting the cells is crucial. Same with having a key to start and stop editing the contents of a highlighted cell.
Able to Deal With at Least Two Columns: Might be a special use-case, but outliners are really useful for collecting and sorting information. And if you work in Academia, you always need to cite the information correctly. So you need to know the source. A second column is very helpful here. Auto-filling this column would be a plus (e.g., selecting it and pasting the same text in all cells, akin to Excel). For OmniOutliner, there are workarounds.
Different Ways to Paste Content: There should always be the option whether to paste text as plain text, or whether to keep the formatting. Giving an outliner has to swallow information from lots of different sources, I strongly prefer to copy-paste without formatting. In a few instances, however, keeping the formatting is highly useful.
Search Function: Another thing that is easily overlooked, but search should work very well and be very fast. RegEx would be a plus, but not necessary for most users.
Works on Mac/PC and Mobiles: While most people will work with outlines on their PC/Mac, a mobile version is extremely useful. Especially if you like to just bring your iPad (or any other tablet) into meetings. As for the mobile version, a pure view-mode without the ability to (accidentally) make edits would be very useful. Also, quick navigation is crucial. This is something where the (highly expensive) OmniOutliner iOS app fails miserably. Not even an expand/collapse all is implemented, and it’s to easily to accidentally move/edit content.
Update: Checkboxes: Okay, forgot this one. If you use Outliners for writing papers and do not use all cells/rows, checkboxes are extremely helpful, esp. if well-implemented. OmniOutliner can only display checkboxes for all rows or for none, Circus Ponies Notebook was more flexible here. You could simply select the cells/rows for which you’d want checkboxes. Additionally, there should be an option whether the parent checkbox gets automatically checked once you check all child checkboxes or not. Yes, you can simply add one additional child checkbox (“Okay to have parent checkbox checked”) but that’s inconvenient.
Very useful functions
Formatting: It’s not a showstopper, because outliners primarily have to deal with information, not nicely formatted text, but having the usual formatting options would be nice.
Cell/Row Styles: Pre-defined styles save lots of time and can be useful to display the information differently. OmniOutliner does this very well by offering a style pane. Auto-formatting the cells based on the indent level might be nice, but it’s not something I normally use. Assigning a style for headers or for code, however, is very very useful.
Templates: Something OmniOutliner does well, allowing you to quickly format the whole content. However, it could be improved by providing additional options and leaving the content intact. A bit like changing the .css file (web) or formatting styles (many apps) only.
Section Views: Again something OmniOutliner does very well. Seeing only the top level, or the next levels if you expand it, is very useful for quick navigation. It also allows you to focus on one section, removing all the other content from view. However, it would be useful if this focused view comes with some highly salient changes. Otherwise you might open an outline, overlook that it is focused on one section, and thus overlook lot of its content.
Update: Showing the amount of rows, words and characters. Especially the amount of rows is very useful when you slaughter an outline (delete each row when you have processed it, e.g., used in a text or summarized in another outline). It’s a simple progress bar.
And frankly, that’s pretty much it. For a first version. It’s not that much. But it’s hard to do well. And creating a nice looking outliner app that becomes sluggish and useless with increasing amounts of content (looking at you, Omni) is a likely scenario.
Personally, my vision would be to have an outliner app that works on Mac/PC and mobile devices, is frickingly fast and allows you to quickly view the content. And yeah, it might be influenced by an affinity for Star Trek (back before it became a sexually transmitted disease), but I think an LCARS layout would work very well as one template.
Just have a look at the following image:
You could easily use the colors to highlight which entries have children. Especially for just viewing the content (and perhaps adding an annotation or two) it would be very very useful.
Hmm, reminds me that I have a couple of notes for this kind of app, and the additional function a version 2 could provide. After the basic functions work well, of course.
But yeah, there is room for a good outliner, no question about it. But whatever you do, make sure it is stable, never loses data, and is able to work with huge amounts of data and frickingly fast as with a few rows.