I
work in the back end on my current project. It is a big database reporting
project. My role is to provide the structure for new tables, write code to load
those tables, and sometimes write the code to create database views. You would
think that would be a straight forward job. Not so.
We
have a lot of environments for our system. I work in a personal schema. We have
another schema that I share with other developers. I consider that an
integration schema. Then there is a separate schema for our internal testers.
Plus one for our customer acceptance testers. We have a performance environment
with a lot of data. Then there is production.
Recently
there have been numerous problems deploying changes to these environments. The
process is for me to check code into Clearcase source code control. Then I
submit a ticket in ClearQuest to request deployment of my changes. After me
there is a long chain of people involved before my changes get deployed in the
assorted environments.
The
deployment problems culminated in a specific delivery we failed three times in
a row. Some managers tried to understand what in the world is going on. Their
conclusion was that developers such as myself need to guarantee that the
deployments are done correctly.
Now
my life involves emails where somebody will run a massive deployment which
includes my changes, produce a huge log or logs. Then they ask me if the
deployment was done correctly. LOL wut? This got old the first time I had to
pour through the logs. Not only that, I got to go to the target environment and
actually check if my changes are in there.
I
don’t want to spend my days doing quality assurance for a bunch of people who
work on the deployments and just ask me if they got it right. I want to be
doing development. Perhaps the right way to look at this is as an opportunity
to automate the verification of the deployments. I figured we could use some
kind of embedded versioning to identify what is deployed. Or I could buld some
smarts into a script that checks for the specific changes made.