Skip to content
DevMeme
4597 of 7435
Ethical Coding Sticker: We Test on Production Servers, Not Animals
Production Post #5044, on Nov 28, 2022 in TG

Ethical Coding Sticker: We Test on Production Servers, Not Animals

Why is this Production meme funny?

Level 1: Playing with Fire

Imagine you have a big school play coming up. Normally, you’d practice your lines and maybe do a rehearsal on a smaller stage before the real show, right? Now picture a teacher saying, “We’re not going to practice at all – we’ll just perform live on the big night and see what happens!” They might proudly add, “Don’t worry, we didn’t make any small animals run through the play first!” That sounds kind (no cute bunny had to sit through our practice), but it’s actually a really bad idea for the actors and the audience. On the big night, nobody knows their lines, the set might fall apart, and the play could turn into a disaster – props catching fire and all!

This meme is joking about the same kind of situation, but with computer code. The developers are saying they didn’t do any safe practice tests (they humorously say “we do not test on animals” as if that’s something to brag about). Instead, they tried out their new code directly on the real thing – the actual servers and users. That’s like skipping rehearsals and finding out in front of everyone if something breaks. And guess what? It broke badly – symbolized by the picture of servers on fire. Of course, in reality the servers aren’t literally burning like wood, but “on fire” means the system is broken and everything is going wrong at once.

It’s funny because the developers talk about it like it’s an achievement or an ethical choice (“Look how good we are, we didn’t use any animals!”), but obviously, setting your product on fire in front of customers is much worse. It’s a silly reversal, like someone proudly saying, “I didn’t test the toy on a toy bunny; I gave it straight to kids and it exploded – hooray!” The humor comes from that contrast: doing something that sounds noble or bold, but it actually causes chaos. Basically, the meme makes us laugh at how ridiculous it is to skip testing and only find problems when it’s far too late. It’s a goofy way to remind us: practice first, don’t play with fire if you can avoid it!

Level 2: No QA, No Sleep

Let’s break down what’s happening here in plain terms. In software development, Production (or “prod”) is the live environment where real users interact with your application – basically the real-world stage. Before code gets to prod, good teams use various testing phases: writing unit tests (small automated checks for individual functions), running integration tests (making sure different parts of the system work together), and deploying to a staging environment. Staging is like a dress rehearsal for your code: it’s a server or set of servers that mimic production’s setup but aren’t open to customers. You’re supposed to try things out there or in QA (Quality Assurance) first, to catch bugs in a safe space.

Now, the meme jokes that this particular team skips all those steps. “We test in production” means they are essentially using the real users and real servers to see if something works, instead of testing internally first. That’s as risky as it sounds. The phrase often comes up as a tongue-in-cheek excuse – developers might say “Haha, we’ll just test in prod” when a deadline is tight or a proper test hasn’t been done, highlighting that it’s not ideal but sometimes happens. Here, they turned that into a proud slogan, which is the joke.

The top text of the meme, “WE DO NOT TEST ON ANIMALS,” borrows from the world of cosmetics and medicine. In those fields, animal testing refers to trying products on animals (like lab rabbits or mice) to ensure they’re safe before using them on humans. A product that’s cruelty-free boasts that it wasn’t tested on animals, implying an ethical high ground. In software, we never involve animals, of course – the equivalent concept would be testing on something or someone that isn’t the real end-user. For example, testing code on dummy data, or using an internal QA team or beta users (sometimes jokingly called “canary users” or even “guinea pigs” in a figurative sense) before full release. So “not testing on animals” in this context really means we didn’t use any harmless stand-ins at all.

The bottom text, “WE TEST IN PRODUCTION,” is telling us they directly deploy new changes to the real system instead of a test environment. It’s basically saying the customers or the production servers are the ones who get to experience any bugs first. The meme’s imagery reinforces this: on the left, there’s a cute bunny with a heart, symbolizing the usual idea of gentle testing (no bunnies were harmed – because we didn’t use any). On the right, there’s a stack of servers (those blue computer rack icons) with a big flame in front of them. A server on fire is a visual metaphor for a server that has crashed or an application that’s completely broken down in production. Developers and IT folks often use “🔥fire🔥” imagery to describe big outages or emergencies (we even call urgent fixes “firefighting”). So the meme is basically saying: we didn’t harm any bunny, but look, our servers are burning instead!

