Projects -> Call Python from MATLAB

Call Python from MATLAB

Image for calling Python from MATLAB.

user research user interviews usability testing

Time: 2013 - 2014

Project goal: The goal of this product is to enable users to call Python libraries from within MATLAB.

Challenge: The overall design challenge was how to make an intuitive interface that best handled users' confusions arisen from having to work with two languages. MATLAB and Python differ in their syntaxes, data types, and programming workflows. As a result, a user may become confused when attempting to call a Python module from MATLAB. For example, the dictionary datatype is unique to Python. A user may wonder what to do when he/she is trying to call a Python module that expects a dictionary as input as MATLAB does not support dictionaries.

Approach: I led interviews to understand users' mental models of how MATLAB data types mapped to Python data types. In addition, I ran usability studies to understand when users expected MATLAB to automatically convert a MATLAB data type to a Python data type, and what users' expected workflows to call a Python module looked like.

UX methodGoal
Interviews To understand user's mental model of how MATLAB data types mapped to Python data types.
Usability testing (Wizard of Oz) To understand
  • when users expected MATLAB to automatically convert a MATLAB data type to a Python data type.
  • what steps users expected to see in the workflow to call a Python module from MATLAB and to get the results back in MATLAB.
  • what obstacles users ran into in that workflow.
 

How I worked with my team: I joined the project when my team had already started designing without formal user research. Instead of proposing to start over with user research which would have appeared as a back step to the team, I leveraged their request to "help us do some usability testing" to understand their true needs. I interviewed the team and the lead deveoper, and discovered that they wanted to better understand users' mental models of data type conversion. I found this to be a better fit for user interviews than usability testing so I helped them plan and conduct the interviews with internal as well as external customers. Using findings from the interviews, we refined the design and tested it through a series of Wizard of Oz usability testing sessions without having to invest in the implementation of the design.

Results and impact: I helped shape the design, save development effort, and gain buy-in from upper management as well as other stakeholders.

  • Helped prioritize development effort around the frequency of data type usage based on user interview findings.
  • Streamlined user workflows based on user’s mental model.
  • Helped team gained design buy-in from CEO and VP-level management at design reviews by providing solid usability data to back up design proposals.
  • Upper management praised the approach of grounding a design proposal with real user data at design reviews and requested more of it.