01-17-2025 02:27 AM
Hi Guys
I am thinking of sending some of my team on Cisco programming / automation courses, such as the PRNE / CSAU
I would like to know what benefits you guys are having from such courses, what are you doing with python scripts etc and how they can benefit you?
Cheers
Solved! Go to Solution.
01-17-2025 07:22 AM
The benefit can range from negative to positive for your enterprise. Much depends on how such capabilities will assist your enterprise vs. the cost of using those capabilities.
Usually, and unsurprisingly, networking groups know little about software development and its ongoing "care and feeding". I.e. they often miscalculate the value, to the enterprise, for creating their own software based solutions and also miscalculate the initial and ongoing costs to maintain such internal software.
@bigevilbeard's reply presents a couple of excellent examples of using internally developed software, but even ignoring the cost of his time developing that software, what happens if he leaves, especially if the networking devices "change" requiring modifications to the software he developed?
Don't misunderstand, I'm not saying what he described as having been a bad thing to have done, but neither am I saying it was a good thing, insufficient information to say.
BTW, for the record, in modern parlance, I'm a software engineer who often pretends to be a network engineer. ; )
A fine example of benefiting from internal programming, while at one company, with about 5,000 network devices, most being L3 running OSPF, we were given the directive to change all their area attributes; a huge manual change and with possibly a long time with parts of the network being disruptive.
Actually, we used two different approaches, on different sections of the network, the night of the big change.
One group, basically, updated L3 startup configs with the revised area attributes and scheduled all revised devices to reboot at the same time.
In my case, I wrote a Python script to walk the OSPF tree, from core, using each device's internal telnet to connect to downstream peers and applied changes, dynamically, from "leaves" working back to core.
Since this was, in theory, a one time change, ongoing support of my Python script wasn't an issue.
Both approaches accomplished their conversions. Which was "better", hard to say. Overall, believe more man hours were invested in the manual configuration changes. In theory, the manual conversion's execution took less time, but in actual execution, some (few) devices didn't come back on-line when they rebooted, and it took time to resolve them. So, overall change execution time, as an average, was about the same.
I'll also say, it's nice to have this skill set on-hand, so you can do automation you otherwise could not do, but conversely, the fact you can do something, doesn't imply you should do something.
Then there are a couple of "touchy" people issues to consider to. First, the possible cost to provide such training. The possible additional cost to retain your newly trained engineers, as they're now more market valuable. The chance in losing such engineers because they are unable to use their new skills.
01-17-2025 04:10 AM
Hey @carl_townshend these are great courses, also look at the Cisco DevNet tracks/content for network automation, lots of free resources on this side. When i started network automation (almost ten years back), this was due to many mistake of things being done by the CLI, tasks not scaling. The first project i undertook was just grabbing information from devices, this was low level as it made no changes and there was little risk, anything form getting devices versions, to interface/BGP status and traffic monitoring and often dumping this into an excel sheet for other teams. Look to start with the tasks which are repetitive such as these.
My first major network automation build was to build BGP session at IXP's as this was taking a lot of my time too, using an peering website to grab the partners details and configure the BGP peering session, this was done with Python, Jinja2 and YAML.
Really, you are looking to safe time, ensure consistency and repeatability with automation of your network.
Hope this helps.
01-17-2025 07:22 AM
The benefit can range from negative to positive for your enterprise. Much depends on how such capabilities will assist your enterprise vs. the cost of using those capabilities.
Usually, and unsurprisingly, networking groups know little about software development and its ongoing "care and feeding". I.e. they often miscalculate the value, to the enterprise, for creating their own software based solutions and also miscalculate the initial and ongoing costs to maintain such internal software.
@bigevilbeard's reply presents a couple of excellent examples of using internally developed software, but even ignoring the cost of his time developing that software, what happens if he leaves, especially if the networking devices "change" requiring modifications to the software he developed?
Don't misunderstand, I'm not saying what he described as having been a bad thing to have done, but neither am I saying it was a good thing, insufficient information to say.
BTW, for the record, in modern parlance, I'm a software engineer who often pretends to be a network engineer. ; )
A fine example of benefiting from internal programming, while at one company, with about 5,000 network devices, most being L3 running OSPF, we were given the directive to change all their area attributes; a huge manual change and with possibly a long time with parts of the network being disruptive.
Actually, we used two different approaches, on different sections of the network, the night of the big change.
One group, basically, updated L3 startup configs with the revised area attributes and scheduled all revised devices to reboot at the same time.
In my case, I wrote a Python script to walk the OSPF tree, from core, using each device's internal telnet to connect to downstream peers and applied changes, dynamically, from "leaves" working back to core.
Since this was, in theory, a one time change, ongoing support of my Python script wasn't an issue.
Both approaches accomplished their conversions. Which was "better", hard to say. Overall, believe more man hours were invested in the manual configuration changes. In theory, the manual conversion's execution took less time, but in actual execution, some (few) devices didn't come back on-line when they rebooted, and it took time to resolve them. So, overall change execution time, as an average, was about the same.
I'll also say, it's nice to have this skill set on-hand, so you can do automation you otherwise could not do, but conversely, the fact you can do something, doesn't imply you should do something.
Then there are a couple of "touchy" people issues to consider to. First, the possible cost to provide such training. The possible additional cost to retain your newly trained engineers, as they're now more market valuable. The chance in losing such engineers because they are unable to use their new skills.
01-20-2025 01:37 AM
Nice response Joseph, although my take on the whole training thing is a quote a hear time and time again, "imagine not training engineers and they stay" this is more dangerous than training them and hoping they don't leave
01-20-2025 06:18 AM - edited 01-20-2025 06:19 AM
Interesting quote, but I'm not arguing against training, just noting unused training may lead to job dissatisfaction and any training may lead to increased value of an engineer, which if also I unrecognized, may also lead to job dissatisfaction.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide