I have a .Net Console application which processes jobs.
People are able to both submit and view the running and failed statuses of jobs.
To imagine a job, each one can be thought of as follows:
- Excel file in (open)
- Process the Excel file
- Excel file out (save)
When a job is scheduled, a series of processes are scheduled to run based on the type of job it is, as follows:
- Import data from Excel files
- Perform C# operations on the data
- Execute a series of sql Stored procedures on the data
- Export the results through spread gear to an Excel file
Due to the time taken for each job, I want people to get a rough idea on when their Excel export files will be ready.
Each job requires an estimated time for completion, which can be split into the groups above and/or an overall estimate shown.
My idea is to keep a record of how long the tasks took in the past and use that data for estimating, but I want to make sure there aren't already tools built into C# for doing this before I reinvent the wheel.
As a bonus, I would also appreciate any stories, tips and suggestions for estimation process time estimation in general.