The Mythical Man Month book chapter

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!

brilliant giphy

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” 🤔

Dunno, probably?

Yeah I don’t wanna write a bunch of code every time you change your mind …

THE CHATBOT!

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.

Cheers,
~Swizec

Learned something new? Want to improve your skills?

Join over 10,000 engineers just like you already improving their skills!

Here's how it works 👇

Leave your email and I'll send you an Interactive Modern JavaScript Cheatsheet 📖right away. After that you'll get thoughtfully written emails every week about React, JavaScript, and your career. Lessons learned over my 20 years in the industry working with companies ranging from tiny startups to Fortune5 behemoths.

PS: You should also follow me on twitter 👉 here.
It's where I go to shoot the shit about programming.