---
title: "为什么人们认为外包公司很烂 - 博客"
canonical: https://wavect.io/zh/blog/why-agencies-are-bad/
language: zh
description: "我们都知道关于软件外包公司的那些恐怖故事。交付了有缺陷的软件。没有按时交付。费用远超预期。"
image: "https://wavect.io/img/blog/headers/header_why-agencies-are-bad.png"
---

[**返回**](/zh/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/zh/team/kevin-riedl/)

[Kevin Riedl](/zh/team/kevin-riedl/) https://linkedin.com/in/wsdt

11 分钟 阅读 · 2024年6月7日

[**下一篇**](/zh/blog/agile-fixed-pricing/)

# 为什么人们觉得外包公司糟糕

要点速览

软件外包本身不糟，让它们看起来糟的是预期不对齐和沟通缺失。魔鬼四角说明时间、成本、范围、质量必须互相平衡：又快又便宜又好是不存在的，你只能选两个；预防成本指数增长，要在预防和失败成本之间找经济均衡点。项目预算应分三桶（工作包估算、应急储备、管理储备），下次接洽外包时，先问他们如何上报进度、有没有设定现实预期。

我们都听过这些关于软件外包的恐怖故事。外包交付的软件有缺陷、没在约定截止日交付，或者费用远超预期。

但真正的问题是什么？通常是糟糕的沟通、上报缺失、不可预见的风险，以及没有被计入的任务的组合。

那我们如何造更好的软件，同时把成本压低？（理想结果）

## 魔鬼四角

我们看看所谓的魔鬼四角。

你可能听过魔法三角。魔法三角由三项项目约束组成：时间、成本和范围。这些约束必须相互平衡才能交付项目。改变其中一项，会影响其他两项。

软件工程教授 Harry Sneed 把这个模型扩展了第四项约束：“质量”。扩展版本通常被称为项目管理的魔鬼四角，或 Sneed 的魔鬼四角。它把质量从范围中拆出来，让范围只关注内容，不关注交付质量。

我们来推一遍。如果我们希望软件在很短时间内交付，我们大概要雇更多开发者、可能要缩小范围，甚至牺牲软件质量。

