惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
N
News and Events Feed by Topic
D
DataBreaches.Net
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Engineering at Meta
Engineering at Meta
T
Tailwind CSS Blog
博客园_首页
Microsoft Azure Blog
Microsoft Azure Blog
Y
Y Combinator Blog
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客
A
About on SuperTechFans
I
InfoQ
S
Securelist
Last Week in AI
Last Week in AI
S
Schneier on Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Hacker News: Ask HN
Hacker News: Ask HN
Schneier on Security
Schneier on Security
Know Your Adversary
Know Your Adversary
腾讯CDC
大猫的无限游戏
大猫的无限游戏
S
Security @ Cisco Blogs
博客园 - 三生石上(FineUI控件)
Simon Willison's Weblog
Simon Willison's Weblog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
美团技术团队
aimingoo的专栏
aimingoo的专栏
G
Google Developers Blog
罗磊的独立博客
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Cloudflare Blog
S
Secure Thoughts
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Latest news
Latest news
Recent Announcements
Recent Announcements
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
L
LINUX DO - 热门话题
Security Latest
Security Latest
TaoSecurity Blog
TaoSecurity Blog
Cyberwarzone
Cyberwarzone
有赞技术团队
有赞技术团队

Yusuf Aytas

When Code Is Cheap, Does Quality Still Matter? Why Crouching Tiger, Hidden Dragon Is a Masterpiece Why We Ignore Advice The Mirror Is Part of the Machine When Too Many Maps Overlap on One Person The Work Runs on Different Maps Your Work Introduces You Trial By Fire The Dude Why Headcount Math Lies Capacity Is the Roadmap The Roadmap Is Not the System Torres del Paine W Trek Escaping Status Theater Incentives Drive Everything Scaling Culture Without Dilution What Good Looks Like Why Airport Security Feels Random Why Politics Appear How to Work with Me The Janus Protocol Multi-Horizon Delivery Framework What Good Execution Looks Like Managing Your Manager Why Kingdom of Heaven’s Director’s Cut Is Better AI Broke Interviews Most of What We Call Progress Managers Have Been Vibe Coding All Along Stop Wasting Brainpower Why Over-Engineering Happens Prisoner's Dilemma Climbing No More The Weekly Win Mevlana Candy Brewing Turkish Tea Onboarding Your Engineering Manager Technical Deep Dives Yapay Zekâ Çağında Bilgisayar Mühendisliği Building Remote Teams From Idea to Launch in 2 Weeks Reflecting on Software Engineering Handbook Representing the Business New Manager Survival Guide Take Self Reviews Seriously Chasing Real Respect The Invisible Difference Learning the Johari Window Management is a Lonely Place Simple Task Management AI Balance in Work PIP Manager Insights Engineering Manager Interview Preparation Work-Life Balance as a Manager Bridging the Management Disconnect Tech Hiring Bubble Bursts Traits for EMs Simple Acts of Recognition Matter The Question I Ask Every New Report The Reality of an Employer's Market Bridging Ideals and Reality Hiring Red Flags Why The Godfather Is So Damn Good Subteam Tenets No Fluff Please Losing a Top Performer Balancing Act of Reliability Building Trust in Engineering Teams Ideal Number of Direct Reports Overriding a People Leader’s Decision From Misperception to Promotion Perception vs Perspective Setting Goals From Engineer to Manager Getting Delegation Right Interviewing Your Future Boss Celebrating Our Book in Iceland Operational Skills Needed On Writing Software Engineering Handbook Charlie Munger Quotes Working with Dependencies From Las Vegas to Canyons Navigating Layoffs Handling Competitive Dynamics A Weekend Getaway to Malta Engineering Health Essentials Should Dev Managers Code? Confronting the Life on Pause Winning Eleven Kindness is A Choice Bireysel Katılımcılar ve Yöneticiler Leading from Where You Are The Subtle Art of Listening Coding in Leadership The Power of Consistency The Making of a Leader The Path to Leadership Embracing TikTok Talent Sourcing Journey Leading Self Managing Teams Cracking Coding Bottlenecks
Pulling the Plug from a Project
Yusuf Aytas · 2022-02-19 · via Yusuf Aytas

