DevOps Zone is brought to you in partnership with:

Dror Helper is an experienced software developer has written and designed software in various fields including video streaming, eCommerce, performance optimization and unit testing tools. He is passionate about programming best practices and all things software development, and has been a guest presenter at several user group meetings and ALT.NET events. Dror's blog can be found at http://blog.drorhelper.com where he writes about unit testing, agile methodologies, development tools, programming languages and anything else he finds interesting. Dror is a DZone MVB and is not an employee of DZone and has posted 58 posts at DZone. You can read more from them at their website. View Full User Profile

When the going gets tough – automate it!

06.13.2011
| 8714 views |
  • submit to reddit

 

Let me tell you a story about my first job: a long ago I was hired for my very first software development job. I worked with some really talented people on a cutting edge technology and it was fun.

After a few weeks at work I’ve noticed something odd – Although I was hired to write code I’ve spent more than 50% of my time doing other things - I’ve administered development machines, created test environments, built installers and such.

Being a junior developer I accepted this as a necessary evil that must be done in order to produce value for the organization…

Fast forward a few years I’m no longer a junior developer but the overhead is still the same – but something changed, I no longer spend my valuable time doing repetitive tasks.

 

nummi39 Corolla Assembly Line, Fremont CA 2000 by CanadaGood

 

The change didn't happen overnight, I wasn’t even aware that I had a problem until while complaining about the hassle of releasing a new product and how long it took – my team lead asked my why I didn’t automate the process.

A few words about the release process: it was well documented and consisted from multiple stages - from building multiple installers based on the product offering to uploading the results to our site using FTP.

Automating this process seemed like a lot of work most of it pretty trivial when done by hand - it seemed like a bad tradeoff to work two days to create an automatic release process instead of two to four hours to release the product manually. To my amazement my team lead insisted I drop what I was doing and do exactly that, after two days I had a release process that with a click of a button – fire and forget style. Since then I no longer needed to do the tasks that was the manual release – and looking back at it I know today that it was an error infested waste of time.

I’ve understood my lesson – and nowadays when I find myself frustrated with a task I do I immediately look for a way to automate it, not only is it a waste of my time but because manual steps need to be documented while an automatic script is self documenting.

One example for a process that must be automatic is Continuous integration - It always amazes me when a development team fails to automate it’s CI process – Instead of trusting all of the developers in all of the teams to remember to run all of the unit tests each time – have a server that gets the latest version of the code and runs all of the tests for you. Although it’s still a good practice to run the tests on your machine before commit/check-in we’re human and so we err.

My advice to you is - next time you feel like you’re wasting your time doing a boring repetitive task, just ask yourself how you can automate it…

References
Published at DZone with permission of Dror Helper, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Cloves Almeida replied on Mon, 2011/06/13 - 6:56pm

Since "kanban" is a hit in agile circles, we should take another more important japanese manufacturing practice, the kaizen.

It preaches everyday step (not revolutionary) improvement of work. Through automation (or autonomation), better tools, better communications and waste elimination.

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.