Why is automation key to software development?

During the AWS Summit in Paris  AWS Summits 2016 | Paris  last week Werner Vogels, Amazon CTO stated automation is key to meet the reliability, performance, and scalability expectations customers have.

I would say automation is not key by itself. Good automation is key, which raises the question of what is good automation.

To develop good automation the first step is "know why you automate" the automation is not an end, it's a means to an end.

That should drive any automation effort. 

Any automation effort should be to prove a point, validate the software can be installed,validate a feature is working, measure how long it takes to perform specific tasks or if those tasks can be performed at all.

Automate because you're lazy, it's not interesting to go and execute the same actions over and over manually. What is interesting is the analysis of the results and what we can learn from them.

The quickest way between two points is a straight line, the simplest way is often the most efficient. Do not add unnecessary complexity.

The better the automation will be (and by better I mean easiest to run , robust, reliable and hands free) the more value there will be in that automation so long as you don't derive from the main rule "know why you automate"

 Knowing why you automate enables you to understand the steps of your automation.

Do not cover only the happy path, each step has to account for the unhappy path, plan for the troubleshooting inside the automation. If your automation is a test  you want to let the environment in its failed state to allow better troubleshooting.

Think of automation as building a construction, you don't start building a one level house and then towards the end decide you need a second floor, build so you can add as many stories as you want to the structure you are building.

Plan the automation as early as possible, conceptualize, validate through a proof of concept, be detailed oriented but keep the big picture. Build blocks you can reuse as much as possible.

Scenarize your automation, duration  individual actions should be parts of a scenario you handle at the configuration level, the same automation should ideally cover a large amount of different actions which derive from that configuration file or files.

Gather metrics from your automation. The metrics will allow you to validate or disprove the assumption made prior to the automation.

Plan for evolution, automation is never complete, it must be designed to run forever, the only way it can run forever is that it must evolve to remain relevant, easy to run, robust, reliable and hands free.  

Ramin Jabbari, BSc. MBA

Senior Financial Analyst at Molina Healthcare

8 年

Good work.

回复

要查看或添加评论,请登录

社区洞察

其他会员也浏览了