Published · 9 min read

Every project starts with high hopes to deliver one or more business values. The team begins with the requirement analysis and then carries on with design and development. On the journey, many obstacles appear. The team tackles one. Later another one shows up. It seems the project is going nowhere. Sounds familiar? Stagnating projects isn’t new.

I've seen in the past many times, we invested into something far longer than we should have, only noticing even more unknowns and even more scope creep. Your natural tendency is to invest even more. Before finding problems of stagnation, we should procrastinate. We should take a step back and evaluate the circumstances to avoid falling into sunk cost fallacy.

And this is where most projects quietly go off the rails. It’s not because the team is bad, but because momentum blinds you. Instead of asking whether the work still makes sense, you convince yourself you’re “almost there.” Weeks pass, the goalposts move, and you realize you’re no longer building a product. You’re just trying to justify the time you’ve already spent. Catching this moment early is what separates a healthy project from one that slowly drains the team, the budget, and the morale.

Sunk cost fallacySunk cost fallacy

Sunk Cost Fallacy

The sunk cost fallacy is about over-investing our time, money, or energy in something. We tend to follow existing endeavors because we have already invested in them. That investment creates a subtle pressure. It’s a feeling that abandoning the work would make all the earlier effort meaningless. Nevertheless, sunk costs have already been incurred. We can't recover from it. Hence, sunk costs shouldn’t be a factor in the decision-making process. If we could think rationally, then we wouldn’t take them as a factor in our future decisions. Nevertheless, it happens because we are emotional creatures. We’re not spreadsheets; we get attached to the things we build, and that attachment clouds our judgment far more than we like to admit.

In the context of software development, we continue working on a project because we invested development time. It’s easy to justify pushing forward by saying, “We’ve already spent so much, we can’t stop now,” even when the project stopped making sense weeks ago. The efforts we put into bringing the product to life are gone. We can’t take them back. We can only make decisions about the future. Thus, we shouldn’t let our emotions corrupt our reasoning. The real discipline lies in separating what has already been spent from what still makes sense to spend. There are times when it’s more reasonable to pull the plug from the project.

Time to Pull the Plug

When the extra time and resources outweigh the yield then it’s time to call it a day. Nevertheless, it’s never easy to make such calls. There’s always a part of you that thinks one more push might finally change the trajectory. More importantly, it’s harder to take a step back and evaluate the circumstances. When you’re deep inside a project, everything feels important, everything feels salvageable, and everything feels like your responsibility.

A project is an investment. If the market conditions change, we should reassess our position. What made sense six months ago might be irrelevant today, and pretending nothing has changed only makes the gap wider. All in all, some signs can guide us on whether we want to end the project.

  • Customers are no longer interested in the project. They started using alternatives. If users quietly walk away, that’s often more honest feedback than anything they say in meetings.
  • The project is well beyond its schedule. It’s unclear when it can deliver value. The project has exhausted our resources. When timelines become guesses instead of commitments, the project is already in trouble.
  • The project delivers value but fails to have a positive impact. In other words, the return on investment is weak. It’s possible to build something “useful” that still doesn’t matter. And forcing impact rarely works.
  • Stakeholders, as well as sponsors, have lost faith in the project. There’s pressure from all fronts. Once trust breaks, adding more code won’t fix the perception problem.
  • The company or department has changed its strategy. For instance, the company favors buy rather than build.Strategy shifts aren’t personal. They’re signals that the environment around the project has moved on.
  • The project has suffered a loss of expertise. The institutional knowledge has been lost. It’s hard to provide support to customers. If only one person truly understands the system, the project isn’t just risky. It’s simply fragile.

