You can’t automate what you can’t understand.

When I first arrived at my current company I was placed into a group of architects that worked on spending accounts. My manager at the time called me into his office: “Hey…Can you be our DBA?” Well, being that I just arrived I couldn’t really say no.

That is when the trouble started! The group already had two DBA’s: They managed the environment and you didn’t ask questions. As I delved into the job, I found a few issues:

  • The DBA’s didn’t use process or procedure: Everything was on the fly.
  • The various environments did not match: Not the data and not the code.
  • Turns were an exercise in terror: You never knew what was going to break, but something would.
  • Environments could be used interchangeably. If they needed to move a production file to a vendor, a QA box would do as well as a production box.
  • Nothing, I MEAN NOTHING, was written down. The DBA’s managed though tribal knowledge.
  • Application metadata was spread everywhere. On occasions it would get loose and a cancellation email from the QA box would be sent to a customer…to great embarrassment.
  • We were the only unit that used both replication and clustered servers in the company. And to top it off, replication was transactional/real-time. I almost felt special. Worst case scenario? Imagine working on a 6 hour snapshot and have it fail on hour 5…During a Production Turn…at 3am! (Yeah…that happened!)

Needless to say, this was not the most advantageous place from which to start. In short order both DBA’s were gone and I was alone. Now I did get a transfer of knowledge, but just enough to scare the heck out of me. And to add gas to the fire we were moving to Agile/Scrum. I had to act and act fast! And the strategy…Automate everything!

Steps to Automating Anything

  1. Understand the Process – Work though in your mind what the process is doing. Talk to owners and users, read available information, research like processes. Understand the whole process: You can’t automate what you can’t understand.
  2. Document the Process – Keep a written record to refer back to during the rest of the process. Information not committed to writing will slowly, but surely, be lost over time. And some automation efforts take quite a bit of time.
  3. Research the Process – Based on the documented process, research and acquire the necessary tools and determine the tactics necessary for automating the process.
  4. Breakdown the Process – Based on the research, break the process into related steps of the process (work units) that can be automated using the acquired tools.
  5. Automate the Process – Take each work unit and with the selected tool/technology, automate it. This becomes an element of the process.
  6. Integrate the Process – As work units are completed, integrate them back into the existing process. In this way you can immediately benefit from the effort.

It’s that easy…in theory. And with a little practice it can be quite easy and have a big payoff. How well does this work in the real world? We’ll discover this in my next automation post.

Leave a Reply