Archive for August, 2013

Database?! But I just want to analyse my data!

Thursday, August 22nd, 2013

SOFA aims for ease of use as part of its “ease of use, learn as your go, beautiful output” mantra. But it confronts users with having to think about databases, even if just working with simple spreadsheets of data or some data entered by hand.

This was the usability problem brought to my attention by a member of the community, Jan Dittrich. Jan (, is completing a Masters in Media Arts and Design at the Bauhaus University in Weimar/Germany. He mainly does user research and usability, but has an interest in statistics as well. When using SOFA he noticed that a “database” needs to be selected for most of the activities but that it might be a rather technical concept for some of those who use SOFA. He wrote me an email addressing the problem and we subsequently exchanged ideas.

So how to address this without removing one important ability of SOFA – namely the ability to connect directly to people’s data when it is in a database (e.g. MySQL).

We explored a few options …

Initial GUI ideas from Jan

… but ended up following the principle of “the least we could do” as recommended in the fantastic usability book “Rocket Surgery Made Easy” by Steve Krug.

Rocket Surgery Made Easy

As Krug notes, tweaking is usually better than redesigning because 1) it actually gets done; 2) larger changes are inevitably going to break some things (think months of squashing all the bugs out again); and 3) redesigns annoy a lot of existing users who have gotten used to the status quo (actually Krug has 9 reasons but these are my favourites).

Anyway, I had no enthusiasm for a major GUI overhaul but it did not make sense to leave a known usability problem in place. What Jan and I came up with was rather simple and elegant. SOFA only shows the Database label and drop-down if the user has configured SOFA to connect to any databases. Expect to see this change in the next version (1.3.5).

Database details only displayed when needed

Users who have database connections will notice no difference. But for everyone else the interface will be simpler and easier to use. Sometimes, less is more.

Where to for SOFA?

Saturday, August 3rd, 2013

The SOFA Statistics project could go in a number of different directions. Ideally, it would:

  • Add more chart types and more flexibility for graphical customisation
    (without compromising the SOFA goals of beautiful output and ease-of-use)
  • Add a comprehensive array of the most important statistical tests
    (without compromising the ease-of-use and learn-as-you-go goals)
  • Make it much easier to automate reporting
  • Make publishing reports to the web, and office formats, seamless and simple.

I only have limited time to develop SOFA at the moment, so I have to choose the top priorities. Here is what I think I should do:

  • Charting
    • Make it easy to export data so it’s ready for charting using spreadsheet charting tools
    • Provide brief documentation on how to use advanced tools like Matplotlib
  • Statistical Tests
    • Make it really easy to export data from SOFA ready for analysis in R
  • Report automation
    • Provide documentation so people can automate SOFA themselves using Python
  • Publishing
    • Add a plug-in for exporting to a document format

I should also solve the remaining bugs preventing Mac users from being able to export output as images. What do people think about this direction? Drop me a line at