Automation & Programmability
Automation & Programmability
Can you automate Automation for me? - By Intern Animesh Kumar

Here is a great blog by my intern Animesh Kumar. He worked for my over the summer and created a great tool Ptolemy: The Network Cartographer. For me it was an amazing experience and I am so happy to have had Animesh working for me this summer.


By Animesh Kumar: 


During my initial years of work in IT industry I used to work on Automation of test suites for the tools I had developed or the APIs I had written. My notion about Automation at that time was to make everything in a program or tool run automatically without any manual effort. One click of a button and it should run all the scenarios by itself, covering all the possible test cases and corner cases. For doing this, I used to think of all the possible test cases, negative or positive and automate the testing for it. But every time a new bug came in and my test suite failed catching it, used to frustrate me a lot that even after putting in so much effort, I was unable to automate the testing.


Initially it made me feel demotivated about Automating tests since it always required more effort whenever a new bug came in. But I didn’t realize it at that time that even though I had to work more to enhance the existing test cases, my old test cases were still going very strong to catch all the regressions, if any, caused by any bug fixes made. By automating a lot of scenarios, if not all, the program was certainly saving a lot of effort and time in re-testing majority of very common scenarios which were to be tested again and again for regression every time a code change happened. As I kept working on this and started reading about automation, I realized that whatever I had done so far was real automation too. It was saving me a lot of manual effort to retest the old features and the new tests getting added every week was simply making our Automation better.


After joining Juniper Networks, I got to attend various meetings and meet a lot of people, with varied level of understanding for automation. There were people having expectations that automation will remove any manual effort and once we are done automating, things will start working on it's own and there will be no manual effort required. That was the notion I had few years back and now it was time for us to change that perception and make them understand the essence of Automation. Automation is not just about automating to a level that automation starts automating itself. It's a path to make lives simpler. It's can also be taking just a small task out of an engineer's daily life which has to be done day in and day out and sometimes several times a day. You might say that it doesn't help you much as you still have to do most of your tasks on your own, manually. But the important fact that most people overlook is the time and effort saving done by automating one small recurring workflow of their daily tasks. It is important for us make people understand that.


During this summer, I worked on a project, which aimed at making lives a little simpler for network engineers. I developed this tool called "Ptolemy - The Network Cartographer" which creates a map of an already existing physical Network Topology. Initially, when I had started working on the project, I had my own fears that will this idea be widely accepted by people? After all people were doing topology map generation for years and they would have become experts in it by now. Will they choose to change to another tool? Will my tool be good enough to solve all of their problems? There are many tools out there, which do similar things or maybe provide better visualization for a topology. Will my tool be used? There were lots of doubts in my minds.


All my doubts were put to rest when I talked to people for whom the solution was being designed. Generating a map of an already existing topology can take hours and a lot of manual effort to design, even though there are many easy to use (read drag and drop) tools present in the market. Also, every time there is a change in network topology, existing graph diagram has to be either redone completely or has to be edited. When I showed them a half implemented prototype to a team of network engineers, they were really happy to see it and told me that they will start using the tool as soon as it gets ready. Also, there were other network engineers who were not looking for graph generation capabilities of my tool but wanted the information about the network topologies, which my tool generated in order to make graphs. It was after talking to both these set of engineers, that I realized that there is not necessarily a complete solution always that people need, to solve all their problems altogether. Often times it is a combination of multiple small solutions, which makes a repetitive task lighter than, it was earlier. It's important to look at automation in that way too.


Automating small portions of a large system can also make a significant impact. Also, these automated solutions must be made as per need basis and customized as per the requirements of customers or stakeholders. Working in automation team at Juniper Networks was a great learning experience for me. I got to learn new things as well as overcome some wrong notions I had about automation and a chance to develop a tool, which will hopefully benefit a lot of network engineers.


Would you like to share information on how you did it? because i have developed the same thing for Junos and is now extending it to other vendors. is your solution opensource and freely available?

Top Kudoed Authors