Business workflow, business process
The System response time must not impact the workflow. The transition from transaction to transaction must be seamless and the user must not notice the system. One might even describe the interaction between the person and the system as graceful and flowing, where the system responds before they can even finish a sip of their coffee, do your users cozy up to the system (too far??).
Understanding each workflow in the application is crucial to setting the proper response time goals of the application. This is required to set up the software performance requirements for the system and for each transition that supports the workflow. The systems today are highly distributed with web servers, application servers and web services, and message hubs and multiple database, etc. In the software requirements phase, once the workflows are defined with performance goals, it is critical to make everyone who makes a component in the workflow aware of those goals.
There are call center workflows, document management workflows, order placement workflow, business intelligence and analytical workflow, and of course Big Data workflow.
When in the software requirements phase you might consider this checklist for the workflow;
1) Identify the workflows: Have the key workflows been defined that have performance requirements and are the response time goals defined?
2) Duration: have you defined the overall duration of the workflow? How long should the call center interaction by?
3) Downstream processing: Have you defined when the data from the workflow must be available for the downstream workflows? For instance, after collecting a customers demographic information and vehicle information, when is it available for rating a policy? 30 seconds, 24 hours?
4) Business transactions: These support the workflow. Have performance critical business transaction been defined, with response time goals?
5) System Transactions: These support the business transactions. Have you defined the response time goals for critical systems transactions supporting the critical business transactions? This is where share system transaction can be found, have your requirements captured enough performance information to tell the developer how fast this system transaction must be and how many transactions per second it will support?
6) Performance budget: Now that you have a business transaction response time goal, have you allocated the response among all the technical components supporting the business transaction? You should create a system interaction diagram to help with this, defining the time allocated across the tiers; client, web, application, message hub, database.
7) Database query requests: Have you categorized your database queries? Simple transactions to the complex? Is there a response time goal for each? Is there difference between the first request and subsequent request?
8) Report requests: Have you categorized the report request types? Simple reports are 2 seconds, complex multi table grouping, ordering reports take longer that cross fiscal quarters?
9) Discussion and negotiation with the end-user or business sponsor. All along you must be in discussion with business people who own the system. The role of the architect is to work with the business to tell them what is possible and how much it will cost. The business priorities are critical. The business might want to spend the extra money to have near real time reporting to gain advantage or they might be satisfied with a four hour reporting window.
How to handle the response time discussion
Categorize: You should look to categorize the response time into; satisfied, tolerating, frustrated and abandonment. Two seconds could keep the people satisfied, while eight seconds will make them frustrated for an online transaction. Another transaction at five seconds could keep people satisfied and 15 seconds make them frustrated.
Percentiles: You need to establish a goal for what percentage of the user population would be satisfied, 50th, 80th, 90th percentile? 90 percent of the people should have a satisfied experience.
Under what load: You need to discuss with the business people that there is a normal workload, a peak workload, an above peak workload and define target for each. This business might ok with a relaxed target where the people are tolerating or frustrated for a period of time during a peak load for a short duration.