Skip to main content

๐Ÿ’ก Collaborative Network Change Management Tool

ยท 4 min read
Jason Hollifield
Founder @ Hollplex

Creating a collaborative change management automation tool

Being a network engineer, I've made a lot of changes to network devices. It's typical to have a change management system for recording the changes being made. The problem is the change management system has been more of a step taken when doing work rather than a tool for doing the work. I wonder if you can make a change management system where you want to use it because it makes your job wholly easier and more efficient.

๐Ÿ”ง The Ideal Change Management Systemโ€‹

What I want from a change management system is to be able to develop the change quickly, have a single page web app that is responsive, updates a real-time database so you can collaborate with others, can be automated, can push the changes from the system and is all extensive.

๐ŸŽจ Envisioning a New Applicationโ€‹

I invision an application with a "white space" style of sorts like onenote, where you can create freely against a canvas. You could write blocks that have a hierarchy and contain the commands and info for the change. These blocks could be draggable and very extensible. For instance you could attach code that generates the commands needed for the change and populates the block with the output. Then a simple refresh button could be used that updates the commands if the time between when the change was first started to be developed and when it is going to be executed is long, you could easily update the commands to reflect the current state of the network.

These blocks could push the changes, they could give warnings to potential outages, you could export the change, there could be an AI copilot that could learn from your changes and build new ones. Just make the change management system a work horse for you, not against you.

๐Ÿ› ๏ธ Tech Stackโ€‹

I won't go into too much detail, but the tech stack for the mockups I made is Firebase hosting, auth, functions, HTMX, real-time and firestore database. Firebase hosting serves the static web files, firebase auth is used for user authentication, functions are used for the backend, HTMX makes the frontend smooth, the real-time database is for collaboration, and firestore database is for the jinja rendering tool I built and talked about in this post - JinjaForge.

๐Ÿ‘ฅ Collaboration Challengesโ€‹

A tool like this presents a lot of challenges, not only in itself but the collaboration aspect. Needing a way to allow a user to add someone else to be able to view and edit their own documents presents a database schema challenge. Having a good structure to allow for efficient querying and updating of documents in a secure way. More complex applications like this I see where planning out as much of the app as you can into the future can be key. I've found on projects you can run into problems that aren't deal breakers or that completely hinder the app but re-writing a key component is too much work so a bandaid is applied to the problem or worse the problematic feature stays lack luster, where planning could have avoided this.

๐Ÿšง Work in Progressโ€‹

I have worked on some concepts of the site. Below is a clip of the realtime database working between two users.

Then here's another clip of a more polished site with registration, saving/creating documents, dashboard for viewing documents, jinja rendering, and user management.

๐Ÿ™ Thanks!

Obviously there's a lot of work to be done, but working with a real-time database is a lot of fun and I think it's a good fit for this application. I'm excited to see what I can do with it and will keep you all posted.

Thanks!