The new version of MAT is almost here. It has a radically simplified interface compared to 0.3. This blogpost tries to explain why.
Since MAT was my first software developed for a non-technical public, I had to learn about GUI and accessibility. I tailored MAT 0.3's GUI for my personal use. This was a mistake. I am not part of MAT's main audience. Technical people already know how to deal with metadata. I do. My dad don't. This software is for people like him.
After the release of 0.3, I bugged as much as people that I could, attacking them with my laptop in my hands, shouting "Can you give me your feedback about this software please ?!", to gather as much opinions as possible about the GUI.
And I was surprised. Some of my tester feared. Literally. They where afraid of opening menus. Afraid of doing something wrong. They looked at the screen, then at me, then the screen again, not knowing what kind of black magic the backup option could do, or even worse, the mysterious force option !
I did things wrong. They where supposed to use and love my software, not be afraid of it.
Accessibility is security. My goal is the make things clear, and to prevent mistakes.
I launched all the softwares that came bundled with Xubuntu. And started to study their interface. Someone called GI Jack suggested on MAT's mailing list that MAT could take lessons from Soundconverter's interface.
I started to remove buttons, menus, functionalities, to make buttons bigger, ... and asked my fellow testers to try again. No more fear, no more panicked looks, but pleased remarks, and congratulations.
Since MAT is (hopefully) a powerful library that could also be useful to power users, they where not forgotten. The command line interface exposes way more functionalities and options, and thus allows to break files, and do mistakes. If you can't use a command line, you should stick with the GUI.
Usability is important. When you intent to distribute your software, you should try to get as much feedback as possible from your public. I didn't say that you should implement everything they ask (No, I won't implement a web interface in php.), but you should at least listen to them. Remember that you're likely not the first to think about this problematic; take a look at other softwares.
No testers where harmed during tests, and I'd like to thanks each of them for helping me to build a better software, for them.