No, really. Suspend your incredulity for a minute. I’ll explain…
It’s not because you should have to roll up your sleeves and start writing your own marketing software. I’m the first to acknowledge that not every marketer needs to become a technologist.
However, I do believe that every marketer should develop a comfort with technology. And, over time, advance from comfort to understanding to intuition.
It’s this intuition about how software works — call it “software thinking” — that is of immense value to modern marketers.
There are three reasons for this:
First, marketers are now flooded with an ever expanding array of marketing software to achieve their objectives, stay competitive, and keep up with the expectations of increasingly tech-savvy customers. But to non-programmers, software can seem like a black box. Learning how to program helps make that box more translucent. It moves from the Dark Ages of software superstitions to the Enlightenment of software reasoning. Knowing first-hand how software works give you confidence to wield it wisely and decisively.
Second, the cast of players in marketing’s universe now includes a wide range of technical professionals: IT staff, software vendors, technical consultants, creative technology agencies, and — increasingly — marketing technologists within the marketing department. Learning a little programming makes you better able to communicate with technologists in their native tongue. It reduces the risk of critical details being lost in translation. It gives you first-hand insight into the concepts and concerns that drive your new technical collaborators.
Third — and by far the most important — learning to program builds up process design skills. Previously, marketers didn’t have to do a lot of process design. But today, so much of the power of marketing software is its capability to systematize aspects of customer experiences and internal marketing operations, delivering more tailored marketing at scale. But it requires you to map out and implement ever more advanced processes that get “coded” and configured in such software.
For instance, consider this screenshot from a marketing automation platform (in this case, Eloqua):
This is marketing. It’s a layout of a marketing process that a marketer has created — a flow of steps and decisions to deliver the right experience to a prospect and route them to the appropriate stage in the marketing-sales funnel. When constructed well, such automated flows can have a significant impact on your brand and marketing effectiveness.
This is also programming. It’s presented in a visual manner, but the process implemented here is structured and behaves as a computer program: if X do Y, else do Z. It’s the same kind of thinking that software developers apply in their craft.
Processes like this are springing up all over marketing — not just with marketing automation software. There are processes for managing your content marketing pipeline, running your conversion optimization experiments, handling your social media engagements, and so on.
Sometimes such process configuration is contained in a single software platform. In other cases, you have to design processes that cross multiple software products and define critical human touchpoints — when does a marketer or salesperson intervene, who specifically is that, what do they do, and how does the opportunity progress from there. Even if you just sketch such processes on a whiteboard, you are, in a very real sense, “programming” your organization.
It may sound straightforward at first. But as you invent more sophisticated processes, as you seek to make them more efficient and robust, and as you start to encounter interaction effects between different processes, it quickly gets challenging.
Learning a little computer programming arms you with core concepts and skills for tackling these challenges. You develop a better sense of how to structure processes with maintainability and adaptability in mind. How and why to do refactoring. How to debug a broken process in a systematic way. How to anticipate and handle exceptions. How to use software engineering approaches such as encapsulation and loose coupling.
More than anything, playing around with computer programming — outside the context of an actual do-or-die project at work — is a great way to get practice translating abstract ideas into concrete processes. It builds and tones your “software thinking” skills.
Even if you never write a line of raw software code in your professional capacity, your new strength in software thinking will prove invaluable to your marketing mission.