Enhance performance and user experience through technological advancement
The project focuses on transitioning from AngularJS to React. This decision was driven by several critical factors.
Security & Support
AngularJS is no longer developed and supported, leaving the system vulnerable to new security threats.
Developer Skill Set
AngularJS v1 is a less popular skill set compared to React and TypeScript, making it harder to hire skilled developers.
UI/UX Optimization
The migration provides an opportunity to rebuild and optimize the interface and experience for all users.
The new frontend is now available as an option to all current users and is being demonstrated to prospective customers. After addressing feedback and completing the development of the entire app, the new frontend will become mandatory, and incoming users will be trained on it.
I had some time today to work with the new look and I am loving it!
The UI for Settings is great. It's more appealing to the eyes.
To identify problems with our front-end, I used several methods:
Heuristic Evaluation
I reviewed the user interface against usability principles, spotting areas where our design might fall short.
Internal Team Interviews
I talked to product owner, product manager, developers and customer success team members. Their deep understanding of the product as well as their regular interaction with the users informed the key insights into usability issues.
Feature Request Tickets
I examined user-submitted tickets to understand what features users felt were missing or needed improvement.
Hotjar Recordings
I watched recordings of users interacting with our app to see where they struggled.
Visual hierarchY
Problem
Some forms were long and unorganized, resulting in users feeling overwhelmed by the number of fields to fill out.
Solution
I grouped relevant fields together under clear labels to improve visual structure and usability.
Consistent pattern
Problem
Inconsistent modal presentations, with some forms entering in the center and others sliding in from the right, led to a fragmented user experience.
Solution
I standardized the UX pattern for forms, using a slide-out from the right side. This maintains context for users by allowing them to see the background and simplifies responsiveness. For high-risk actions, such as deleting a record, I used center-screen modals to ensure these actions grab full user attention.
User Efficiency
Problem
The drag-and-drop interaction for data table columns required users to precisely place the targeted item in the correct position.
Solution
I separated the interactions of selecting and reordering columns. By clicking an unused column, it will appear at the bottom of the selected column list. Users then have the freedom to rearrange or remove selected columns as needed.
Error prevention & Recovery
Problem
The old app lacked the capability to guide users through complex processes by breaking them down into simpler, manageable stages. If users made a mistake, they had to start over from the beginning.
Solution
To circumvent errors and enable users to recover from inadvertent mistakes, I developed a consistent wizard pattern which has been implemented in other areas of the app where simplifying complex processes is necessary.
Mobile responsiveness
Problem
A mobile app is one of the most requested features, as it would allow users to work on deals or bookings on the go. However, the lack of engineering resources makes this unlikely to be developed at the moment.
Solution
To meet user needs while balancing our internal resources, we opted for a mobile-responsive approach to our current web app. This allows users to access and perform key tasks on their mobile devices without requiring the development of a full-fledged mobile app.
Balance between legacy and improvement
Although one of the goals was to improve the user experience, I had to consider that users were accustomed to existing patterns and often resisted changes, even when they were for the better.
Employ the right methodology
Although our team was using Agile, which involves frequent testing, this project required Waterfall, a more traditional approach because ensuring a successful migration was more critical than validating improvements. It took us some time to realize that even older methods still have their place.
New Development
While the migration was underway, the team had to keep addressing users' growing feedback and requests. This created challenges, as work needed to be done on both the old and new frontends. Although the situation was less than ideal, constant communication and regular conflict checks helped us manage the process effectively.