A Little Code

Why the No Code movement is misguided and how a little code can go a long way

Eric Mustin
6 min readApr 10, 2019

I should say off the bat that I’m not a Maker. I’ve never founded a company or bootstrapped an MVP. In fact, I don’t own a pair of boots. I’m just a regular person, I’ve held down a few good jobs and helped some companies grow some good things. My annual reviews have generally been positive, and at my last job they even got me a cupcake on my birthday.

But i’m here to say to all you fellow regular people, and maybe even you special shining stars, that the No Code movement is misguided. It’s hyperbolic and draws an imaginary line in the sand for no reason other than clicks. It’s provocative! , as Will Ferrell might say.

Maybe I should first explain the No Code movement. The basic gist of the No Code movement is that there are a growing number of top notch 3rd party tools that you can connect together to create, remix, or build anything you’d be able to with code, often with higher professional quality. Why hire developers to build an MVP when you can just pay a small monthly fee to use a outsourced tool, the logic goes. Don’t waste your time learning Ruby or Python, spend that time building the next big idea! Make stuff!

Here’s a blog post outlining the idea and many of these tools:

And there are other similar sentiments floating around like this one:

Or this one:

Making vs contributing

Here’s the thing. There’s a huge difference between Making, this vague capital letter idea that keeps getting thrown around, and contributing, the normal activity that 99% of employees do at work. It’s what David Foster Wallace called “the day to day trenches of adult existence”. And when you spend all day telling people “No Code”, especially when you’re an influential person in Tech with a huge audience, even when you follow that up with caveats and situational exceptions, what people are going to take away from your idea is just the big bold title. No Code. Never! Zero! Zilch!

Most people are not overflowing with unicorn ideas to make every morning. Instead, most folks are hard working and interested in contributing to a good company. Or they think that working in an exciting startup environment will teach them to come up with their own big idea one day. For these people, being comfortable with A Little Code will help tremendously.

And yes, you can be a rockstar startup employee without ever needing to google what the word Boolean means. Maybe you can also sit in your studio apartment and churn out brilliant idea after brilliant idea without ever needing to pip install. But more often, learning even a little code improves the probability of someone contributing to a productive team. It doesn’t require years of sacrifice and a degree in engineering, it just requires a bit of time, focus, and repetition. I’ve gone through my own experiences and tried to find a couple examples of where learning A Little Code has gone a long way, empowered employees, and helped solve problems quickly.

1: Early on at an e-commerce startup that sold clothing, we were curious how many customers had ordered both Pajama Tops and Pajama Bottoms together in the past 3 months, since we were considering offering them as a package item. Our backend was built on Ruby on Rails, a wonderful framework that includes a tool called ActiveRecord, which makes it easy to interact with your database in a readable way. Here’s the Active Record code used to determine the answer to our question:

Orders.where(“completed_at > ?”, 3.months.ago).count do |order|
names = order.line_items.pluck(:name)
names.include?(“PJ Top”) && names.include?(“PJ Bottom”)
end

That’s it, a business question answered quickly with code. The code searches for all orders completed within three months, and counts only orders where the line items include both the PJ tops and PJ bottoms. Is this wildly complicated and foreign to someone without an engineering degree? Do we need to ship our data to a 3rd party and clunk around in their GUI? No. What if we wanted to do something that we couldn’t do in a GUI, like conditionally exclude certain orders, perhaps those who also bought socks (maybe we want to know if adding socks in the package would be worthwhile)? Easy, just edit that last line

names.exclude?(“Socks”) && names.include?(“PJ Top”) && names.include?(“PJ Bottom”)

It’s not impossible, it just takes some practice. The same goes for SQL, the language that powers ActiveRecord under the hood.

2: A startup wants to inform users they can use Apple Pay at checkout. But not every browser supports Apple Pay, only iPhones do. The available screen space on a mobile device is valuable, so they only want to show the Apple Pay icon if the user can actually use that payment method. Here’s the carefully crafted JavaScript(+jquery) code to accomplish this

window.ApplePaySession ? $(‘#apple-pay-icon’).show() : $(‘#apple-pay-icon’).hide()

from: https://developer.apple.com

Are there third party tools or plugins you can buy to do this stuff? Probably. Would you be better served taking the hour or so to research and read documentation and do it yourself? Probably.

3: Let’s say your website has images that are updated often, and copies of these images are stored on a content delivery network (CDN), for faster site performance. Occasionally when using a CDN an image might get stuck unintentionally, so even if a creative or marketing employee wanted to update the images on the website, the CDN wouldn’t know to load the new image version. They’d have to tell the CDN to update the image, and the quickest way to talk to a CDN is with code. But just a little code. Just a single line in fact!

curl -X PURGE -H Fastly-Key:<FASTLY_API_TOKEN> https://www.example.com/specific_image_to_purge.png

from: https://docs.fastly.com

That’s it, just open a terminal and type that `curl` command. With some practice it means a creative team doesn’t have to rely on a developer just to do their job and make sure website images are fresh and relevant.

No Code tools are better with code

Even most of the tools suggested for the “No Code” movement, like Mailchimp for newsletters, or Stripe for payments, guess what? Those tools are better with a little code! These companies put tons of time and effort into documenting, growing, and supporting their APIs. All the best use cases for them involve interacting with them programatically. Here’s the Stripe homepage, for example. It literally says they give “priority to developers” and “code”:

stripe.com

No Code is No Collaboration

If you want to go fast, go alone, if you want to go far, go together.

I think the “No Code” movement is really the “No Collaboration” movement. I suspect the Makers out there who would rather rely on “No Code” tools actually just don’t work well with others, and “No Code” is a placeholder for “No working on a team”, “No delegating responsibility”, or “No trying new things”. They want to go fast because it exempts them from spending time listening to other people and learning new things, because they only way they’re comfortable relying on another person’s work, ideas, or input, is if it’s being provided “As a service” instead of “as a colleague”.

Being comfortable with code, even a little code, will make you a better teammate, it will make you a better manager, it will make you a better employee. The examples I provided were real problems at real companies. These are the places where big ideas are grown, and where other people get ideas for their own big ideas. If you’re managing a project and that project requires code, won’t at least understanding code help you when deciding what tradeoffs to make and what timeline to establish? If you’re an individual contributor on a fast moving team, won’t a willingness to use code make you more empowered and allow your teammates to focus on their own work? I think it will, and that a little code is a much healthier approach to the workplace than no code.

Thanks for reading

  • Eric

📝 Read this story later in Journal.

🗞 Wake up every Sunday morning to the week’s most noteworthy Tech stories, opinions, and news waiting in your inbox: Get the noteworthy newsletter >

--

--