Jan Exner, Consulting Manager at Adobe, issued a challenge via a blog post titled ‘2019 Challenge: no Custom Code’
“I challenge myself (and you!) to not use any custom code when you deploy any of the Adobe Experience Cloud Solutions.”
After reading Jan’s post, in which he outlines the reasons behind issuing this challenge, I decided I was onboard and here is why…
Lack of Process
Most organizations, both large and small, lack any kind of process or governance when it comes to their MarTech practice, this lack of process has been further exposed with the introduction of Tag Management Systems (TMS). The early fear that many IT organizations had, “but if we deploy this TMS, our marketing teams are just going to push out code without involving us.” has come true and it is proving to be disastrous. While I am not proposing that all “TMS Work” be funneled through an already overwhelmed IT/Development team, I am proposing that all “TMS Work” be aligned with existing release cycles and processing.
[icon name=”battery-three-quarters” class=”” unprefixed_class=””] When you lack a basic process, it often leads to the creation of custom code as the default solution for any problem.
Custom Code as the Default Solution
If we lack process for how we are to build, expand, and maintain our TMS often times the default solution for every problem is “let’s write a chunk of code to address that.” And if you think companies are bad about this, just hire a massive consulting firm, they will be more than happy to write thousands of lines of custom code for you. How do I know? I’ve spent years rebuilding broken implementations that were the result of a massive agency writing thousands of lines of custom code, that couldn’t be maintained, when a simple platform configuration would have addressed the requirement.
[icon name=”battery-half” class=”” unprefixed_class=””] When you default to writing custom code to address every business need, what you end up with is spaghetti code.
Spaghetti Code
If we aren’t taking advantage of built in platform solutions, the default tends to be to write custom code. Furthermore, when you hire someone who is not familiar with your marketing technology, rather than invest time in learning how to leverage built-in tools, to “save time” they will default to what they are comfortable with, writing custom code.
Let’s take an example where you have written custom code as part of the tools you are deploying, say Adobe Analytics, you are also writing custom code within your TMS editor, which also references custom code that sits outside of your TMS. You can imagine how this quickly gets out of hand, creating an implementation that is very difficult, and often very costly, to maintain.
[icon name=”battery-quarter” class=”” unprefixed_class=””] When you end up with a giant bowl of spaghetti code, you have successfully created a MarTech deployment that can no longer be maintained.
Unmaintainable MarTech Implementations
Once you allow your implementation to become overwhelmed with spaghetti code, you will find that it is incredibly difficult just to maintain your implementation. New site releases often break existing deployments. New requirements, again often addressed with even more custom code, will regularly break existing code somewhere else in your stack. Organizations find themselves in maintenance hell where all of their valuable resources are spent just trying to keep their MarTech solutions from completely falling apart.
[icon name=”battery-empty” class=”” unprefixed_class=””] When you have spent all of your time and money on maintenance, you simply have no energy left for innovation.
Lack of Innovation
Companies that are not innovating are companies that are dying.
Am I being extreme? Perhaps but the point is still valid. If you have your best and brightest employees spending all of their time, their creativity, desperately trying to maintain a solution that is unmaintainable, then they will simply not have enough energy remaining to even start to think about innovation.
[icon name=”battery-full” class=”” unprefixed_class=””]So how do I get behind the ‘No Custom Code Challenge’?
[icon name=”bolt” class=”” unprefixed_class=””] Make, and enforce, a rule today that says that custom code will only be deployed in our TMS as a last resort.
[icon name=”bolt” class=”” unprefixed_class=””] Leverage existing built-in configuration options within your TMS of choice.
[icon name=”bolt” class=”” unprefixed_class=””] Commit to aligning your TMS development and release cycles with your existing development workflow.
[icon name=”bolt” class=”” unprefixed_class=””] If you absolutely have to write custom code, design a re-useable solution such as using the Extension framework within Adobe’s Launch.
Are you ready to commit to building more scalable and maintainable MarTech implementations so that we can all be more innovative? 2>
[author] Jason Thompson [author_image timthumb=’on’]http://i2.wp.com/33sticks.com/wp-content/uploads/2015/02/jason_250x250.jpg?zoom=2&w=1080[/author_image] [author_info]Jason is the co-founder and CEO of 33 Sticks. In addition to being an amateur chef and bass player, he can also eat large amounts of sushi. As an analytics and optimization expert, he brings over 15 years of data experience, going back to being part of the original team at Omniture. [/author_info] [/author]
Leave a comment