AN INTUITIVE, POWERFUL TOOL TO REPORT ON ALL LOGICAL VALUES IN THE SYSTEM. Providing the clients with the business-specific analytics they require in an integral and HOLISTIC way.
Challenge
The system has different modules used by different users. The provided datasets are not comprehensive enough, performance is not great and the UX is not intuitive.
Solution
Create a new reporting tool that is as dynamic as the system (if a new field is added in the product, it get automatically added to the reporting tool), flexible, comprehensive, performant and has a UX that is simple to use and discover.
High level Design
A SQL-like tool with live preview that lets the user create the data sets by selecting the relevant tables, fields and join any relevant data based on their needs.
Epic List
Data model - create a layer of data on top of the database, exposing only user-visible data.
UI - implement the basic UI, with panels consist of tables/fields list, filters, grouping, aggregations and a main live preview panel.
Functionality - Connect the functionality of reporting, filtering, grouping, joining and more into the UX.
Report Definitions - the concept of loading/saving a definition to be reused, properties of a report.
Output types - in which format is the report going to be consumed - add CSV, Word, PDF, XML.
Security - hook the new tool up to the existing security model.
Command line capabilities - implement a command line capability that can use a report definition and out put the report in the set output type.
Custom fields - add an expression editor with a simple formula box, including lookups of different fields and basic calculations.
Evaluation
This new tool was not backward-compatible with the previous tool, so the initial measure of success was to see if it’s being broadly used. The users indeed adopted it very quickly for any new reports they needed to build. For existing ones, the transition was more gradual. Whenever a user was hit with the old tool’s limitation, our support team advised them to switch to the new tool, and demonstrated the ease of creating a new report.
Almost no new features/bug fixes were done in the old reporting tool.
The number of support cases around reporting were decreasing as most of the challenges were addressed in the initial design.
One limitation of the tool is actually its being limitless; there were cases in which the users joined too many tables and then performance was hindered. Those users were given support and training, but we also gathered we’ll need to implement some mechanisms to prevent misuse of the system.