Articles

The best makes us better: building a new feature

A peek behind the scenes on how we develop new features, through the eyes of a Totally Fictional Developer.

Jun 18th, 2020

Can’t spell ‘improve’ without ‘improv’

Men&Mice carries the spirit of entrepreneurship still, even after 30 years of being on the market.

Our focus area of network management (DNS, DHCP, and IP address management) is very malleable, with a deep diversity in application. Our software is designed to work in an extreme variety of network environments. Sometimes it's deployed onto an air-gapped on-premise infrastructure. Other times it's tasked to bring visibility to a global corporate network that not only spans across but is managed through continents and oceans.

With such a wide variety of deployments, we've quickly recognized the need to maintain an open roadmap that doesn't just include our vision but is also flexible enough to respond to real-life challenges. Our product management team is responsible not only for the future direction of our product but also to schedule development cycles to address incoming requests for features. One such request was for adding extended functionality to our integration with Akamai Fast DNS.

In this post, we want to give a peek behind the scenes on how we put this approach into action, through the eyes of a Totally Fictional Developer whose non-existing journal we found left in the pool room. (That we never use, because we work too hard.)

“I heard there’s a customer request for extending the Akamai functionality. Not a bad idea, since it’s a little awkward to keep jumping between Akamai and Men&Mice to manage it. And there’s a new API coming, I saw the beta and looks good.”

Part 1: The Volunteer

“Well that's just excellent. As if I didn't have enough on my desk. And what's worse, I have nobody to blame but myself. Me and my big mouth again. "That should be easy enough to do." For the love of everything: why do I keep doing this?
So now I have this thing. Actually, it should be easy enough to implement. Come to think of it, much of the work is already done: I can build on the existing API integration and create the added functionality based off of that.”

The API we've used initially to connect to Akamai's service was being replaced by a newer version, which allowed us to improve. Thanks to our good relationship with Akamai, we were able to access and explore the new version, and develop our integration.

Developer time, of course, is precious, and there’s an inherent tension between planned and ad-hoc workloads. “The best makes us better” also applies to hiring talent that can rise to the challenge and navigate the often stormy course.

“Alright, let's go.”

Part 2: Scope Creep Has Entered the Chat

“Okay, so it turns out Version 2 of the Akamai API is an entirely new animal from the previous one.
We've talked about just adding the new functionality alongside the Version 1 integration but ended up agreeing that it makes more sense to port the entire feature to use the new API. Saves us time down the line in debugging the functions, and we don't have to worry about phasing out the old API once it's no longer supported.”

The fact that the Men&Mice Suite is a unified overlay and automation platform means it affords our developers tremendous flexibility in modernizing our own architecture when needed.

We were able to practically "swap out" the integration for Akamai Fast DNS without changing anything on the frontend. The way Men&Mice's central components are communicating with Akamai services are entirely different, yet customers will only notice an increased number of features, not a change in the way they work with them.

“Of course, that means more work for me.”

Part 3: The Pebble in the Machine

“I can't for the life of me figure out why the UI doesn't work. I've been going over the code with the finest comb I could find. All the automation tests are green. The syntax is flawless, three of us have been making sure of that.
I could tear my hair out.”

In our industry, issues with the management software can quickly grind a business to a halt. DNS, DHCP, and IPAM are critical network services, and even a small local bug can ripple into a global outage costing millions of dollars.

Our testing methodology is built on decades of development experience and aided by the best tools available to us: from carefully reviewing code to running automatic multithreaded tests in large virtual environments. Our test processes simulate conditions on the extreme end of the scale and expose our software to unlikely workloads to make sure it's up for the task.

It was during our extensive testing that we discovered a bug in the new Akamai Fast DNS integration. The Men & Mice Suite's central service was working well, and our automation tests all came in green. But the frontend user interface was not, and we needed to fix it before releasing the feature.

“It turned out to be a misconfigured IF statement by the way, between the central service and the user interface. It's always the little things, isn't it?”

Part 4: Ship It!

“It's done!
Version 9.3 is packaged and shipped, and the marketing and sales teams are head over heels about the new Akamai feature. Didn't think at the beginning that I'd say this, but it's been an enjoyable project.”

Developing the new Akamai Fast DNS integration not only created a valuable feature for our customers but also proved the value of our development approach.

Merely mapping out what we think customers are looking for is not enough. We have to be agile enough to move where their focus is and solve challenges flexibly.

We pride ourselves on fixing problems and adding new functionalities not just by designing ahead, but also by developing reactively. Customers value our willingness to address their issues and the fact that they can affect the software they bought.

This balanced approach is what makes us good at what we do — and working closely with the best companies who guide us through what they need makes us ever better.

“I just got forwarded an email thanking us for the new API functions. All's well that ends well.”