---
title: "固定价格还是按工时计费：哪种合同更适合你的项目？"
canonical: https://wavect.io/zh/software-development-guide/fixed-price-vs-time-and-materials/
language: zh
description: "当范围已被充分理解时，固定价格胜出，通常是在探索阶段之后，而你想要一份签署在案的交付承诺。按工时计费，以按周服务的方式结算，则在范围仍在变动、你想要逐周掌舵时胜出。诚实的答案是，大多数项目两者都用：探索阶段把范围定死之后做固定价格的构建，或者在未知数仍待解时用按周服务。挑那个与你范围真实确定程度相匹配的方式，而不是纸面 …"
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

选择怎么购买

# 固定价格还是按工时计费：哪种合同适合你的软件项目？

当范围已被充分理解时，固定价格胜出，通常是在探索阶段之后，而你想要一份签署在案的交付承诺。按工时计费，以按周服务的方式结算，则在范围仍在变动、你想要逐周掌舵时胜出。诚实的答案是，大多数项目两者都用：探索阶段把范围定死之后做固定价格的构建，或者在未知数仍待解时用按周服务。挑那个与你范围真实确定程度相匹配的方式，而不是纸面上看起来最安全的那个。

简短回答

范围锁定、你想要一份有约束力的交付承诺时，用固定价格；范围仍在演变、你需要边走边掌舵时，用按周服务。

适合

- 固定价格：探索之后范围清晰的构建
- 固定价格：需要一个确定数字才能批预算的情况
- 按周服务：范围仍在成形的早期产品
- 按周服务：优先级逐周变化的持续性工作
- 按周服务：想在一切定义清楚之前就开始的团队

不适合

- 固定价格：你还描述不出范围的项目
- 固定价格：预期会在构建中途改变方向的创始人
- 按周服务：需要一个前期保证数字的买家
- 按周服务：无法每周审阅进度的利益相关方

// 01

## 比较各个选项

这两种方式在真正重要的地方有何不同。

| 维度 | 固定价格（Werkvertrag） | 按工时计费（按周服务） |
| --- | --- | --- |
| 所需的范围确定度 | 高。签约前必须界定好范围。 | 低。范围可以保持开放并逐步演变。 |
| 风险由谁承担 | Wavect。我们有法律义务交付约定的范围。 | 共担。你为时间付费，我们按优先级交付。 |
| 应对变更 | 提变更请求，并对照已签署的 SoW 重新报价。 | 重新排定下一周的优先级。无需文书。 |
| 最佳阶段 | 探索之后，构建已被充分理解时。 | 早期或探索性工作，或长期迭代。 |
| 取消 | 受 SoW 中约定交付物的约束。 | 可随时按周取消。最后一周若未挣得，则退款。 |
| 你优化的目标 | 价格与交付的确定性。 | 灵活性和启动速度。 |

// 02

## Wavect 的立场

我们对这两种方式都不迷信。我们只迷信一件事：让合同匹配你实际知道多少。

如果探索已经产出了清晰的范围，固定价格是诚实的选择。我们签一份 Werkvertrag，也就是一份 Statement of Work（已签署的 SoW，有法律义务交付它所描述的内容）。这把交付风险放在我们身上，范围既已商定，这风险本就该归我们。

如果范围还在成形，固定价格就会是把猜测包装成保证。那种情况下我们改用按周服务。你可以随时按周取消，最后一周若我们没挣到，就退还。这让我们逐周保持诚实，而不是躲在一个谁都说不准的数字背后。

// 03

## 成本、风险与周期

成本 探索 EUR 3,500 起 探索界定出范围，固定价格才能据此报价。

风险 取决于所选方式 固定价格把交付风险放在我们身上；按周服务让风险共担且可见。

时间 由范围的清晰度决定 锁定的范围可以稳妥排期；开放的范围则逐周掌舵。

// 04

## 这里通常会出什么问题

- 范围还没理解就签固定价格，然后为每一个变更请求争执不休。
- 把按周服务当成没有每周审阅的开放式合作，于是花了钱却没有产出。
- 把固定价格的交付物保证和按期退款混为一谈。这是两码事。
- 纯粹为了封顶预算而选固定价格，又把 SoW 写得不够细，结果构建偏离了真实需求。
- 跟无法每周做决策的利益相关方一起跑按周服务，结果把工作拖停。