In categories of developer humor, this falls under TestingHumor and ProductionIssues. It’s poking fun at what happens when you neglect proper testing. If you’ve ever heard a dev say “Works on my machine!” – that’s a classic joke implying “I only tested it in the development environment (my laptop); if it fails elsewhere, not my fault.” Here, “we test in prod” is the even more extreme version: “We didn’t even bother to test on our machines or any test server… we threw it right into the live system.” That attitude typically leads to ProductionBugs – real bugs that escape into the wild – and lots of ProductionFirefighting, which is when engineers have to scramble to fix things live. The OnCall_ProductionIssues tag in the context is about the on-call experience: usually there’s someone always available (on-call duty) to respond if production has an issue. When untested code causes a severe error, that person’s phone or pager will start beeping like crazy. They might have to wake up in the middle of the night to deal with the problem (hence “No Sleep” in the title – if you skip QA, the on-call engineer might lose sleep resolving the mess). This is a common trope in OnCallHumor: joking about bleary-eyed engineers fixing overnight deploy disasters.

Let’s also talk about DeploymentAnxiety. Deploying (releasing) new code can be stressful, especially for newcomers, because you’re pushing changes that could impact all users. Usually, knowing you have run tests and tried it in staging reduces that anxiety – you’ve rehearsed the change, so production should go smoothly. But if someone says “we test in production” earnestly, that implies no rehearsal at all. Even a junior developer can imagine how nerve-wracking (and reckless) that is. It’s basically deploy and pray. If something goes wrong, it goes wrong in front of everybody. And judging by the burning server in the image, something definitely went wrong! The meme humorously frames this disastrous process as if it were an official policy to be proud of. It’s as if a company put a seal of approval on recklessness and said, “Yes, this is fine, we’re proud that we don’t waste time on testing; we just fix things on the fly.” Of course, in reality that’s a nightmare scenario — but it’s presented in such an exaggerated, matter-of-fact way that it becomes laughable.

In summary, for someone newer to the field: this meme is joking that a development team skipped all the normal testing steps (no QA team, no staging server, no automated tests) and only checks their code in the real world (production). The “no animals” part is just a funny way to say they didn’t even use any safe test subjects or environments. The consequence of this approach is often huge bugs and “fires” in production, which the image shows literally. It’s funny to developers because it’s a known bad practice presented as a badge of honor, mixing the language of ethical science with the reality of chaotic software deployment. It’s a mix of dev humor and a cautionary tale – definitely not something to emulate in real life if you can help it!

Level 3: Rabbits Saved, Servers Ablaze

For experienced developers and DevOps/SRE folks, this meme hits that sweet spot of painful humor. “We do not test on animals. We test in production.” The text is styled like a proud certification stamp – you can almost imagine it slapped on a software release as a tongue-in-cheek boast. The top part (“WE DO NOT TEST ON ANIMALS”) parodies the cruelty-free labels on cosmetics or pharmaceuticals, where it’s a virtue to spare cute lab rabbits. But in our dev world, we never literally test on animals (no rabbit is writing unit tests, I promise). Instead, this phrase mocks a well-known anti-pattern: skipping proper testing and pushing code straight to Production (the live environment serving real users). It’s saying, “Don’t worry, no bunnies were harmed in the making of this software… we only harmed our production servers instead!” 🐇🔥

The visual drives it home. The circle with a green “no” slash (the classic 🚫 “do not” symbol) covers the bunny-and-heart icon, signaling “no animal testing here.” In the opposite quadrant is a stack of server racks lit up – and on fire, complete with cartoon flames. That flame isn’t there for decoration; it’s a universal tech meme sign for “disaster in progress.” In operations slang, when a service is catastrophically failing, we say it’s “on fire” (hopefully metaphorically – actual flames in a data center are way above an on-call engineer’s pay grade). So the image literally depicts: No tests on innocent bunnies, only blazing servers. It’s a darkly comic trade-off. We spared the fluffy rabbit, but now our ProductionIssues are raging and the on-call human (poor soul) is getting burned at 3 AM. OnCallHumor often has this flavor: it’s funny because it’s true, and it hurts just enough to laugh instead of cry.

