(Intentionally provocative title.)
Do you use the word “just”? Have you ever said something like “oh, we just need to implement that interface for this new type” or “it’s just a small bash script” or something to that effect? I have, many times, and still catch myself saying “just” even though I’m trying to exorcise that word out of my vocabulary.
I don’t like the word “just”. “Just” is extremely reductive. “Just” diminishes the complexity of the problems we work on and it diminishes the effort that people put into making solutions.
Here’s an example scenario. Suppose we have two services, Alpha, which writes data in S3, and Beta which reads data from disk. Alice has been tasked with making Beta process the data generated by Alpha. Since the output format of Alpha isn’t the input format of Beta, Alice will have to do something to make them work together. Bob, always helpful (/s), says to “just write a bash script to download the files to Beta’s server.” Right Bob, just a bash script, how hard can that be?
Actually, there can be a lot of difficulties that lay ahead for Alice. Here are some from the top of my head:
- Bash is notoriously hard to get right: spaces can change the meaning of statements, incorrect quoting can cause bugs, etc.
- How will credentials to the S3 bucket(s) be made available to the bash script?
- How will the bash script be invoked?
- Is it sufficient to download the data or must extra transformations be performed?
- Are there race conditions between the download and Beta’s processing that need to be considered?
Though the script’s job is conceptually simple—bring data from S3 to disk—Alice actually has quite a bit of work on her plate. It’s not just a bash script, Bob, it’s a whole project! Would you like it if someone made an off-hand comment about the project that you work on as just fill in the blank?
Another problem with Bob saying to just write a bash script is that PMs might take his word that it’s just a bash script and under-estimate the time and effort required for the feature, possibly derailing the schedule of other teams.
Let’s be careful about using the word “just”: computer science and programming are interesting and complex endeavours, what we may think is just may actually have a lot more nuance and complexity than we imagine at first.
Thank you to Mathieu Lapointe for reviewing a draft of this article and suggesting improvements.