// 05

## 检查清单

在你选定一种合同方式之前，先确认这些。

- 你能把范围描述得足够细到可以报价，或者你接受自己目前还不能。
- 你清楚在你选的方式下，交付风险由谁承担。
- 对于固定价格，SoW 列出的是交付物，而不只是意图。
- 对于按周服务，你有人能每周排定优先级。
- 你的预算审批与方式相匹配：一个数字，还是一个周费率。
- 你明白固定价格是一份交付承诺，而非按期退款。
- 等范围定下来后，你有一条从按周服务转为固定价格的路径。

// 06

## 在我们的工作中是什么样子

在这些案例里，对的方式加上收紧的范围，让进度跑得很快。

### [Twinsoft AI](/zh/case-studies/twinsoft-ai/)
- **Status:** 上线
- **Outcome:** 2周 - 到可销售的MVP
- **Summary:** 把 vibe-coded 原型推到企业试点就绪，没有走捷径。
- **Stack:** Python / Flask, LLMs, Terraform

### [PromptID](/zh/case-studies/promptid/)
- **Status:** 上线
- **Outcome:** 6周 - 从零到生产
- **Summary:** AI 原生评估平台，在压缩的市场压力下 6 周内从零到生产。
- **Stack:** NestJS, NextJS, LangChain

这些是精选项目，并非我们的全部作品。自 2018 年以来我们已交付 75+ 款产品。

// 07

## 什么时候适用，什么时候不适用

// 01

### 什么时候 Wavect 是合适之选

- 你想要一个会告诉你哪种方式合适的伙伴，而不是默认选更能多收钱的那种。
- 你已经做过、或愿意做一次探索，再去锁定固定价格。
- 你希望交付风险由真正构建软件的人来承担。
- 你看重一份贴合现实的合同，胜过一份看起来整齐的合同。

// 02

### 什么时候我们并不合适

- 你想为一个还描述不出的范围拿到保证价格。
- 你期待一份固定价格合同会在日期延误时退款给你。
- 你既不愿在按周服务里每周投入，又不愿界定范围。
- 你纯粹按最低标价来比价。

不确定哪种方式适合你的项目？从探索开始，对的合同自然会浮现。

// 08

## 相关服务与阅读

- [服务 软件开发](/zh/services/software-development/)
- [服务 MVP 开发](/zh/services/mvp-development/)
- [服务 分时 CTO](/zh/services/fractional-cto/)
- [指南 什么是软件探索阶段？](/zh/software-development-guide/what-is-a-discovery-phase/)
- [指南 在奥地利做软件要花多少钱](/zh/software-development-guide/software-development-cost-austria/)
- [指南 如何挑选软件开发公司](/zh/software-development-guide/how-to-choose-a-software-agency/)
- [案例研究 Twinsoft AI：从原型到企业试点用了 2 weeks](/zh/case-studies/twinsoft-ai/)
- [案例研究 PromptID：从 0 到生产用了 6 weeks](/zh/case-studies/promptid/)

// 09

## 常见问题

### 固定价格总是比按工时计费更安全吗？

不是。固定价格只有在范围被充分理解时才安全。如果你在一个含糊的范围上锁定价格，你是用真实风险换来了对变更请求的争执。当范围不确定时，按周服务才是更诚实的选择。

### Werkvertrag 究竟是什么？

它是一份已签署的 Statement of Work（SoW），让我们有法律义务交付它所描述的范围。交付风险在我们身上。它不是承诺在日期变动时退款给你；它是交付约定结果的承诺。

### 我能取消按周服务吗？

能。你可以随时按周取消。如果最后一周没有挣得，就退还。这是按周服务给你灵活性所对应的代价。

### 我们之后能从按周服务转成固定价格吗？

这往往是最好的路径。范围不确定时跑按周服务或做探索，等构建被充分界定后，再锁定一份固定价格的 Werkvertrag。

### 我怎么让固定价格保持诚实？

