jwcolby
jwcolby at colbyconsulting.com
Thu Jun 28 11:23:37 CDT 2007
One of the things I am doing to generate an income stream is to "rent computer time" - NOT what you might imagine!! As you know I have a client that processes large databases. The processes include manual labor (which I charge an hourly fee for) such as setting up data directories, copying data files off of DVDs into the directory etc. Beyond that however I am writing programs to automatically extract the text flat files out of zip files, import those files into a raw data table in SQL Server, then turn right around and export the data back out to CSV files, run those CSV files through address validation, import the validated data back in to SQL Server etc. All of that automated work ties up my computers for hours on end. I am building my automated tools to log the start / stop times, job number etc into a billing table. Thus as the ImportRawData job runs I am logging how long it takes to run. As the ExportRawToCSV job runs, I am logging how long the job takes to run. As the AddressValidate program runs, I am logging how long the process takes to run. As the ImportValidatedAddresses job runs, I am logging how long it takes to run. Then I bill the client for the actual computer time to run the job. This turns my computers into virtual employees, with none of the issues of real employees (taxes, holidays, health insurance). In fact I already have a couple of other clients expressing interest in an automated Address validation process where I poll an FTP location for files, download and process if any are found, then upload the files again once the processing is done. This is another process that can be automated. Each such client pays exactly and only the actual time required to do each individual job, probably rounded up to some unit time to make the books easier to keep. If the job is small (a few thousand addresses) and the total time is 5 minutes then that is how much time they pay for. If the job is large (a million addresses) then that is how much time they pay for. I can set the rate for each job based on my experience with what my costs are. For example the cost of the processor to upload / download might be small (I can run other jobs as well) but it is sucking up my bandwidth which I pay for. If my bandwidth is totally absorbed then I have to pay my ISP more for a higher bandwidth. I am already doing these processes, it is just that up to this point it was all manual, so my clients paid me my consulting hourly rate to do the job. By automating the job I can charge my client less for the same job. I will not be charging anything close to my consulting rate for computer time. OTOH, the computer can be processing jobs totally unattended, 24/7/365, albeit at a lower hourly rate. Furthermore, by segmenting the jobs (which I already do) onto different machines I can have (as an example) one of my old machines running the address validation job. One of my SQL Servers runs a CSV export to a specific directory on the Address Validation Server. The SQL Server logs the time to export the data. The Address Validation server logs the time to process the addresses. The SQL Server logs the time to re-import the validated addresses back into SQL Server, as well as jobs which then normalize and redistribute the validated address once back inside of the machine. My clients can determine how often they want their address tables (in my servers) revalidated (Change of Address validation) and the processes just kick off and run on that schedule. Other clients drop CSV files into their ftp site for address validation. I monitor those FTP sites and perform the validation. As this system smoothes out and starts running, my time is freed up from manually managing these processes and I can go back to consulting, while my computers chug away processing jobs and automatically billing the clients for their jobs. John W. Colby Colby Consulting www.ColbyConsulting.com