I have been working as a software developer for almost 10 years and for at least 8 of those I have worked on maintenance projects of huge applications. Now I know which functionalities are required to keep the customers happy all the time. Pay attention to the following list if you are thinking about starting a big software product for business customers.
In this topic perhaps you are thinking about globalization or the ability to change the original language of the application, but this is regarding a module or functionality where the customer could change or translate a word or message to any language. This is important because some companies call the same positions, areas or processes using a different name; for example, Delivery manager, Project manager, or Account manager are normally the same position with the same responsibilities and you can adapt your software to the customers only translating them.
Import or Bulk update:
Try to think about this situation. You already finished the perfect form to create new employees in your application with the validation for all the fields and with a high performance, but the customer needs to create 5.000 new employees. It means to create all the company on the application. For this case, it is better to upload an excel file with all the records and easily insert all of them using only one process.
Log files and Logbook:
This sounds obvious, but many people miss this functionality while planning the architecture and then it is difficult to adapt the application. Basically every error, method failing, or warning within the application must be caught and saved just because this is the only one way to analyze and get information about errors in a production environment.
Furthermore, Logbook is another important functionality where you should save all the transactions made within the application including user, date, action, and the record affected. This is necessary for example when the customers want to make an audit inside the company.
An advanced search:
With millions of records and different categories of elements, it seems difficult to find the right element without a good tool designed for this purpose. Always try to include an easy to use search within all the grid and also an advanced search including enough filters in the application.
Check status and configuration:
“Once again the application is down and we cannot find the issue”. Well, that’s common when you deploy new releases including huge changes or set new environments for new customers. Basically, you can avoid this issue by building a functionality where an admin user can easily see the current application status and also check the configuration. For example, sometimes a file is missing for any reason or some files need special permissions in a specific folder, so you can add all those validations in a “Check Status” functionality.