签约前把范围真正界定好，通常通过探索，并确保 SoW 列出的是具体交付物而非意图。固定价格的好坏，取决于它背后那个范围。

最近审阅: 2026-06-26 审阅人 [Kevin Riedl](/zh/team/kevin-riedl/) [wiki ↗](https://www.wikidata.org/wiki/Q139796365)

## 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/software-development-guide/fixed-price-vs-time-and-materials/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-06-26",
      "inLanguage": "zh",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-06-26",
      "url": "https://wavect.io/zh/software-development-guide/fixed-price-vs-time-and-materials/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/zh/software-development-guide/fixed-price-vs-time-and-materials/#article",
      "@type": "Article",
      "about": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "author": {
        "@id": "https://wavect.io/team/kevin-riedl/#person",
        "@type": "Person",
        "name": "Kevin Riedl",
        "url": "https://wavect.io/team/kevin-riedl/"
      },
      "dateModified": "2026-06-26",
      "datePublished": "2026-06-26",
      "description": "当范围已被充分理解时，固定价格胜出，通常是在探索阶段之后，而你想要一份签署在案的交付承诺。按工时计费，以按周服务的方式结算，则在范围仍在变动、你想要逐周掌舵时胜出。诚实的答案是，大多数项目两者都用：探索阶段把范围定死之后做固定价格的构建，或者在未知数仍待解时用按周服务。挑那个与你范围真实确定程度相匹配的方式，而不是纸面上看起来最安全的那个。",
      "headline": "固定价格还是按工时计费：哪种合同适合你的软件项目？",
      "inLanguage": "zh",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-06-26",
      "mainEntityOfPage": "https://wavect.io/zh/software-development-guide/fixed-price-vs-time-and-materials/#webpage",
      "mentions": [
        {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        {
          "@type": "Service",
          "name": "软件开发",
          "url": "https://wavect.io/zh/services/software-development/"
        },
        {
          "@type": "Service",
          "name": "MVP 开发",
          "url": "https://wavect.io/zh/services/mvp-development/"
        },
        {
          "@type": "Service",
          "name": "分时 CTO",
          "url": "https://wavect.io/zh/services/fractional-cto/"
        }
      ],
      "name": "固定价格还是按工时计费：哪种合同适合你的软件项目？",
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "reviewedBy": {
        "@id": "https://wavect.io/team/kevin-riedl/#person",
        "@type": "Person",
        "name": "Kevin Riedl",
        "url": "https://wavect.io/team/kevin-riedl/"
      },
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".cmp-hero__headline",
          ".cmp-hero__lead"
        ]
      },
      "url": "https://wavect.io/zh/software-development-guide/fixed-price-vs-time-and-materials/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/",
          "name": "首页",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/software-development-guide/",
          "name": "软件开发指南",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/software-development-guide/fixed-price-vs-time-and-materials/",
          "name": "固定价格还是按工时计费：哪种合同适合你的软件项目？",
          "position": 3
        }
      ]
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "不是。固定价格只有在范围被充分理解时才安全。如果你在一个含糊的范围上锁定价格，你是用真实风险换来了对变更请求的争执。当范围不确定时，按周服务才是更诚实的选择。"
      },
      "name": "固定价格总是比按工时计费更安全吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "它是一份已签署的 Statement of Work（SoW），让我们有法律义务交付它所描述的范围。交付风险在我们身上。它不是承诺在日期变动时退款给你；它是交付约定结果的承诺。"
      },
      "name": "Werkvertrag 究竟是什么？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "能。你可以随时按周取消。如果最后一周没有挣得，就退还。这是按周服务给你灵活性所对应的代价。"
      },
      "name": "我能取消按周服务吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "这往往是最好的路径。范围不确定时跑按周服务或做探索，等构建被充分界定后，再锁定一份固定价格的 Werkvertrag。"
      },
      "name": "我们之后能从按周服务转成固定价格吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "签约前把范围真正界定好，通常通过探索，并确保 SoW 列出的是具体交付物而非意图。固定价格的好坏，取决于它背后那个范围。"
      },
      "name": "我怎么让固定价格保持诚实？"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
