Welcome to part 5 of the journey to Vanilla ISE, a simplified ISE GUI for endpoint technicians. In part 1 we covered the background and requirements for the UI. In part 2 we explored the relevant documentation to find the relevant API calls we will use. Part 3 is about interacting with network devices and CLI parsing using pyATS. And in part 4 we covered voucher execution.

Please find all previous blogs in this series here.

Collaboration between developers is key

In this part 5, we will start the discussion around the creation of the front-end, and the collaboration between developers.

I’ll start with a confession: I have a lot to learn about programming. A LOT. While I am proficient with API calls and data manipulation, during the time we created Vanilla ISE my front-end abilities were close to none. I needed help.

My savior was talented Ramona from our GVE DevNet team at Cisco. This team enables and supports account teams with programmability expertise. Ramona joined Cisco in 2019 through the Cisco Sales Associate Program, with a background of an interaction designer & front-end developer at the IT Center of RWTH Aachen University.

Working with another developer on the same program can go smoothly, as long as the expectations are aligned. In order to do so, we started with a Webex call explaining what the purpose of the program was, timelines, who’s going to do what, etc’.

We then worked on a very crude mock-up using PowerPoint, making sure we were still seeing eye to eye.

This is what it looked like:

Vanilla ISE 5 pic1

Vanilla ISE 5 pic2

Creating a common language between us

Adding the backend function names to the front-end mock-up made it easier to locate the relevant pieces of code and created a common language between us.

We both worked on the same GIT repository as out collaboration and version control tool, making changes and adjustments until reaching the working prototype.

Writing highly readable code and self-explanatory method names allowed us to collaborate in an asynchrony manner, which was very efficient as we did not need to get a hold of each other for many questions.

Writing readable code is incredibly important not only when you collaborate with other developers, but even for yourself. When you revisit a piece of code a few months later, you can immediately understand what action will the function “revoke_voucher” perform, or what values you can expect the variable “NAD_list_details” to store.

In the next and final part of this blog series, Ramona will explain the front-end creation of Vanilla ISE. Stay tuned.

Related resources

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



Oren Brigg

Systems Architect

Intent-Based Networking