Thursday, September 3, 2015

Process Automation in calculating latest Date for the application.

Just AUTOMATIC

Risk: 
Application is not able to provide accuracy in (Review, Escalation, Final, Delivery, Expected End, Deadline, etc.) date/time calculation, as the expected date/time is not calculated by considering/skipping "Holiday(s) and Non-Business hour(s)".

Problem Statement:
I have developed a program (Skip Non-Business Hours and Holidays) that would give accuracy in (review/escalation/delivery/final) date/time calculation, by considering/skipping "Holiday(s) and Non-Business hour(s)".  But, the application is doing the process based on 'List of Holidays'.  As the 'list of holidays' is get updated every year, the code of application is also need to be get updated every year.

Temporary Solution:
To avoid the code changes every year, I can configure the 'list of holidays' at the local database (or properties file).

Issue: 
Every year, 'application administrator' should be aware of this change; and (s)he has to perform this task for all applications manually.  If there is any change in the list, (s)he has to re-perform the same task once again, for all applications manually.  It's a risk.

Requirement Analysis: 
*) Application should get the 'list of holidays' from a central point.
*) 'Application administrator' should get a mail if the latest 'list of holidays' is not available at central point.
*) The 'list of holidays' need to be stored in the local database (or properties file) at once, as part of  the scheduler job.
*) Log should have the status (i.e., availability of the latest 'list of holidays').
*) Application administrator should be able to trigger the scheduler at any point of time, to get the latest 'list of holidays'.

Permanent Solution Provided: 
*) I have requested my 'Boss Prof. Ashoka M' for making the 'list of holidays' at the central point (i.e., 'global application').  So that, all other applications are get accessed the latest list, through webservice.
*) I have made the following application changes:
-> Scheduler would verify the availability of the (latest) 'list of holidays' at the "(i) local database (or properties file)" and "(ii) web-service", by comparing with present year.  This is to verify the quality of data before update.
-> The data verification and updation would be as follows:
ALERT: if the (latest) 'list of holidays' is not available at both places, i.e., at the webservice and also at the local database (or properties file); send  alert/mail to 'Application Administrator' with details.  
IGNORE: if the (latest) 'list of holidays' is available at the local database (or properties file).
UPDATE: if the (latest) 'list of holidays' is not available at local database (or properties file), and available at the webservice; store them in the database (or properties file).    
-> Log will have the status (i.e., availability of the latest 'list of holidays') with details.  
-> To get the latest 'list of holidays' at any point of time,
(i) 'Application administrator' can trigger the scheduler.  Generally, scheduler will have the update (if required) and the replace/overwrite options.                           (Or)
(ii) If 'Application administrator' removes the present data at local database (or properties file), the application gets the latest data automatically through scheduler job.

Conclusion:
The concept is very much helpful to provide accuracy in (Review, Escalation, Final, Delivery, Expected End, Deadline, etc.) date/time calculation, by considering/skipping "Holiday(s) and Non-Business hour(s)".  Even, it is possible to consider/skip 'Employee Leave Days', to improve the accuracy in calculation of the availability of particular employee date/time.    

Benefit:
Complete process is automated.  If the valid data is available at the central point (i.e., 'global application'), all other applications are get updated automatically.

Use Cases:  (Review, Escalation, Final, Delivery, Expected End, Deadline, etc.) Date has to be calculated by skipping "Holiday(s) and Non-Business hour(s)".
*) Project Management Applications (like Project Database Application, Project Plan Application, Project Execution/Delivery Application, etc.).
*) Workflow (with Review/Escalation process) Applications.
*) Leave Application.
*) Adieu Application.
*) e-Commerce Applications.
*) Visa Processing Applications.
*) Government ('Digital India'/'Make in India') Applications.  



--------------------------------------------------------------------------------------------------------------------------

Kudos to my Boss Prof. Ashoka M.
Chief Adviser, Niram Foundation

--------------------------------------------------------------------------------------------------------------------------