My Plan to Automate Myself Out of a Job

Ever see a cop on the side of the road directing traffic at a construction site? Or see a cop just standing around providing security at a football game? That must be a pretty cushy job right? That guy or gal probably went to roll call that day, crossing their fingers, hoping they would get to work the football game that shift. That would be cool, but who's out doing the routine patrols? Are we, the taxpayers, paying the cops overtime for this?

A lot of people don't know this, but things like directing traffic at construction sites, providing security at events and graduation parties are all duties that fall outside an officer's regular duty hours and the cost of the officer is paid for by the individuals and organizations requesting them. For instance, a construction company needing traffic control actually pays the officer and rents a police cruiser (if one is requested). This is called special duty and I'm temporarily administrating all of this while the regular coordinator is on maternity leave. With her absence, I've begun to appreciate her mental organization skills and memory. This job involves taking requests from multiple groups of people, checking inventories and staffing, getting command approval to work the job, posting the job, recording those who bid on the job, reviewing their personnel file to see if they've done anything bad to warrant not being allowed to work special duty, and then assigning the job and notifying the person who made the request. That's not all, you've also got to generate invoices, process and verify checks from the vendors, and distribute checks for the officers who work.

That might all sound difficult and I often get praised for simply taking on the job, but theoretically it's not. Its all a matter of being detailed-oriented and doing the same thing over and over and over without making a mistake. Wait a second...

Doing the same thing over and over and over and over and over again = routine work
routine work = an opportunity to enhance a human being's function or eliminate them completely through automation!

I've been teaching myself automated testing tools and developing the skill set necessary to land a job in that arena, but I understand Ruby well enough to know that everything I've done at this job can be replaced with a few scripts. In fact, they are scripts I've used before. However, remember I'm really not automating myself out of a job, I'm automating the well-organized young lady who just had a baby... Don't hate me just yet because there are two important facts we must remember:

  1. We work for a law enforcement agency, which is a government agency and so we'll always have a job unless we really screw up or leave. 
  2. There are certain human aspects to this that you simply cannot program. I will likely make her job 100,000 times easier rather than put her out of work. In fact, my goal is the purest of the two: make her job easier!
While, I believe I have all the tools to make this work there's one big problem that I'm not sure how to solve yet: making it look pretty. When she comes back to work, I want to make her program pretty and I'll need something that I believe can handle the task: rails. I'm going to work through the tutorial and learn rails as best I can with the end goal of automating us out of work. And really by automating us out of work, I really mean doing away with a large part of the workload.

This excites me because I don't have to wait to solve real problems, I'm working on solving a real problems  now that will make the lives of people I know easier now and create a cost savings down the line. This is what programming is all about. Let the fun begin!