I'm writing an academic paper now describing a software library that I'm developing for modeling the flow of glaciers and ice sheets. One of the points that I'd like to make in this paper is that we in the computational physics community need to look beyond just the technical merits of the software we write and also address how easy it is to learn and use. To that end, I've referenced Green and Petre's 1996 paper on cognitive dimensions and analyzed some of the design decisions that I made with respect to these criteria.

What are some other essential references on the usability of software libraries that I should cite or be aware of? I found a few papers on usability of scientific software specifically:

  • Macaulay et al. 2009, Usability and user-centered design in scientific software development
  • List et al. 2017, Ten Simple Rules for Developing Usable Software in Computational Biology
  • Rampersad et al. 2017, Improving the usability of scientific software with participatory design: a new interface design for radio astronomy visualisation software

I'm not an expert in UX, HCI, or anything related, so there's a decent chance that I've missed some seminal work in the field because I "don't know that I don't know".

  • 2
    As a researcher and a software engineer, I recommend that you pay attention to replicability. It would be very helpful if your users could fire up a Jupyter notebook and tinker with an interactive example. This should be effortless, so consider providing a Docker file or use an online service for hosting Jupyter notebooks - otherwise potential users will have to jump through hoops before they can even run a "hello world" with your library. Keep in mind that many of them will probably be glacier experts,but have limited software expertise. – ralien Mar 27 '19 at 9:43
  • Even experts in UX and HCI would argue that the best source of information comes from the actual end users. But in terms of the usability of software libraries, I think any general principles of good (software) design should still apply. It is only when you want to customzie for your specific context that you may need to know which rules to 'break'. – Michael Lai Oct 9 '19 at 2:01

Great to hear that you are writing a paper and considering the usability of a python visualization library. While I am unable to direct you to a particular paper, one good place to look at for Human Computer Interaction papers is conference proceedings of CHI and UIST. For instance, Microsoft Research, Carnegie Mellon University etc. have a good track record of accepted papers related to software usability which might be helpful to you.

Not the answer you're looking for? Browse other questions tagged or ask your own question.