📚 Pitfalls & Anti-Patterns: A Glossary for Engineers, Managers, and Product People
A friendly glossary of common traps, anti-patterns, and bad habits that creep into engineering, product, and management work—so you can spot them (and avoid them!) next time they show up.
No matter how great the team, every project hits bumps in the road—and sometimes, those bumps are ones we accidentally created ourselves.
Over the years, the tech world has developed a fun (and often painfully accurate) vocabulary to describe these common traps, anti-patterns, and bad habits. Knowing the terms makes it easier to recognize them when they creep in—and sometimes laugh at yourself when you fall into one.
Here’s your cheat sheet:
🛠 Engineering & Technical Pitfalls
🔧 Bike-Shedding
Spending too much time debating trivial details—like naming a variable or choosing a color—while ignoring larger, more complex issues. It feels productive, but it's often just procrastination in disguise.
🪒 Yak Shaving
A never-ending trail of prerequisites. You try to do one task, but first you need to do something else, which requires fixing another thing, and now you’re 8 tasks deep without having started the original goal.
🚀 Premature Optimization
Trying to optimize performance before you even know where the bottlenecks are. This usually results in wasted time and unnecessary complexity.
🏅 Gold-Plating
Going above and beyond what’s required—but not in a good way. You’re adding polish, extra features, and "nice-to-haves" that no one asked for (and no one wants to maintain).
🏗 Over-Engineering
Designing a system so flexible and modular it collapses under its own weight. You’re solving problems you don’t have yet at the cost of simplicity and maintainability.
🏡 Not-Invented-Here Syndrome
Refusing to use existing tools or libraries because they weren’t built in-house. Often leads to duplicated effort and lower-quality results.
🍝 Spaghetti Code
Code with tangled logic, poor structure, and unclear intent. Hard to test, harder to refactor, and nearly impossible to onboard others into.
💥 God Object / God Class
A single class or module that tries to do everything. It knows too much, touches too many parts of the system, and becomes a pain point for any change.
📋 Copy-Paste Programming
Duplicating code instead of reusing or extracting shared logic. It works—until you need to change something and realize you have 10 copies to update.
🛐 Cargo-Cult Programming
Using frameworks, patterns, or tools without understanding how or why they work. It might look right, but it’s hollow underneath.
📋 Process & Management Pitfalls
🎭 Surrogation
Mistaking a proxy metric—like velocity, story points, or uptime—for the actual goal. When the metric becomes the target, it often corrupts the very behavior it was meant to measure.
🍉 Watermelon Projects
Green on the outside, red on the inside. Everything looks great in status reports, but dig deeper and the project is off-track, misaligned, or broken.
🎭 Status Theater
The act of crafting impressive-looking plans, decks, and updates that showcase effort but say little about actual progress or outcomes.
⚙️ Death by Process
Layering on so many rules, reviews, and rituals that teams are crushed under the weight of bureaucracy. Process should enable progress, not smother it.
🧠 Analysis Paralysis
Endlessly debating or analyzing options until momentum dies. Usually caused by fear of making the wrong choice or needing consensus from too many people.
🕑 Meeting Creep
When one-off syncs become recurring. When recurring meetings double in length. And before you know it, your calendar is full and your workday is gone.
🪜 Ritual Inflation
Rituals like planning or stand-ups that slowly expand in scope, duration, and complexity. Instead of solving problems, the ceremony becomes the problem.
🎮 Micromanagement
Leadership that doesn’t let go. Constant check-ins, approval gates, and overly detailed oversight that kills autonomy, creativity, and morale.
🫥 Shadow Work
Crucial contributions—like mentoring, documentation, emotional labor—that don’t show up in metrics or roadmaps, but without them the team falls apart.
🦸♂️ Hero Culture
When a few high-performers are expected to save the day repeatedly. It burns them out, masks deeper problems, and discourages teamwork.
📊 Tyranny of Metrics
When the obsession with data becomes a trap. If it’s not measured, it doesn’t matter. If it’s measured, it must improve—even if that means gaming the system.
🧑💼 Product & Organizational Pitfalls
✨ Feature Creep
The tendency to keep adding features, often without a clear customer need. It bloats the product and makes it harder to maintain and use.
📏 MVP Drift
When your "minimum viable product" becomes anything but minimal. Suddenly, it’s a full-blown release before you’ve tested core value.
🏗 Build Trap
Shipping features becomes the goal, instead of delivering value. Teams keep building, but no one stops to ask: did this solve the problem?
🔍 Local Optimization
When one team optimizes for their own success (throughput, sprint goals, etc.) at the expense of the overall system or business outcomes.
🕊 Swoop and Poop
An exec or stakeholder drops in late in the game, shares unsolicited feedback, causes chaos, and leaves the team to clean up the mess.
🕊 Seagull Management
A leadership style where someone “flies in,” makes a lot of noise, criticizes everything, and leaves. Often indistinguishable from Swoop and Poop.
🪄 Magical Thinking
Believing that announcing a plan, goal, or deadline is enough to make it happen—without assigning ownership, resources, or accountability.
🥜 Peanut Buttering
Spreading resources too thin across too many projects. Nothing gets the investment it needs, and everything moves slowly.
🤡 Bozo Explosion
When mediocre hires lower the bar—and then make more hires just like them. It creates a downward spiral of talent, quality, and innovation.
🧟 Bonus Terms
🧟 Zombie Projects
Dead but not buried. No one believes in the project, but no one will cancel it either.
🌊 Boiling the Ocean
Trying to tackle every problem at once instead of narrowing the scope. Leads to overwhelm, overcommitment, and underdelivery.
💄 Lipstick on a Pig
Surface-level changes that try to mask fundamental flaws. Pretty on the outside, broken underneath.
🪟 Broken Windows
Letting small issues accumulate until they signal neglect. If no one fixes them, standards and morale begin to erode.
🪙 Technical Debt
Code or architecture decisions that are expedient now but costly later. All projects accrue it—great teams manage it.
🚦 Final Thoughts
No team or project is immune—every one of us will bump into a few of these from time to time. The key is recognizing them early, calling them out, and course-correcting before they snowball.
Next time you hear “we might be bike-shedding here” or “this is turning into a watermelon project,” you’ll know exactly what’s going on. 🍉
👀 Your Turn:
How many of these do you recognize on your team today?
Got another favorite term I missed? Drop me a note—I’d love to add it to the glossary!