Skip to content
DevMeme
1258 of 7435
Shiny Object Syndrome: The Unfinished Project's Lament
Learning Post #1404, on Apr 27, 2020 in TG

Shiny Object Syndrome: The Unfinished Project's Lament

Why is this Learning meme funny?

Level 1: Kid in a Toy Store

Imagine you’re supposed to be building a sandcastle, but right in the middle, you see a cool toy truck and run off to play with that instead. Then you spot a kite, drop the truck, and start flying the kite. Next, someone brings out some action figures, and you abandon the kite to play with those. In the end, your sandcastle is only half-built because you kept getting excited by the next fun thing. This meme is joking about that exact behavior, but with programming projects. The developer is like a kid who has an unfinished favorite toy project (the sandcastle, or here the Flutter app) but keeps getting distracted by new shiny toys (like making a game in Unity, or trying drawing, or playing with a new gadget). It’s funny because we can all picture that kid who one moment is super serious about one game, and five minutes later is completely absorbed in something else. The meme makes us laugh and go “Yep, that’s me,” because staying focused on one thing can be really hard when everything new looks so exciting. The heart of the joke is: it’s easy to start things, but much harder to finish them when new fun distractions are everywhere.

Level 2: New Tech Temptations

For a newer developer or someone learning the ropes, let’s break down what’s happening in this meme. It uses the famous “Distracted Boyfriend” format: a guy (labeled ME to represent the developer) is walking with his partner (who here represents a project he’s supposed to be working on – the Unfinished Flutter App). But he’s turning around, obviously more interested in a passer-by in a red dress (which symbolizes Unity Game development, a new shiny thing). Essentially, the meme is saying: “I know I should be finishing my Flutter app, but ooh, look at that cool Unity game project instead!”

Now, Flutter is a framework (created by Google) used for building mobile apps. If you’re making an Android or iOS app and you want to use one codebase for both, Flutter is a popular choice. It uses the Dart programming language and focuses on creating beautiful, natively compiled application UIs. Building a full app in Flutter means you have to design the interface, write the logic, test it on devices, etc. Unity, on the other hand, is a game engine. It’s a completely different tool used for creating video games (or any interactive 2D/3D experiences). Unity uses C# (primarily) and comes with a rich editor that handles graphics, physics, animations – basically everything you need to build a game world. So, right away, you can see these two – Flutter and Unity – belong to different domains (MobileApp Dev vs GameDev). Switching from Flutter to Unity isn’t just like changing your text editor; it’s like going from cooking Italian to baking pastries – related since both are in a kitchen (i.e., programming) but totally different recipes and techniques.

The boyfriend’s actual partner in the meme is labeled “Unfinished Flutter App”. This poor Flutter project is being neglected. And humorously, the meme shows many copies of that partner in the background with various labels: “Blender 3D”, “Svelte.js”, “DevOps”, “Maya 3D”, “React Native”, “AI”, “Blockchain”, “Drawing”, “Graphic Design”, “Figma”, “Logo design”, and more. Each of these is another skill, framework, or hobby that could distract the developer. Let’s decipher a few:

  • Blender 3D – a free 3D modeling and animation software. A developer might decide “I need to create 3D models for my game, let’s learn Blender!” Suddenly this becomes a whole new side project.
  • Svelte.js – a JavaScript framework for building web applications. This has nothing to do with the Flutter app or the Unity game, but it might have caught our developer’s eye as a cool thing to learn for web development. Yet another tangent!
  • React Native – another mobile app framework (like Flutter, but using JavaScript/React). The presence of both Flutter and React Native labels implies the dev started with one approach (Flutter) but is aware of or toying with the alternative approach (React Native) too. It’s as if one unfinished mobile app project wasn’t enough, they considered rebooting it in a different framework.
  • DevOps – not a specific tool but a broad area (Development Operations) about managing servers, deployments, CI/CD pipelines, etc. A dev might get sidetracked setting up a complex Amazon AWS server or a Docker container for their app instead of actually coding the app’s features. It feels productive, but if the app isn’t even done, it might be premature optimization.
  • Figma – a popular design tool used for UI/UX design and prototyping. Perhaps instead of coding, the developer got tempted to open Figma and start designing a fancy logo or app interface. It’s creative work, fun, and feels useful… but doesn’t directly add code to the Flutter app!
  • AI and Blockchain – these are huge, trendy fields. It’s very plausible our curious developer thought, “Hey, maybe I should integrate some machine learning into my app!” or “What if I put this project on the blockchain?” Next thing you know, they’re following an online course on neural networks or Ethereum smart contracts, completely unrelated to finishing the original project.

