Feature Flags Will Be the Great Enabler of the Connected World | Smart

The term “ world” immediately sets some lofty expectations.  If you've never heard it before, it sounds as ambitious as it does vague.  But once you start down the rabbit hole of understanding, you'll find yourself dealing with some truly heady concepts.

We're no longer talking about personal computers or even the ubiquitous mobile devices that we all carry any longer.  It's infinitely bigger and more interesting in that we're now talking about “smart cities” and the overhaul of traditionally low-tech concerns, like farming.  We're weaving machine intelligence into the very fabric of our lives.

There Are Some Big Movements in the Connected World, With None Bigger Than… Feature Flags?

As we try to understand this movement and its underpinnings, we look to similarly sweeping trends and approaches.  For instance, if we look at trends that will shape the connected world in 2018, we see some major movements in their own right, including:

  • Blockchain
  • Big data
  • Artificial intelligence

So major technological movements will have major impact on one of the biggest technological movements out there.  That seems interesting, if predictable.

But here's something that you probably wouldn't predict.  In fact, you might call me crazy for saying it.  But I think that we need to add flags to that prominent list, perhaps even at the top.

Why Feature Flags?  Let's Shrink the World to Home-Sized to Explain

This is a bold claim, obviously.  To make my point, I need to tell a story, and it has to be somewhat of a relatable one.  So, rather than talking about smart cities or farm equipment, let's look closer to home.  In fact, let's just look at home.

I have long been a home automation enthusiast, since the heyday of X10 products.  These days, though, the options are more commercial and seemingly limitless.  In my house, among other smart devices, I have:

I actually have more, but I'll stop here because things are already getting sufficiently complex.  This home automation delivered via 4 products, from 4 different vendors, all of which have apps on my phone.  That's already a lot of software.  Each of these things has firmware on its physical device, an app for interaction, and presumably some back-end, cloud-based support.

A Hyper-Connected World Has Many Failure Points

This setup has been treating me very well.  So, let me offer the caveat that the nightmare scenario I'm about to offer is pure fiction.  But imagine it nonetheless.

Let's say that, due to some sort of defect with the light bulbs, the eventually started to overheat, and to smoke.  And let's also say that I'm the average user, and not a life-long home automation enthusiast and technologist.

I turn all of these lights off, of course, and replace them with regular old incandescents or LED bulbs.  But upon whom do I heap the blame?  I might point my finger at a manufacturing flaw in the bulb.  But I also might blame the hub, one of the mobile apps, or even the Echo, to whom I spoke the lights on command.  “Alexa, I said lights on, not burn my house down!”  (I'd probably have to get pretty creative to figure out how to blame the Nest.)

And imagine how this gets worse when I start calling for support.  The bulb manufacturer blames the hub for sending the wrong commands.  The hub tells me it's a bulb manufacturer defect.  None of the vendors are going to want this egg on their face, even if one eventually owns it.

As a vendor, imagine getting the blame for someone else's failure.  With the rise of the connected world, gone are the days when you have any semblance of full control over a user experience.

In the Connected World, You're Trusting Collaboration With Unknown Commodities

Imagine making a home automation hub.  In a sense, it's like a plugin architecture made physical and sent forth into the world of end-users, peers, and competitors.

You're writing some firmware, putting it onto a device and shipping that device.  You then enable other arbitrary devices to connect to you — to send and receive commands — as long as they follow a certain protocol.  Can you really know if they're reliably turning lights on and off, and not plotting world domination?  Not entirely.

You need a means for guarding against problematic collaborators.

In our current scenario, your main strategy might be finger pointing.  Of course, you could scramble to patch your software, push it out through the app store, hope people updated, and handle it that way (for some definition of “handle,” anyway).  But, even as you're contemplating it, you're probably realizing that strategy is like hauling water with a sieve.

This is where feature flags come in.

A Look at Feature Flags for Solving the Bad Collaborator Problem

If you're only passingly familiar with the idea of feature flags, you might think of them as extremely tactical.  You put conditional and configurable logic around some feature in your software, allowing you to turn it on and off like a light switch.

And that's true.  Feature flags do allow that.  But saying that's all there is to them is like pointing at a steering wheel and saying “car.”  Feature flags fold into a broader, product-focused strategy made possible by the idea of feature flag management.  And yes, you can turn features on and off.  But you can also orchestrate dark launches, canary releases, service migrations and more.  And you can do this quite seamlessly.

Looking back at our more concrete home example, you can employ a strategy that requires less trust and offers more control.  In your app, you can guard all collaborations with feature flags as part of a flagging service.  This gives you the ability to turn off a collaboration at any time, for any reason, without re-deploying any software.  You simply log into a dashboard and take care of it with a few mouse clicks.

Now, let's re-imagine the nightmare home scenario, as the hub vendor.

If you get wind that some of the lightbulbs are melting and smoking, you can take immediate action.  From home base, you can turn off functionality for that vendor for all users, across the board.  Remote control of the lights will cease, and when users open the app to see why, you can show them an explanatory message.  “We've disabled this device due to reports of a safety concern — we'll re-enable following a firmware update.”

That's a lot better, and it'll let you sleep better at night, knowing that you don't have to rely on all sorts of unknown commodities not to make you look bad or create problems.

Feature Flags As a Great Enabler

If we zoom back out of the home, you can see that a lot more is at stake.  In the home, we can unplug these devices and replace fancy bulbs and thermostats with the low tech ones in the utility closet.

But we can't do that when we're building smart cities and feeding people en masse.  In these situations, problems go from inconvenient and perhaps mildly worrisome to catastrophic.  But the underlying problem remains the same, regardless of the table stakes.

So, while sweeping trends like blockchain, AI, and big data may indeed drive the future of the connected world, so will the reflexive need to insulate yourself against bad actors to whom you're connected.  That may not be as immediately fascinating, but it's every bit as important.  Feature flag management will serve as the growth agent that allows the connected world to continue expanding.

Eyal Keren

Eyal Keren

Eyal Keren is co-founder and CTO of Rollout.io, where his focus is software craftsmanship, continuous design and TDD. Prior to Rollout, Eyal co-founded DoAlbums as its CTO, and spent 8 years as a software engineer at Intel. He earned a degree with honors in computer software engineering from the Israel Institute of Technology, but his love of code really began back in early childhood, when he discovered a BASIC book in an IBM XT box and began copying the English letters.

You might also like

Comments are closed.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. AcceptRead More