On Mar 3rd, 2017 my favorite PM and I had a brilliant idea 👉 what if our chatbot could send text messages?
We had recently launched a chatbot to our mobile app. Something to keep users busy while they wait for an operator. Ask introductory questions. Crack a couple jokes. Stall.
This chatbot was flexible.
You could make it say anything. One message, two messages, even simple logic sequences. Say a thing, present 2 buttons, continue based on response.
It was lovely.
But it wasn't getting enough traffic. People would click an ad, download the app, and never come back.
You know how it is ... how many of the apps you download do you actually end up using? I know I don't.
So we had these users, their phone numbers, their names, but we didn't have their attention.
TEXT MESSAGES! You can text someone, if you have their number. Everyone opens a text message!
A marketing automation is born
She, the PM, had an idea: Let's send text messages to re-engage our users. Remind them we exist. Get them coming back.
"Wait, you're gonna want to iterate on this aren't you ... play around, test things out" 🤔
Yeah I don't wanna write a bunch of code every time you change your mind ...
We can use the same chatbot scripts we've already got, follow the path with a background worker, send texts. It's just a directed graph, how hard can it be?
And so the project I would spend the next two and a half years of my life working on was born. The text message marketing automation.
That first version took about a week. It was pretty crude, but it served its purpose 👉 send a series of time-spaced text messages.
As the months and years rolled by I would add things and fix bugs. Feature requests came in. Hey we want campaigns to last a few days. Sure. Hey we want to A/B test the cadence. Got it. Yo we wanna personalize the messages. You gots it. Hey why didn't that shit send? I have no idea let's make it inspectable. Hey what about branching logic based on behavior? err ... We want branching in the cadence too? uhhhh What about A/B testing and branching and personalization and having unique campaigns for each user and yo this damn app to write the scripts is way too complex and it never works and we are never quite certain that something did or didn't send and what is this pile of shite and for heaven's sake why does it take you engineers three weeks to add a new feature we need this stuff yesterday you are ruining all our marketing plans
Whoa there. Chill dude
The organization has outgrown the system. We were no longer able to keep up.
Sure we added features and we made it more elegant and even invested a bunch of time into making it easier to extend and easier for other engineers to contribute. But our marketing automation was fundamentally becoming a product of its own.
When you start thinking "I should just spin this out into its own startup" you gotta ask yourself 👉 "Do I really want to spend the next 10 years dealing with this crap?"
Hell to the no.
Throw it away
You love what you've built. You are very proud. It has stood the test of time. It has made much money.
Time to throw it away.
Marketing automation has come a long way since that fateful day in March 2017. Startups whose entire purpose in life it is to automate your marketing are everywhere.
Search for "marketing automation" and you'll see. The landscape is vast and varied.
Well maybe not varied.
Everyone promises easy-to-use workflows, with a visual builder to boot, everyone has email, many have SMS too. Plenty that integrate directly with Facebook ads as well.
It's quite astounding really.
You could try to compete. Dig in your heels and scream "BUT MY JOB SECURITY". Yeah, if you own a business critical system at your company your job is pretty secure.
You know what else happens?
You don't have time to work on anything else. You won't get interesting projects. You won't get more responsibilities. You'll be stuck maintaining that damn system that you've built and your company will be worse off for it.
Throw that shit away.
Learned something new?
Read more Software Engineering Lessons from Production
I write articles with real insight into the career and skills of a modern software engineer. "Raw and honest from the heart!" as one reader described them. Fueled by lessons learned over 20 years of building production code for side-projects, small businesses, and hyper growth startups. Both successful and not.
Subscribe below 👇
Software Engineering Lessons from Production
Join Swizec's Newsletter and get insightful emails 💌 on mindsets, tactics, and technical skills for your career. Real lessons from building production software. No bullshit.
"Man, love your simple writing! Yours is the only newsletter I open and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. 👌"
Senior Mindset Book
Get promoted, earn a bigger salary, work for top companiesLearn more
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help 👉 swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers 👉 ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️