Why is this so relatable? Because many of us have been there, debugging a ProductionBug that would have been caught if only someone had run a decent integration test or staged the release. The meme pokes fun at organizations that have no staging environment (a staging environment is like a dress rehearsal for production – a place to test deployments safely). In some setups, either due to startup “move fast” culture or sheer negligence, the staging step is skipped or poorly maintained. Maybe management said, “We don’t have time for testing, the users will test for us,” or a dev thought, “It worked on my machine, so ship it!” The result? That adorable bunny gets to live another day, but your shiny new code goes live untested, and something inevitably breaks – often spectacularly.

This resonates with senior engineers as a satire of DeploymentAnxiety and bad release practices. Proper process is to have unit tests, QA tests, perhaps canary releases or feature flags to minimize risk. The folks in this meme’s scenario apparently said “nah, hold my coffee, we’ll just deploy raw.” It’s basically the YOLO school of software release. You can imagine the veteran in the corner, rubbing their temples, because they know exactly what comes next: frantic ProductionFirefighting. Picture a pager or phone buzzing incessantly as monitoring alarms go off: CPU spiking! Errors flooding in! The on-call engineer jolts awake – “Server outage! Debug NOW!” – all because someone treated prod as their personal test lab. This is the nightmare hidden behind the humor: every seasoned DevOps engineer has cleaned up after a “test in prod” fiasco.

The meme’s cleverness is also in the misdirection and contrast. It starts with a virtuous statement (who doesn’t applaud not testing on animals?) and then sucker-punches you with an even worse reality: testing on unsuspecting users and live systems. In other words, they avoided hurting a rabbit, but ended up potentially hurting their customers (and definitely their system uptime). It highlights a kind of hidden cruelty – not towards animals, but towards the on-call engineers’ sanity and the user experience. Seasoned devs have seen how these situations inflict real pain: lost sleep, frantic rollback deployments, maybe even lost revenue when a critical bug slips through. That heart next to the bunny? In the meme it signifies kindness. The fire next to the servers? That’s chaos and panic. We laugh because it’s absurd to equate the two – proudly claiming an ethical high ground in software development while doing something arguably even more irresponsible.

In practice, testing in production is sometimes unavoidable, but it should be done carefully (like releasing to 1% of users, monitoring, etc.). What the meme describes is the worst way to do it: with no prior testing at all. The senior perspective recognizes the gallows humor here. It’s a coping joke for all those late nights and high-stress incident calls. The circular badge format even mimics those feel-good stickers, adding to the satire – as if “Tested in Production” is a shiny award or a corporate value. (In reality, any team bragging about that without irony is begging for trouble.) In short, every experienced dev knows that boasting “We test bold changes in production!” really translates to “We didn’t test this at all, cross your fingers!” – famous last words in our industry. And if you’ve ever been the firefighter in that scenario, the meme is hilariously, horrifically on point.

Level 4: Production Uncertainty Principle

On a theoretical level, this meme hints at the unavoidable complexity of software systems and the folly of ignoring it. In computer science, we know that thoroughly testing every possible scenario of a non-trivial program is computationally infeasible – the state space explodes combinatorially. This is akin to a halting problem of quality assurance: you can't decisively prove a complex program will never crash under all conditions without essentially running it in those conditions. Some advanced teams embrace this reality with chaos engineering principles – they literally test in production on purpose, but in a careful, scientific way. They introduce controlled failures in live systems to study behavior (Netflix's famous Chaos Monkey is a classic example). The key difference is they have robust observability (granular logging, metrics, alerts) and fail-safes to catch issues quickly. In other words, if you're going to skip the “lab tests” (no staging environment, no extensive QA), you’d better have instruments in place to detect anomalies and roll back fast. The meme’s scenario is the worst-case inversion of this: doing the bold experiment without any safety net. It’s like applying the uncertainty principle to deployments – you only find out how the code behaves by unleashing it on real users, thereby disturbing the system (sometimes catastrophically). In theory-speak, production becomes the ultimate integration test environment, exposing emergent behaviors you couldn’t foresee. But here the server_on_fire_meme suggests an uncontrolled experiment gone awry – the kind of event that SRE textbooks cite as what not to do. The humor for seasoned engineers lies in this absurdly brazen approach: it’s highlighting, with dark irony, a truth we all recognize from the trenches of distributed systems and large-scale apps – no matter how much you test elsewhere, eventual consistency issues, race conditions, or Heisenbugs (bugs that vanish when you try to debug them) often only manifest under real production workloads. This “cruelty-free coding” label slyly satirizes that reality by suggesting all testing be done live. It’s a reversal of proper practice elevated to a philosophy, as if it were an ethical stance. A grizzled ops veteran would smirk at this, recalling that fundamental rule of complex systems: everything works in theory, but production is the only environment that actually matters. And if you treat production as your first line of testing, you’re essentially sacrificing uptime and user experience on the altar of incomplete knowledge – a devil’s bargain that every computing theory class and real-world post-mortem warns against.

