很多企业一开始都会倾向固定价格
在软件开发合作里,很多企业一开始都会倾向固定价格。
这很容易理解。
项目要花多少钱、做哪些内容、什么时候交付,最好一开始就写清楚。这样便于内部审批,也便于控制预算。对客户来说,固定价格看起来更稳妥,风险也更容易被提前锁住。
所以,我们并不认为固定价格本身有什么问题。
在一些边界清晰、需求稳定、交付物明确的项目里,固定价格当然可以是一种合理的合作方式。双方先把范围说清楚,再按约定推进,这种合作并没有问题。
真正的问题在于,并不是所有软件项目都适合这样做。
软件项目最难的地方,往往不是报价
很多软件项目在开始时,并没有想象中那么清楚。
客户可能知道自己想解决什么问题,但还不能确定最终应该做成什么样;
业务部门可能提出了需求,但这些需求还需要在开发过程中被验证;
项目开始前大家都觉得清楚的东西,真正做起来以后,可能会发现还有很多细节没有想明白。
这并不是谁的问题。
软件开发和购买一个标准化产品不同。很多时候,客户也是在项目推进中,才逐渐看清自己真正需要什么。
所以,真正需要讨论的,不是固定价格好不好,而是这个项目是否真的能在一开始被定义清楚。
如果答案是否定的,那么用一种假设“一切都已经确定”的合作方式去推进项目,后面就很容易遇到问题。
需求变化,不一定是坏事
在很多项目里,需求变化经常被看成一种麻烦。
但从软件开发的真实过程来看,变化并不一定是异常。很多时候,它就是项目本身的一部分。
业务会变,市场会变,客户内部的优先级会变,用户真正使用之后也会带来新的反馈。技术实现过程中,团队也可能发现原来的方案并不是最合适的。
这些变化不是项目失败的标志。相反,它们往往说明项目正在接近真实问题。
如果一个软件项目需要探索、验证和迭代,那么需求在过程中变化,就是很正常的事情。问题不在于变化会不会发生,而在于合作方式能不能容纳变化。
如果合作方式不允许调整,那么变化就会变成冲突。
如果合作方式能够及时调整,变化反而可能帮助项目走向更正确的方向。
固定价格容易把变化变成博弈
固定价格模式最大的挑战,是它天然要求双方在项目开始前尽量把范围锁定。
为了报价,供应商需要知道要做什么;
为了审批,客户也需要知道要花多少钱。
于是双方会在前期尽可能把需求写清楚,把范围列完整,把交付物定义出来。
这件事本身没有问题。
问题在于,文档写得很细,并不等于真实理解已经足够准确。
当项目推进后,新情况出现了,新判断产生了,新需求被提出了,合作就很容易进入另一种状态:
这算不算原来的范围?
要不要增加费用?
时间要不要顺延?
这次调整是谁的责任?
是继续按合同做,还是按新的业务判断调整?
慢慢地,双方的注意力就可能从“怎样把事情做对”,转向“这件事算不算变更”。
这就是固定价格在变化型项目里容易带来的问题:它并不会消灭不确定性,只是把不确定性从产品和业务讨论,转移成了合同和范围讨论。
最后被牺牲的,往往是真正的业务价值
当合作开始围绕范围和变更反复拉扯时,真正被牺牲的,往往是业务价值。
对供应商来说,如果价格已经固定,就会天然更关注如何控制投入、守住范围、避免超出成本。
对客户来说,如果每一次变化都意味着重新评估、重新报价、重新审批,也会更倾向于压缩调整,尽量让项目按原计划走完。但软件项目真正重要的,不是按原计划走完,而是最后有没有解决真实问题。
有些功能按需求文档做出来了,但上线后并不好用;
有些系统按合同范围交付了,但业务团队并没有真正用起来;
有些项目按期验收了,但客户后续仍然需要不断补救和调整。从合同角度看,它可能完成了。
但从价值角度看,它未必成功。这也是为什么,软件开发不能只看“有没有按约交付”,更要看“有没有持续创造价值”。
更合适的合作方式,应该允许项目回到真实问题
面对需求持续变化的软件项目,真正需要的可能不是更死的约束,而是一种更适合变化的合作方式。
这种方式并不是说项目可以没有边界,也不是说客户只能被动接受变化。相反,它更强调几个更实际的问题:
当前最重要的问题是什么?
这段时间的投入是否值得?
优先级是否需要调整?
团队是否真正理解了业务?
客户是否看得见项目正在往哪里走?
也就是说,合作的重点不应该只是守住一开始写下来的范围,而应该是在项目推进过程中,持续判断什么更有价值。
如果项目本身是变化的,合作方式也应该能够适应变化。否则,越是想用固定方式控制风险,越可能在真正需要调整的时候变得僵硬。
固定价格之外,确实还有别的答案
固定价格不是不能用。
它适合那些边界清晰、需求稳定、变化较少、交付标准明确的项目。
但如果一个项目本身就处在变化之中,需要边做边验证、边推进边调整,那么更重要的,可能不是一开始把价格锁得多死,而是找到一种更能容纳变化、同时又不失控的合作方式。
对这类项目来说,软件合作真正要解决的,不只是“怎么签合同”,而是:
如何在变化中保持方向?
如何让投入始终围绕价值?
如何让团队持续理解业务?
如何让客户看得见进展,也能及时调整优先级?
所以,固定价格之外,软件开发确实还有更合适的合作方式。
不是因为固定价格不好,而是因为很多软件项目,从一开始就不应该被当成一个完全确定的采购任务。
它更像一个持续理解问题、持续验证判断、持续创造价值的过程。
而合作方式,也应该为这个过程服务。
什么是 Shinetech Way?
Shinetech Way 是盛安德在长期软件开发合作中形成的方法论,记录我们如何理解客户需求、组织开发团队、管理项目变化,并通过透明协作和持续迭代为客户创造软件价值。
