Provide all of the steps you would take to analyze feedback from users of an existing application, plan design changes, and complete a refactor of the application.
At your firm's financial services client, a senior transaction advisory group has complained about an existing application. The group handles hundreds of high-value, current financial transaction approvals, related to many thousands of previously approved clients. Because these transactions are time-sensitive, multiple executives often monitor the same queue simultaneously to complete reviews assigned to their group. Their primary issues are not knowing when tasks are completed by other group members, abandoned tasks that have an "in progress" status, delayed task completion time, lack of transparency into assigned tasks, and an inability to reassign tasks they've accepted. Additionally, the group complains about load times for the high volume of data they manage, and irrelevant transactions and tasks showing in their dashboard.
Answer
This question addresses delivery methodology and multiple technical design aspects (task locking, UI/UX, and query performance improvement).
Delivery Methodology
First, to address this group's feedback in a holistic approach, start by capturing and analyzing the specific pain points the group has with the current application and workflow. Then, get group approval and prioritization of user stories to address the feedback as well as a project plan with estimated number of development sprints (or duration) to complete the work. For example, while it is clear that the group would like to approach the problem using a form of task locking, it is critical to determine the group's preference for optimistic or pessimistic locking.
Task Lock and Communication UI/UX
After determining that pessimistic locking is likely the best approach, the application will require developing the lock mechanism, UI improvements to display assignments, task lock timers, and alerts for assignments and completed tasks. Additionally, the group prioritized adding task reassignment functionality. For example, if transactions requiring review are displayed in a grid, add a column showing the currently-assigned user and/or a reference status for the lock, and add conditional logic to prevent launching the task if it is locked. To add the initial pessimistic task lock in the task process model, compose a Lock stored procedure to write a Lock CDT that runs when a user opens the task, and write the task record assignment, and add a timer event to the task lock feature that releases it after a time period agreed upon by the client. Finally, add a new related action to the task to allow reassignment, and add alerts for 1) when a task is assigned to the group, 2) when a task that was assigned previously has been completed.
Performance Improvements
To troubleshoot performance improvements related to load times and irrelevant data on the tasks dashboard, begin by reviewing the queries that bring data to the interface. Steps to troubleshoot this include reviewing the size of the query responses and relevant fields, checking whether the data is available as a synced record type, and performing database volume testing. For example, if the dashboard only shows certain fields in the Task list, remove unnecessary fields from the query. To reduce irrelevant data, add query filters based on the team assignment and other relevant references such as region, industry, or record status.
The approach addresses the group's feedback with a total lifecycle perspective. It captures and confirms the feedback, gets group buy in and approval, establishes a clear project plan, and implements more advanced functionality and UX/UI improvements to the application.