Description

This image is a circular, sticker-like graphic designed as a parody of 'cruelty-free' or 'no animal testing' labels. The sticker has a green border with text. The top half of the text reads, 'WE DO NOT TEST ON ANIMALS,' while the bottom half says, 'WE TEST IN PRODUCTION.' The center of the logo is divided by a diagonal green bar. Above the bar, there is a cartoon illustration of a grey rabbit and a red heart, symbolizing animal welfare. This section is 'crossed out' by the bar. Below the bar, there is an illustration of a three-tiered blue server rack engulfed in bright orange and yellow flames. This part is not crossed out, indicating it is the accepted practice. The meme derives its humor from the stark contrast between a widely recognized ethical stance (protecting animals) and a notoriously risky, yet sometimes common, engineering anti-pattern: testing new code directly on the live production environment. The burning server visually represents the catastrophic failures - like data loss, system crashes, and service outages - that can occur when testing is skipped in favor of deploying straight to production, making the users the unwitting testers

Comments

14
Anonymous ★ Top Pick Our 'Canary Release' strategy is quite literal; we ship the code and wait to see which subset of users stops chirping before we initiate a rollback
  1. Anonymous ★ Top Pick

    Our 'Canary Release' strategy is quite literal; we ship the code and wait to see which subset of users stops chirping before we initiate a rollback

  2. Anonymous

    No bunnies harmed - our “canary” deploy is the entire user base, and the rollback script is still in code review

  3. Anonymous

    After 20 years in tech, I've learned that 'we don't test on animals' is just corporate speak for 'our users have opposable thumbs and can file bug reports themselves' - though honestly, the rabbits probably would've caught that race condition in the payment gateway before Black Friday

  4. Anonymous

    This badge perfectly captures the startup mantra: 'Our users are our QA team, and our staging environment is an S3 bucket we forgot to delete.' When your CI/CD pipeline is so optimized that it skips the 'testing' part entirely and goes straight from git push to customer-facing chaos, you've achieved true DevOps enlightenment. At least we're ethically sourcing our production incidents - no rabbits were harmed, just SLAs and engineer sleep schedules

  5. Anonymous

    We don’t test in prod; we practice progressive delivery - feature flagged, canaried to 100%, with a one‑way schema migration - rollback via blameless postmortem

  6. Anonymous

    Because edge cases only emerge when prod's the canary - and it always sings in flames

  7. Anonymous

    Ethically sourced QA: no rabbits harmed - only our SLOs. We call it “canary” when the paying customers run the integration tests

  8. @Johnny_bit 3y

    I'd rather not. We have dev/test/stg/prod envs + scale-out deploys with atomic rollbacks in case of any problems and I no longer need heart medicine every deploy :D It's gooder for my health!

  9. @AlexAparnev 3y

    user is human human is kind of animal too so, you test on animals

  10. Deleted Account 3y

    but they are animals

    1. @RiedleroD 3y

      the users? true

      1. Deleted Account 3y

        yes

      2. @endisn16h 3y

        spitting straight facts 💯💯💯

  11. @aria_ua 3y

    Anyway this is testing on animals

Use J and K for navigation