Although signs can help navigate the project, there may be a tendency to fall into sunk cost fallacy. It's better to structure the project so that we can check the value proposition for the project on a regular cadence. Regular checkpoints create a rhythm of honesty, preventing long stretches of blind momentum. If you ask the hard questions early and often, you rarely get blindsided later.

Avoiding Sunk Cost Fallacy

There are psychological reasons behind sunk cost fallacy. We don’t want to feel that we wasted time or resources. We want to stick to our plans. We can’t accept the loss. It’s uncomfortable to admit that something you believed in isn’t working the way you hoped, and our instinct is to protect ourselves from that discomfort. How can we move away from this mentality in software projects?

One way is to deliver small and fast. It aligns with agile methodologies. We then establish the feedback loop with the customers. Small batches force reality checks before problems grow too big to ignore. We can navigate with their suggestions. And if the feedback is consistently lukewarm or unclear, that’s already a sign the project may not have strong legs.

Even with an iterative approach, we might still find ourselves at dead ends. To avoid sunk cost fallacy, we should benchmark the project regularly. These checkpoints act as neutral moments. It's safe places to ask, “Is this still worth doing?” without the pressure of defending past effort. When the value proposition becomes questionable, we should apply a decision-making process with the following options.

  • Halt the project with no alternative. 
  • Redirect the project.
    • Evaluate goals
    • Consider alternatives
    • Decide on a new start
  • Resume the project as returns still outweigh the cost.

In the decision-making process, we need to take the emotions away. We shouldn’t count the energy and resources we invested. They are gone. We can do very little about it. The only honest question is what the next unit of time, energy, and money will return. It is not what the previous ones “deserve.” On a separate note, engineers tend to stick to the project or overrate it despite alternatives. We need to avoid it. Common arguments are about customization, covering use cases, and so forth. No product, including our solution, would cater to requirements perfectly. Therefore, it’s irrelevant. If sunsetting the project has more pros than cons, we should go with it.

The longer we delay the decision, the more painful it becomes. This is not because the truth changes, but because we’ve added more emotional weight to it.

Sunsetting a Project

No matter what the reason is, giving up on a project isn’t easy. Engineers build an emotional attachment to the project. They often joke about a project being someone’s baby. Besides, engineers take pride in their work. Hence, stopping a project can demoralize the team. It’s hard to let go of something you’ve shaped line by line, especially when you remember how excited you were the day it started. We need to get everyone on the same page. Stopping should be a team decision. When people feel included in the reasoning, the outcome feels less like a verdict and more like a shared conclusion.

Sunsetting a project has also technical challenges. There may be a few customers who love the product. We need to convince them to use the alternative. Or we need to explain it’s not a financially viable option to run it. These conversations are rarely pleasant, but avoiding them only delays the inevitable. Moreover, we need to set timelines for the deprecation and communicate them with stakeholders. Clear timelines turn a difficult decision into an orderly process, reducing anxiety on both sides.

A good sunset doesn’t just turn the lights off; it gives people enough time to walk out of the room without tripping. A messy sunset, on the other hand, damages trust, not because you ended the project, but because you didn’t guide people through the ending.

In Consequence

Software development projects sometimes go off the rails for different reasons. We need to prevent investing in projects that have lost their cause or projection. We need to avoid sunk cost fallacy. We need to check the project viability as well as its value proposition regularly. When the project’s future is in doubt, we should decide on what to do. In some cases, we need to end it. We shouldn’t make calls based on past investments.

The work you’ve already done doesn’t obligate you to keep going. Sometimes the bravest move you can make is to say, “This isn’t serving us anymore,” and redirect energy toward something that actually matters. Good teams aren’t the ones who never stop a project; they’re the ones who know when to stop and why.

In the end, pulling the plug isn't a failure. It's the focus. It’s right investment.

Good Reads

Article: The Sunk Cost Fallacy

Article: How to avoid sunk cost fallacy in software projects

Article: 16 Signs It’s Time To Pull The Plug On A Tech Project