Expenses App Submission #2 Heuristic Evaluation

expenses-app-2
Figure 1. Expenses App Submission #2.

Overview

Overall the Expenses App Submission #2 has a good aesthetic and minimalist design. The spreadsheet-like nature matches the real world, and the functionality of adding an expense is efficient. All labels of buttons and table columns are clear and consistent. Furthermore, the contrast of the "Trinity Owes Neo" and "Neo Owes Trinity" statements in font size and color from the rest of the app allows the user to efficiently see the state of the app and the most important information.

There are four issues that I address in this heuristic evaluation. Three of them are major, or need fixing and are of higher priority. This is because they involve some of the main functionality and safety of the app. They involve the currency conversion, expense input, and personal expenses. The other issue is delete functionality. This issue is minor, because it involves adding additional functionality for efficiency purposes. It needs fixing but is of lower priority.

I utilize the Nielsen Heuristics for this analysis.

1. Currency conversion

  • Severity: major
  • Relevant Heuristics: help and documentation, visibility of system status

The labels of the "Convert EUR to USD" and "Convert GBP to USD" buttons are clear, however because there is no immediate feedback when they are clicked, it is unclear how to use them. None of the numbers in the expenses table or "Owes" statements change. There is no way to know what is being converted or if anything is being converted. There is no visual signifier of the currency conversion status or documentation to help the user figure it out.

My recommendation is to add a selection mechanism such that the user can select a single or multiple expenses to convert, and then click either the "Convert EUR to USD" or "Convert GBP to USD" buttons. The clicking of either of these buttons would then immediately display new values for expenses and un-select all the expenses.

2. Expense input

  • Severity: major
  • Relevant Heuristics: user control and freedom, error prevention

Currently there is some error prevention when inputting expenses. For example, one cannot input negative costs. However, when entering non-whole number costs, the value disappears and then sometimes reapears when adding a new expense. Having undefined behavior when entering cent values restricts user control over their inputs. It also causes errors, as the user is unsure whether their decimal expense is being accounted for or not and may try to input repetitive values.

My recommendation is to add complete support for decimal valued expenses, and to automatically round to the hundredths place, as this is the accepted standard for currency.

3. Personal expenses

  • Severity: major
  • Relevant Heuristics: match the real world, visibility of system status

Traditionally light grey fonts are used to signify disabled functionality. Because all the self paid personal expense column labels and inputs are in light grey font, and because there is no immediate visual feedback on such inputs, the app's status is unclear. Questions arise such as "Are these expenses accounted for?", "Where can one view these personal expenses"?

My recommendations to address these issues are to change the font color of the self paid personal expenses i.e. the "Neo Pays For Himself" and "Trinity Pays For Herself" columns, as well as to add two more summary statements: one for Trinity's total personal expenses, and one for Neo's total personal expenses. That way the results of entering any type of expense are immediately visible. There is then less ambiguity in system state.

4. Delete functionality

  • Severity: minor
  • Relevant Heuristics: flexibility and efficiency

Although a user can add an expense, there is no way to efficiently delete an expense. A user could potentially manually edit every field within an expense to be blank in order to effectively "delete" it, but this is not efficient. It's very possible to accidentally add an extra expense or to wish to remove an expense. Therefore, the absence of efficient delete inhibits user flexiblity.

My recommendation is therefore to either add delete buttons to every expense, or to add select functionality so that expenses can be selected and then deleted with a delete button near all the other app buttons. Furthermore, along with this addition I recommend adding an undo action so that a user can easily undo an immediately previous action such as delete.