What You Are Capable of With Automation
Principal Program Manager at Scott Hanselman
If you do it twice, automate it. I’m consistently shocked when I find large companies opening two file windows and deploying mission-critical sites from Joe’s laptop. The reasons usually come down to, “We didn’t have the time” or “We lacked organizational will.”
The most powerful tool we have as developers is automation: I can’t stress this point enough. Humans are lousy at doing repetitive work, but computers excel at it. Look hard for the opportunity to automate processes down to a single button push. Even better, can you remove the button entirely? When you automate something, see if you can automate even further.
Years ago, I worked on a large banking system. We were proud to have automated the build and test, and then eventually got to the point where we “deployed” the binaries into a folder. However, we realized quickly that we don’t ship binaries: we ship complete solutions.
We changed our definition of deployment and expanded the continuous deployment system to generate a fresh virtual machine (VM) for the sales department after each build. Sales loved demoing new features but never had the time to build new demo banks. Of course not: that was our job!
We automated the build system to pop completely configured, fresh VMs out the other end. The added benefit, of course, was that we now had a build product that looked exactly like the product we sold.
Our rapidly maturing continuous deployment expanded to include better unit tests, better integration tests, and better custom acceptance tests. In fact, everything gets better when you’re no longer afraid of your deployment system. Imagine the confidence we felt in our code! We made a code change and a bank appeared an hour later downstream. If a bank came out that we didn’t trust, we updated our tests and deployments and tried again.
Good continuous deployment systems breed confidence, both in the product and in the organization. All that time we didn’t think we had? We gained time when we got this process down. All that organizational will we thought we lacked? We gained it and more when we realized what we were capable of.