POST: The shift-left fallacy
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 25/100
- Issue 类型
- 文档
- 描述清晰度
- 需要澄清
- 活跃度
- 停滞
- 技术栈
- markdown
- 领域
- content
调研方向
该 issue 提供了文章文本,但没有指定目标文件、入口点或测试。首先检查仓库的 Docusaurus 内容布局和贡献指南,然后确认这篇文章应放在哪里,以及所请求的结果是发布、编辑还是其他事项。
由索引模型根据 Issue 内容生成。
描述
The Shift-Left Fallacy: When "Earlier" Becomes the Enemy of Innovation
In software development, “shifting-left” has become one of those buzzwords that sounds undeniably smart and has been everywhere for a few years. The basic idea is this: move key activities like extensive design, testing, security, and compliance much earlier in the development cycle, i.e., shift left. That way, problems are caught sooner or supposedly eliminated, costs are reduced, and delivery becomes more efficient because you have eliminated problem at the root. Kinda like: measure twice, but cut once.
But here is the uncomfortable truth: when taken too far, shifting-left is an anti-agility trap. Instead of helping dev teams move faster and adapt, it can slow them down and stifle the creativity that grows from iteration and experimentation.
Technical debt is a free loan
A common fear pushing to promote shifting-left is that we are accumulating a so-called "technical debt", where technical debt would be the future cost of choosing an easy or fast solution now instead of a better one that would take longer to do now, creating work that must be done later, aka. a debt of future refactoring, redesign or debugging. But the twist is that in earnest, technical debt is a free loan. It lets you move faster, learn quickly, and prove value before you spend time perfecting things that might change later and void all your initial assumptions. Not getting everything right the first time is not a failure, rather it is a source of leverage! The trick is knowing when to repay that debt, not avoiding it at all costs. Premature optimization often costs more than the debt ever would to repay and in most cases, YAGNI (You Ain't Gonna Need It) anyway!
More problems with pushing everything left
Let’s say you are trying to build a new software product. Before writing a single line of code, you are now expected to draft a design, to specify all test cases, to complete a bunch of security reviews, to fill out architecture diagrams, to meet with multiple stakeholders and collect all their requirements, and to draft comprehensive documentation. You are not building anything yet, you are barely preparing to build.
Soon, that thing that was supposed to make you faster is making you crawl to a halt. Experimentation becomes risky. Iteration slows. Innovation stalls under the weight of early-stage processes, that have all been moved left.
This is what I call the shift-left fallacy: the belief that moving all tasks earlier in the timeline always leads to better results. It overlooks the critical fact that I cannot optimize and plan for something that has not taken shape yet. Unless you are a first order genius, or unless you are willing to bear all costs of such an approach upfront (which may be needed in a few cases, like when sending a rocket to Mars)... but this is not your everyday use case!
For instance, CI is not your TODO list
A common symptom of over-shifting left in the dev cycle is bloated CI pipelines (and I have built my fair share of them). In theory, running every check on every commit sounds like a wonderful idea, after all extra compute is mostly "free". But, in practice, it can be a total drag or a total waste. When each small code change triggers dozens of tests, linters, scans, and audits, and the corresponding dozen of small failures, feedback and review loops stretch out and devs wait... and wait. What should take only a few minutes now starts taking hours. Worse, I would start gaming the system by avoiding small commits entirely or delaying pushing code. That CI pipeline becomes less about confidence and much more about red tape and overhead. Not every commit needs to be a compliance or feedback event. We should use se CI to enable faster and more efficient code to flow, not to block it!
In the end, innovation comes iteration and slack
Yes, we should catch bugs early. Yes, security matters. Yes, we need documentation. (we really need that yesterday). But these things should support innovation, not slow it down.
The key is to find some balance. Shift left when you can automate and not demand extra early work, where it adds real value by removing busywork, but do not turn your dev process into a compliance checklist before the idea has not even be validated. Let you and your teams explore. Let them build. Then bring in structure at the right time to refine and protect what is worth keeping (Hint: I like to bring in structure only when this starts to be a little painful, not before ;) )
Because in the end, building awesome software is not just about moving faster. It is about moving smart, and sometimes, that means not doing everything too early. So do not fall for the sirens of shifting left for the sake of it: there could be nothing left when you've shifted it all left :)
- 主要语言
- JavaScript
- 星标
- 9
- 派生
- 17
- 平均合并
- 7 小时 55 分钟
- 30 天内合并 PR
- 2
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
aboutcode-org/www.aboutcode.org 的其他 Issue
-
Making all post button.可能已有人在做 @sarthaklole 于 71 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
aboutcode-org/www.aboutcode.org#117 · 3 条评论 ·
-
WWW: Reduce frequency of update-releases可能重新可做 @johnmhoran 于 52 天前认领,目前没有进行中的 PR。 未关闭ci-workflow
难度 2/5 1-3 小时 新手友好度 45/100
aboutcode-org/www.aboutcode.org#180 · 已指派 1 人 ·
-
DOCS: Create new AboutCode stack diagram(s)可能重新可做 @hixvikas 于 53 天前认领,目前没有进行中的 PR。 未关闭documentation
难度 5/5 一周以上 新手友好度 35/100
aboutcode-org/www.aboutcode.org#166 · 1 条评论 ·
-
WWW: Create About top level page?可能已有人在做 @pombredanne 于 155 天前认领。 未关闭website
难度 2/5 1-3 小时 新手友好度 35/100
aboutcode-org/www.aboutcode.org#164 · 1 个 reaction · 已指派 1 人 ·
-
WWW: Add Initiatives and grant Projects可能重新可做 @mjherzog 于 242 天前认领,目前没有进行中的 PR。 未关闭enhancement needs design website
难度 5/5 一周以上 新手友好度 25/100
aboutcode-org/www.aboutcode.org#141 · 已指派 1 人 ·
查看 aboutcode-org/www.aboutcode.org 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
-
agent bug
难度 1/5 1 小时以内 新手友好度 88/100
-
bug 🐛
难度 2/5 1-3 小时 新手友好度 78/100
comunica/comunica#1925 · 1 条评论 ·
维护者通常 1 天内回复
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复