It’s no secret that one of the biggest challenges network engineers face when they embark on the network automation journey is the lack of concise documentation in open source projects. In many cases, I find myself digging through the code of projects to understand how to use it (therefore my preference for strong typed languages).

SOURCE: http://opensourcesurvey.org/2017/
Source: http://opensourcesurvey.org/2017/

While documentation is important, I’d say usage examples are even more so. Think of network engineers accustomed to reading extensive configuration guides. It’s no wonder why YAML is appealing to many of us – we need concise and simple examples. Don’t get me wrong, even most senior developers spend a good amount of time searching for code examples in StackOverflow.

Good developers copy; great developers paste. - Kelsey Hightower
Source: Twitter.com

You don’t have to be a code contributor or an expert to help with improving the documentation of a project. These days you can create your own repo to document your findings, and that might benefit others.  For example, I recently wanted to get started with pyATS and Genie. After some research, and a lot of trial and error, I knew the best I could do to contribute back was to post what I was able to figure out.  It’s not a comprehensive guide, but might save some time to someone out there that won’t have to start from scratch.

On the other hand, if I’m writing some code for a library, I want to make sure I provide enough examples. I’ve received very valuable feedback on my IOS XR gRPC library – ranging from things I didn’t consider, to great ideas for improvement.

You can also share the code of an integration you are working on. Not long ago, someone on our team thought it would be a good idea to configure a multi-vendor network via Slack using NSO. Here are the details of the proof of concept we put together. Of course it’s possible you might not like this idea, but at least it’s a good example on how to use Slack and NSO API’s.

Is there any new technology you are playing around with? I remember when I first learned about model-driven Streaming Telemetry, I felt I was drinking from a fire hose! To help alleviate that feeling, we would create tables that store only the info we needed, which we could then put in a relational database.  Check out this example in which we showed how you could print out this data for ease of consumption.

Speaking of API’s and Streaming Telemetry, I cannot finish this without making reference to one of the most common buzzwords nowadays – “closed loop automation.” Here is my basic example using OpenConfig and ygot.

Bottom line is you don’t necessarily need to write code to contribute to opensource or publish something on GitHub. Go share your ideas, you will not only help others but also learn a lot through the process. You can find these examples and more in DevNet CodeExchange.

I hope this inspires you to document your own examples. I’m looking forward to learn from those.

Don't be afraid of learning in public. The journey is more important than the destination. - Kelsey Hightower
Source: Twitter.com


Take advantage of all that DevNet has to offer. Get your free DevNet account for access to network automation resources, learning labs, docs, and sandboxes.


We’d love to hear what you think. Ask a question or leave a comment below.
And stay connected with Cisco DevNet on social!

Twitter @CiscoDevNet | Facebook | LinkedIn

Visit the new Developer Video Channel


Nicolas Leiva

Solutions Architect

Service Provider - Cable & Media