All these side topics are exciting and valuable to learn in their own right, especially when you’re early in your career and want to soak up knowledge. The meme’s core joke is about losing focus: the developer has so many interests (the background crowd of topics) that the original goal (finishing the Flutter app) is ignored like an old toy in favor of the next new thing (Unity game dev at the moment). It’s like having a dozen incomplete projects because you keep starting new ones whenever you read a cool article or see a YouTube tutorial on something. If you’ve ever felt that itch to try out a new programming language or tool before wrapping up whatever you were already working on, then you understand this meme. It’s poking fun at that tendency.

From a productivity standpoint, hopping between projects has a cost. There’s a saying: “Finish what you start (before starting something new).” In coding, if you drop a project for a while and later try to come back, you might find you’ve forgotten parts of it. That means more time spent re-reading your code or docs to reload that context in your brain. That’s what we mean by context switching overhead – your brain needs to swap out one set of knowledge for another, like closing one game and loading a different one on your computer. Too many swaps and you waste a lot of time just getting back into the flow. New developers often learn this the hard way when they juggle a few school or side projects at once. It feels like you’re doing a lot (so many cool things at the same time!), but each individual project moves forward very slowly, if at all. The meme is a humorous reminder: focus can be hard, especially with so many cool technologies to learn and play with. It’s basically DeveloperHumor about our own lack of focus. Anyone who’s tried to self-learn programming or been active on GitHub likely relates to having a bunch of repositories or folders, each for “my new app idea” or “experiment”, and very few of them are completed projects.

The presence of both GameDevelopment and MobileDevelopment tags in the meme highlights that this distraction isn’t limited to one field – the developer is literally straying from mobile app work to game development. Both fields have steep learning curves, and balancing them simultaneously is tricky. Learning new tools like Unity or Blender can be fun (who doesn’t want to make a game character jump after a few hours of tutorial?), whereas pushing your Flutter app from 90% done to 100% done might involve squashing boring bugs or writing documentation – not as thrilling. This contrast in instant gratification (new tech gives quick dopamine as you make something novel) versus delayed reward (finishing a project takes sustained effort) is exactly why distractions win so often. The meme labels Unity as “the other woman” in red – seductive because it promises new creative possibilities and probably a break from whatever challenge was blocking the Flutter app progress. In short, for junior devs: the lesson is not that you shouldn’t explore – you should! It’s how you grow. But be aware of “shiny object syndrome”: if you constantly drop what you’re doing to chase a new shiny tech, you end up with lots of starts and few finishes. And that’s why this meme is both funny and a tiny bit painful – it’s humor rooted in a very common developer habit.

Level 3: Shiny Object Syndrome

At the deepest level, this meme exposes the context-switching cost that plagues many developers. The "distracted boyfriend" (labeled ME) is a developer who should be finishing an Unfinished Flutter App, but instead keeps turning his attention to Unity Game development – the latest shiny tech that caught his eye. Flutter and Unity aren’t just random choices; they represent two very different development worlds (mobile app development vs. game development). Jumping between them isn’t trivial – it’s a mental cache miss each time, flushing out the Flutter mobile UI logic in Dart to load up Unity’s C# game objects and 3D scenes. That productivity drag is real: every time he switches, he loses momentum on the Flutter app. The humor hits home because experienced devs know this exact trap. You start building a nice cross-platform app in Flutter (perhaps with grand plans to publish it), but then you get an idea for a cool game and think, "I’ll just tinker with Unity for a weekend." Suddenly, your Flutter project languishes while you’re knee-deep in PlayerController.cs scripts and physics engines. This pattern can repeat infinitely with different technologies – a phenomenon lovingly nicknamed “Shiny Object Syndrome” in developer culture. It highlights how easily one’s focus drifts when side projects promise fresh excitement compared to the grind of finishing an existing project.

The meme brilliantly amplifies this by filling the background with dozens of cloned girlfriends (all those identical face-blurred women). Each clone carries labels like Blender 3D, 2D Digital Art, DevOps, React Native, AI, Blockchain, Figma, etc. This exaggeration is comedic hyperbole of the developer’s infinite buffet of interests. It’s too real: every time a new framework, hobby, or technology trend emerges, our developer’s focus fractures even further. In real life, a programmer might genuinely have a half-modeled 3D character in Blender, a half-finished Svelte.js web app, a Raspberry Pi home server project, some unfinished Python AI experiment – all while their main Flutter app hasn’t seen a commit in weeks. Each background clone represents another tempting side-quest pulling him away from the main quest of finishing the Flutter app. In RPG gaming terms, his quest log is overflowing with side quests, and the main storyline is just sitting there incomplete. The clever joke is how the ostensibly “ignored” partner (the Flutter project) isn’t unique at all – there’s a harem of ignored projects! It’s a satire of the polyamorous relationship many devs have with multiple technologies at once, often at the expense of achieving mastery or completion in any one of them.