![The Devil's Quadrangle](/img/blog/posts/pm_devlis-quadrangle.svg)聚焦于软件开发支出，会导致更低的软件质量、更紧的范围和更慢的交付速度。 同样，通过花更多钱来追求质量，意味着更紧的范围，且很可能延期上线。要为质量、范围和交付速度同时优化，你必须面对显著更高的软件开发成本（见下图）。 软件外包名声不好的诸多原因之一是预期不对齐。请始终设定现实的预期，并选择你愿意接受的取舍。

![Kevin Riedl](/img/team/kevin.webp)

"快、便宜、好。你只能选两个。"

### 质量的成本

下图是展示这一点的另一种好方式。

![Cost of Quality](/img/blog/posts/pm_cost-of-quality.svg)

团队花在测试与优化软件上的时间越多，软件缺陷就越少。因此预防成本会更高。预防成本是指数级的。也就是说，你希望软件越稳定，开发者在测试与优化上要花的时间就指数级增长。

例如，如果你的软件用于飞机，你绝不能冒任何错误的风险，因此你会在预防上投入更多时间。同样适用于 [Web3](/zh/glossary/web3/) 应用，因为你通常在处理大量客户资金。根据你的软件被用在哪里，你会希望停在曲线上的某一点，通常在运营区间内。

我们切到失败成本。生产中出现的错误越多，需要弥补的就越多。这可以是品牌损害、技术债、额外维护开销，或人们起诉你造成的实际金钱损失。

因此你通常希望在预防上花刚好够的钱，以让失败成本合理。这叫做经济均衡。

### 风险呢？

生活里做任何事都有风险。我们意识到的风险，以及当我们意识到时已经太晚的风险。

很遗憾， [定制软件开发](/zh/services/software-development/) 里也要处理这些。结果是项目风险会对任何项目预算带来显著压力。我们快速看看。

![How to budget a Project](/img/blog/posts/pm_budget-project.svg)

每份项目预算都应分成三桶：工作包估算（功能，你想要建造的东西）、应急储备（如果识别出的某个最坏情况发生时要做的工作），以及管理储备（一笔扁平预算，但愿能覆盖所有未预见、且实际发生的最坏情况）。把风险计入预算会显著降低总体项目风险，因为有明确的预算分配给解决问题。

另请参见：大多数外包的功能失调来自激励不对齐。我们的 [奥地利 Fractional CTO](/zh/services/fractional-cto/) 模式通过让一位资深 CTO 与你的结果直接对齐来修这件事，依据 Werkvertrag，而不是按小时计费的跑步机。

## 最终思考

总之，软件外包本身不糟。最常让他们看起来糟的，是预期不对齐和沟通缺失。请始终设定现实的预期，并选择你愿意接受的取舍。

下次和一家软件外包接洽时，问他们如何向你更新进度，以及他们是否设定了合理预期。

## 你可能也喜欢..

[**软件项目应该如何正确定价** 大多数人都知道按小时计费的缺点，因此转而要求固定价格。如果我们告诉你软件项目的固定价格其实也没好到哪里去呢？](/zh/blog/agile-fixed-pricing/) [**Wavect vs 一家通用型开发外包** 通用型卖产能，我们卖产品判断加上能交付的工程能力。](/zh/compare/wavect-vs-dev-agencies/)

软件采购与融资

## 继续浏览此集群

机构选择、合同、价格、资助与交付的商业机制。

[从核心文章开始**软件开发公司提案拆解：影响价格、范围与所有权的 12 项条款**](/zh/blog/software-agency-proposal-teardown/)

- [软件项目接管：30 天供应商切换计划](/zh/blog/software-project-takeover-provider-change/)
- [“Dienstleister”这个词让供应商承诺了什么](/zh/blog/werkvertrag-vs-dienstvertrag-software-austria/)
- [2026 年蒂罗尔软件开发机构对比](/zh/blog/software-agencies-tyrol-comparison-2026/)
- [软件开发公司提案拆解：影响价格、范围与所有权的 12 项条款](/zh/blog/software-agency-proposal-teardown/)
- [2026 年奥地利 AI 咨询：面向中小企业的诚实指南](/zh/blog/ai-consulting-austria-2026/)

只收重要内容

## 关注与你相关的内容

每当我们发布新文章，你会收到一封简短邮件。你可以关注整个博客，也可以只选感兴趣的主题。

[**返回**](/zh/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/zh/team/kevin-riedl/)

[Kevin Riedl](/zh/team/kevin-riedl/) https://linkedin.com/in/wsdt

11 分钟 阅读 · 2024年6月7日

[**下一篇**](/zh/blog/agile-fixed-pricing/)

邮件订阅新文章 ×

×

通过邮件获取新文章

我们发布时给你一封简短邮件。免费，不做跟踪。

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/zh/blog/why-agencies-are-bad/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-07-07",
      "inLanguage": "zh",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-07-07",
      "url": "https://wavect.io/zh/blog/why-agencies-are-bad/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "abstract": "软件外包本身不糟，让它们看起来糟的是预期不对齐和沟通缺失。魔鬼四角说明时间、成本、范围、质量必须互相平衡：又快又便宜又好是不存在的，你只能选两个；预防成本指数增长，要在预防和失败成本之间找经济均衡点。项目预算应分三桶（工作包估算、应急储备、管理储备），下次接洽外包时，先问他们如何上报进度、有没有设定现实预期。",
  "articleBody": " 博客概览/商业与监管/软件采购与融资 为什么人们觉得外包公司糟糕 要点速览 软件外包本身不糟，让它们看起来糟的是预期不对齐和沟通缺失。魔鬼四角说明时间、成本、范围、质量必须互相平衡：又快又便宜又好是不存在的，你只能选两个；预防成本指数增长，要在预防和失败成本之间找经济均衡点。项目预算应分三桶（工作包估算、应急储备、管理储备），下次接洽外包时，先问他们如何上报进度、有没有设定现实预期。 我们都听过这些关于软件外包的恐怖故事。外包交付的软件有缺陷、没在约定截止日交付，或者费用远超预期。 但真正的问题是什么？通常是糟糕的沟通、上报缺失、不可预见的风险，以及没有被计入的任务的组合。 那我们如何造更好的软件，同时把成本压低？（理想结果） 魔鬼四角 我们看看所谓的魔鬼四角。 你可能听过魔法三角。魔法三角由三项项目约束组成：时间、成本和范围。这些约束必须相互平衡才能交付项目。改变其中一项，会影响其他两项。 软件工程教授 Harry Sneed 把这个模型扩展了第四项约束：“质量”。扩展版本通常被称为项目管理的魔鬼四角，或 Sneed 的魔鬼四角。它把质量从范围中拆出来，让范围只关注内容，不关注交付质量。 我们来推一遍。如果我们希望软件在很短时间内交付，我们大概要雇更多开发者、可能要缩小范围，甚至牺牲软件质量。 聚焦于软件开发支出，会导致更低的软件质量、更紧的范围和更慢的交付速度。 同样，通过花更多钱来追求质量，意味着更紧的范围，且很可能延期上线。要为质量、范围和交付速度同时优化，你必须面对显著更高的软件开发成本（见下图）。软件外包名声不好的诸多原因之一是预期不对齐。请始终设定现实的预期，并选择你愿意接受的取舍。 \"快、便宜、好。你只能选两个。\" 质量的成本 下图是展示这一点的另一种好方式。 团队花在测试与优化软件上的时间越多，软件缺陷就越少。因此预防成本会更高。预防成本是指数级的。也就是说，你希望软件越稳定，开发者在测试与优化上要花的时间就指数级增长。 例如，如果你的软件用于飞机，你绝不能冒任何错误的风险，因此你会在预防上投入更多时间。同样适用于 Web3 应用，因为你通常在处理大量客户资金。根据你的软件被用在哪里，你会希望停在曲线上的某一点，通常在运营区间内。 我们切到失败成本。生产中出现的错误越多，需要弥补的就越多。这可以是品牌损害、技术债、额外维护开销，或人们起诉你造成的实际金钱损失。 因此你通常希望在预防上花刚好够的钱，以让失败成本合理。这叫做经济均衡。 风险呢？ 生活里做任何事都有风险。我们意识到的风险，以及当我们意识到时已经太晚的风险。 很遗憾，定制软件开发里也要处理这些。结果是项目风险会对任何项目预算带来显著压力。我们快速看看。 每份项目预算都应分成三桶：工作包估算（功能，你想要建造的东西）、应急储备（如果识别出的某个最坏情况发生时要做的工作），以及管理储备（一笔扁平预算，但愿能覆盖所有未预见、且实际发生的最坏情况）。把风险计入预算会显著降低总体项目风险，因为有明确的预算分配给解决问题。 另请参见：大多数外包的功能失调来自激励不对齐。我们的奥地利 Fractional CTO 模式通过让一位资深 CTO 与你的结果直接对齐来修这件事，依据 Werkvertrag，而不是按小时计费的跑步机。 最终思考 总之，软件外包本身不糟。最常让他们看起来糟的，是预期不对齐和沟通缺失。请始终设定现实的预期，并选择你愿意接受的取舍。 下次和一家软件外包接洽时，问他们如何向你更新进度，以及他们是否设定了合理预期。 你可能也喜欢.. 软件项目应该如何正确定价 大多数人都知道按小时计费的缺点，因此转而要求固定价格。如果我们告诉你软件项目的固定价格其实也没好到哪里去呢？ Wavect vs 一家通用型开发外包 通用型卖产能，我们卖产品判断加上能交付的工程能力。 软件采购与融资 继续浏览此集群 机构选择、合同、价格、资助与交付的商业机制。 从核心文章开始软件开发公司提案拆解：影响价格、范围与所有权的 12 项条款 软件项目接管：30 天供应商切换计划 “Dienstleister”这个词让供应商承诺了什么 2026 年蒂罗尔软件开发机构对比 软件开发公司提案拆解：影响价格、范围与所有权的 12 项条款 2026 年奥地利 AI 咨询：面向中小企业的诚实指南 集群中的上一篇Scope Creep 比率。真实数字集群中的下一篇软件项目定价的正确方式 可选服务路径： 软件开发 MVP 开发 软件 QA Fractional CTO Fractional Co-Founder 看看生产环境中的应用: 债券分析平台 先做决定: 如何挑选软件开发公司 只收重要内容 关注与你相关的内容 每当我们发布新文章，你会收到一封简短邮件。你可以关注整个博客，也可以只选感兴趣的主题。 Company 电子邮箱 你希望接收哪些内容？ 完整的 Wavect 博客接收六个主题下的每一篇新文章。 仅接收所选主题请在下方选择一个或多个分类。 选择主题 AI 与智能体 产品与 MVP 交付与 QA 领导力与团队 商业与监管 Web3 与隐私 我希望接收所选的 Wavect 博客邮件，并已阅读 隐私信息。我可以随时退订。 发送确认邮件→ 免费、双重确认、不使用跟踪像素。 ",
  "articleSection": "商业与法律",
  "author": {
    "@id": "https://wavect.io/team/kevin-riedl/#person",
    "@type": "Person",
    "name": "Kevin Riedl",
    "sameAs": [
      "https://www.wikidata.org/wiki/Q139796365",
      "https://www.linkedin.com/in/wsdt",
      "https://github.com/wsdt"
    ],
    "url": "https://wavect.io/team/kevin-riedl/"
  },
  "dateModified": "2026-07-07",
  "datePublished": "2024-06-07",
  "description": "软件外包本身不糟，让它们看起来糟的是预期不对齐和沟通缺失。魔鬼四角说明时间、成本、范围、质量必须互相平衡：又快又便宜又好是不存在的，你只能选两个；预防成本指数增长，要在预防和失败成本之间找经济均衡点。项目预算应分三桶（工作包估算、应急储备、管理储备），下次接洽外包时，先问他们如何上报进度、有没有设定现实预期。",
  "headline": "为什么人们觉得外包公司很烂",
  "image": "https://wavect.io/img/blog/headers/header_software-project-budgets.svg",
  "inLanguage": "zh",
  "mainEntityOfPage": {
    "@id": "https://wavect.io/zh/blog/why-agencies-are-bad/",
    "@type": "WebPage"
  },
  "publisher": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "url": "https://wavect.io/zh/blog/why-agencies-are-bad/",
  "wordCount": 113
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/zh/",
      "name": "首页",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/zh/blog/overview/",
      "name": "博客概览",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/zh/blog/topics/business-regulation/",
      "name": "商业与监管",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/zh/blog/clusters/software-buying-funding/",
      "name": "软件采购与融资",
      "position": 4
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/zh/blog/why-agencies-are-bad/",
      "name": "为什么人们认为外包公司很烂 - 博客 | ",
      "position": 5
    }
  ]
}
```
