Functional Challenges in Building Enterprise Applications
Part II of our series on “Challenges in Building Enterprise Applications” looks at the functional challenges faced by companies in building a comprehensive and cohesive IT backbone to a modern enterprise.
“First solve the problem. Then, write the code”
This anonymous quote on software coding best sums up the challenges with building enterprise applications. Understanding the IT layout of an enterprise which already has different heterogeneous software elements already in play and then knitting them all together to form a functional backbone that will drive every aspect of the enterprises’ business is key. The first step is to clearly understand the functional challenges that will likely be encountered. These include:
Authentication and Authorization:
This involves authenticating the different types of users with their varied access levels to the system. A typical enterprise application would have three different roles. These include:
- Internal users
- External clients or vendors
Within these user groups there could be further sub-groups that have access to certain parts of the system. Identifying the various groups and providing the relevant authorities is key to building a robust system with checks and balances.
Audit and Logging:
Allows for proper monitoring of information flow along an enterprise pipeline. Information moves through various states in an enterprise. Changes to data must be monitored. This reduces the risk of malicious attacks corrupting the data. Also, it helps in identifying if the source of the attack was human or a software glitch. Logging all the activities that happen helps understand where the problem has occurred. This allows you to quickly fix the problem. It also means that data files are more manageable. Auditing is about identifying who did what and when.
Validations, Sanity and Checks:
Software validation checks that the product meets the user requirements. A sanity test, on the other hand, is a run-through of the functionality of a computer program, system, calculation, or other analysis, to assure that part of the system or methodology works as expected.
This involves managing the emails, messaging and notification workflow across the enterprise. Managing the communication workflows involves being able to identify the critical time-bound communication – like say a notice to large customer base on a sale – to ensure no bottlenecks occur. This can be managed by setting communication priorities so the high priority information goes out when it is supposed to.
Reporting and Intelligence:
Proper reporting tools help run your business. A good reporting tool will help you
- Identify key staff members
- Identify your most profitable products and services
- Identify late payers
- Improve your cash flow
- Filter clients by different criteria
- See your work-in-progress
- Track sales trends
- Learn about staff habits and patterns
- Create custom reports
Configuration management is the task of tracking and controlling changes in the software. It includes revision control and the establishment of baselines. If something goes wrong, the tool can determine what was changed and who changed it. If a configuration is working well, the tool can determine how to replicate it across many hosts.
Integrations to external services:
The challenge here is to design the application in a way that it can easily integrate into external services, some that are existing today but many that might come up in future. For example how to integrate an e-commerce platform with a social media channel or maybe a mobile app.
Management of various common activities:
Involves the entire data lifecycle from Create, Access/Read, Edit/Update and Delete for a number of common activities like accounts, ledgers, users, proposals, policies etc.
This defines users, user hierarchy and maintenance. A popular methodology followed in administrative management can be summed up by the acronym CRUD. This breaks down to:
- Create or add new entries
- Read, retrieve, search, or view existing entries
- Update or edit existing entries
- Delete/deactivate/remove existing entries
This generally encompasses the day-to-day tasks related to the management of technology infrastructure components and the more granular needs of individual applications, services, storage, networking and connectivity elements of a total IT stack in any given deployment scenario. Operational management would involve server life monitoring, backup, recovery, access etc.
A modern enterprise deals with a variety of content from text, audio and video. An enterprise content management system ensures the proper flow of information to its wide array of stakeholders both internal and external.
Understanding and addressing the functional challenges involved in building an enterprise system is akin to first understanding the problem. Coding can begin only when the functional challenges are clearly identified.