Who Moved my Cheese to the Cloud?

Daniel Schwartzer
CyberArk Engineering
4 min readJun 10, 2020

(or SaaS — what it means for R&D)

Some time ago I was asked to give a presentation on “What SaaS means for R&D” to a company’s staff.

Initially, I half-scoffed at the topic — what’s the big deal? Software is software is software, right? But the more I worked on the presentation, the more I realized the depth of this seemingly trivial question.

I discovered the world of difference between the paradigms around the “classic software” (sometimes called a Product), and the “software as a service”, which is called SaaS, or a Service. I even wrote a post dedicated to this list of SaaS principles. Nothing I wrote there should be new to you, unless you spent the last decade on a deserted island. Yet many engineers who are required to make a shift from the Product to the Service development feel way outside their comfort zone. And it’s this feeling of discomfort that I would like to examine here.

Whether you’re an engineer experiencing this change or managing a team going through this transformation, I’m sure you’ll find this post valuable.

Engineers required to make a shift from the Product to the Service development feel way outside their comfort zone
Image by PublicDomainPictures from Pixabay

Rooted beliefs

Before we tackle the obvious question “who moved my cheese”, or rather what to do about it, let’s examine this “cheese” more closely.

It’s through the prism of these rooted beliefs that we experience the world. I have been in the industry long enough to have shared some of these beliefs; yet, for the sake of keeping in pace with the world, I needed to replant my roots into new and fresh soil. But more on that later.

Perception

Let’s examine how an old-school experienced pre-cloud developer might see the world:

Starting ground up

Going back at the early computing ages — assembly, what a peculiar world! Registers, interrupts, segments, stacks — pure nostalgia… How many different platforms have you learned assembly for? Only x8086? Ok, forget assembly, what about C? No? [mumbling: “these kids”…]

Your biggest project

Have you worked on a real enterprise project? One with millions of lines of spaghetti code? Like the one where you actually attempted to implement your own ORM infrastructure, because Hibernate didn’t cut it for you? No? And your own proprietary protocols? No? Are you sure you worked on a real enterprise project?

Distributed systems

Have you developed a distributed system? Like the one bordering an attempt to break the CAP theorem. Or re-inventing a leader-election protocol? And a split-brain problem? What do you mean it’s provided for you by the cloud provider?

Programming language mastery

What’s your mother tongue? Java? How many years of experience do you have? Only 5? How can you claim to be an expert if you haven’t witnessed the birth of Java Generics?

Lego bricks

These Cloud-based systems development feels more like playing with Lego bricks, than the actual development. You hardly write code and mostly configure stuff. How can you build an enterprise system from those Lego bricks?

“How can you build an enterprise system from those Lego bricks”
Image by M W from Pixabay

Awakening

These beliefs, though formed as questions of a hypothetical (and a somewhat condescending) dialog, keep bugging the minds of some X-gen developers, especially when they encounter the “new world” (like SaaS) or younger developers “born in the cloud”.

It’s important to acknowledge those beliefs that resonated with you and realize that these all are sources of your own Inertia.

This Inertia is the extra weight you’ve chosen to carry instead of accepting the New World for what it actually is. So long as you keep your beliefs unchanged, you resist something which is bigger than yourself — it’s a force of progress. Sometimes it is also called evolution.

And it doesn’t depend on your personal opinions, biases or beliefs.

Somewhat similar to the natural world, evolution just happens and the species either learn to adapt or face the circumstances… We already witness the decline of whole professions in the face of tech progress. Taxi and truck drivers are the most obvious ones, but there are many more “endangered professions”.

The best remedy for this is to continue learning and adopting new paradigms and frameworks. You’ve done it many times before. When you “upgraded” assembly to C, and then to C++ and then probably to Java or C# or another high-level language. The ongoing Cloud evolution is more significant than just a language change, but it’s a reality. And you don’t have choice over it.

“Knowledge is the antidote to fear” (Ralph Waldo Emerson)

Progress

Each step of the evolution lowers the entry bar to a specific discipline. Computers and smartphones are used by people of all ages, computer games are being developed by teenagers, and that’s now a part of life.

So why are we surprised that people with seemingly no experience get a grip on new technologies faster than we did? It’s as if your experience actually hinders you and prevents you from seeing the new world for what it actually is. It’s much simpler than it was when you were starting. No wonder, it’s been a while since then, right?

It’s true that building distributed systems is hard. But what if someone has already done it, and you can simply use it; or follow the best practices — and you’re done. What’s wrong with that?

Afterword

You can choose to grumble or tell the stories of your past battles all you want, but if you learn to adapt to the changing landscape, you’ll do yourself a much bigger favor.

Now, go and learn. Knowledge is the antidote to fear.

--

--

Daniel Schwartzer
CyberArk Engineering

Daniel Schwartzer is a Chief R&D Technologist at CyberArk. Builder of guilds, and advocate for cloud and serverless. Loves Technology, Software, Innovation.