Why is this funny to seasoned developers? Because it’s a shared industry truth: side-project procrastination. We’ve all been that person with a dozen Git repositories, each a quarter-finished. The meme labels are painfully relatable: Unity is a powerful game engine (irresistible if you’ve ever dreamed of making a game), whereas Flutter is a UI toolkit for mobile apps (practical but maybe less glamorous once the initial fun of learning it fades and the hard work of polishing and debugging begins). The dozens of other labels hint at every possible distraction a dev could justify as “learning opportunities” or “important skills” – from DevOps (setting up CI pipelines for that one project) to Graphic Design (because suddenly you feel you should design a logo instead of coding features), or diving into Blockchain just because it’s the buzzword of the year. Each new interest has its learning curve, and learning is exciting. So the developer convinces himself that dabbling in all these things is worthwhile self-education (and it is, to a point), but it’s also a perfect procrastination strategy. Finishing a project is hard – the last 20% (testing, fixing bugs, writing docs) is often less fun than the first 20% (setting up a new framework, saying “Hello World”). So when motivation dips, the easiest way to feel that spark again is to start something new. The meme humorously holds up a mirror to that cycle: instead of pushing through the less glamorous work to finish the Flutter app, the dev’s brain whispers “Ooh, Unity looks fun, let’s do that instead!”

This analysis resonates strongly at a senior level because experienced engineers have learned (often the hard way) about the value of focusing on one thing to completion. They chuckle (perhaps a bit bitterly) at how accurately this meme depicts the focus-failure that many of us have fallen into. It’s basically an inside joke about our collective ADHD-of-tech. And it’s not only individuals – even companies face this. Teams abandon a near-finished product to chase a new market trend, or rewrite an app in a new language because it’s “hot,” ending up with multiple half-done endeavors. The tags like DeveloperProductivity and ProcrastinationHumor underscore the self-aware irony: we laugh because we see ourselves in this meme, juggling Unity tutorials, Flutter widgets, and a dozen other things, all at once, and marveling that anything ever gets done. In short, the distracted developer meme is funny-sad catharsis for anyone who’s looked at their project folder and realized they’ve become the distracted boyfriend turning away from one “beloved” project after another. It’s a comedic call-out of the eternal struggle between discipline and curiosity in the life of a developer.

Description

This image is a multi-layered version of the popular 'Distracted Boyfriend' meme, tailored to a developer's experience. The boyfriend, labeled 'ME', is looking back at a woman in a red dress, labeled 'Unity Game development'. His current partner, looking on in disgust, is labeled 'Unfinished Flutter App'. The background, which is normally a generic crowd, is filled with numerous copies of the girlfriend's disapproving face, each labeled with a different enticing skill or technology. These labels include 'Blender 3D', '2D Digital art', 'Svelte.js', 'Character drawing', 'Drawing', 'DevOps', 'Maya 3d', 'React Native', 'Logo design', 'Graphic Design', 'Figma', 'AI', and 'Blockchain'. The meme humorously captures the common developer trait of 'shiny object syndrome' - the tendency to get excited and start new projects with new technologies before finishing existing ones. For senior engineers, it's a deeply relatable scenario reflecting a career-long accumulation of abandoned side-projects and the constant, often distracting, lure of learning the next big thing

Comments

7
Anonymous ★ Top Pick My GitHub is just a graveyard of ambitious ideas, each with a beautifully crafted README and a 'last commit' date that screams 'ooh, shiny!'
  1. Anonymous ★ Top Pick

    My GitHub is just a graveyard of ambitious ideas, each with a beautifully crafted README and a 'last commit' date that screams 'ooh, shiny!'

  2. Anonymous

    Stand-up update: “Flutter app’s still 80% done, but on the bright side I accidentally built a multithreaded ECS in Unity - so velocity is unchanged, just vector-rotated.”

  3. Anonymous

    My GitHub contribution graph looks like a QR code that redirects to my therapist's booking page

  4. Anonymous

    The real Unity here is how we've all unified around the shared experience of having seventeen half-finished projects in different frameworks while convincing ourselves that *this* new technology will finally be the one we actually ship. Spoiler: that Flutter app is still waiting for its first production deployment, right next to your Electron prototype from 2019 and that 'weekend project' Rust rewrite that's now in its third year

  5. Anonymous

    My focus obeys the CAP theorem: always sacrifices consistency on the Flutter MVP for availability of Unity prototypes

  6. Anonymous

    Promised the PM I'd wrap the Flutter app this sprint; opened Unity for a '10-minute spike' - six hours, three Asset Store purchases, and a 7GB repo later, I'm benchmarking draw calls

  7. Anonymous

    Unity fires up IL2CPP and reimports everything, so I open a “weekend” Flutter app for the hot‑reload dopamine - right up until provisioning profiles and plugin hell promote it to a permanent PoC

Use J and K for navigation