When I first started in network automation, I took to Vim, vigorously writing out code. Was it clean code, easy to support and extend? Hell no! I have to admit it was damn ugly code. At the end of the day, I had just started out and was enjoying my newfound love for network automation.
After a short while, my script was ready to be released within the company. The tool was unleashed, gained great adoption and saved a ton of time.
You may be asking, Why on earth are you telling me all of this?
Well, it comes down to this, why was the tool so successful? It sure wasn't down to the quality of the code. No, the key to its success was the use case for which it was automating.
My point is this: When looking to automate the network, the key before writing good quality code (which is still extremely important) and before deciding what the latest shiny tool to use is this.
A well-defined use case will ensure your network automation tools and projects truly succeed.