For a legacy system, particularly when there isn’t any lower level automation to leverage, I find it helps to start with some analysis to determine first the major functional areas of the application and how much use they receive; then repeat that analysis for sub-sections within the major areas.
This allows me to have a basic guide to approximately how much is left, and a way to ensure the most important parts of the system are covered first.
As an example, say your application is an integrated point of sale and inventory management application.
Major features would include:
- Logon (essential, must be automated because nothing else can be done with the system without a logged on user)
- User management (mainly used when personnel changes, can be worked around if there are problems)
- Store/location/warehouse setup (generally set-and-forget: new stores might open once or twice in a year, and existing stores are rarely closed down completely)
- Point of sale setup (again, mostly a set-and-forget thing)
- Payment setup (set-and-forget)
- On-site purchasing (will be used all the time)
- Pre-order purchasing (will be used all the time)
- Reporting (will be used frequently)
Login, purchasing, and pre-order would be your highest priority modules to automate, with reporting as your next priority.
Within the on-site purchase module (just to take an example) you might have such functions as:
- Inventory updates when sales complete
- Different product class requirements (for instance, widget A might be sold by size so you’d need a different product selection process than for widget B which has no options)
- Product departments
- Item types that require special handling or have related charges such as installation fees, delivery fees, etc.
- Payment types and processing
And so on.
Since each application is different the user base and use profile will differ per application, so you need to do this for yourself.
Knowing what features get the most use also helps to schedule automation for new functionality – depending on how likely it is to be used, it might be necessary to prioritize automating a new feature over catching up on an existing feature.