Day6 - 程序设计报价 (ㄧ)- 报价单的 Bug

老实说,在自己还没转型以前,我最讨厌的部分就是接洽新专案这个环节,从询问来信开始,初步了解需求,然後碰面洽谈提案 ( 当时线上会议还不流行 ),整理会议记录、网站规格、报价单、合约书,寄给客户之後开始针对报价单的内容逐一删减,被砍价是理所当然,而议价是我觉得最难受的过程,彷佛在说我这个人不值这个价,虽然理智上知道这是商业谈判的一环,但心理上很容易就会跟自己过不去。

接下来就是合约书,要提交给客户的法务审查,审完後提出修改,当然修改条件我也要看过,於是中间又是一连串的来回,最後,真正开案大概是第一次会面之後的三个月了,而这三个月所花费的时间还没有产生任何一毛的收入。

以往我的报价方式是用我每月的生活成本来计算,一般来说如果是要架设企业官网的话,我会从企划、设计到程序开发等工作项目估算开发时间,假设我一个月的目标是要赚 10 万块,而过去的经验这类案子我估计两个月可以做完,那我总价就会报 20 万元,如果没在两个月内做完,我就开始赔本了。

然後报价单里面列了一些很空洞的项目,像是 WordPress 安装、资料库建置、环境配置、前後端程序开发、API 串接等等,不能写得太具体是因为根本就还不知道实际开发会遇到哪些问题,只能就过去的经验把基本的开发流程列入,而列这些基本的项目也是担心报价单被拆解,被拆解就无法报到我期望的金额,所以报价单都是列一些基本不能砍的项目,再加上客户特别在意的功能所组成的。

接下来我会想尽办法用各种文件以及约定结案日期来让专案可以在两个月内完成,像是每周固定会议、追客户资料、整理修改需求单、验收确认表,同时还要处理设计、开发,但做这麽多行政作业的结果,真的能在设下的时间点内结掉的专案少之又少。

所以每当下一次专案开始的时候,又会给自己增加更多规定来确保案件能如期执行,然後乐观地期待着这次应该没问题了吧!当重复失败了 N 次以後,才开始认真重新检视自己的工作流程,归纳出以下三点原因为何这样的报价方式存在着 Bug:

自己个性的使然

我喜爱写程序,我愿意学习各种程序开发的知识,更希望透过自己学到的东西,去帮助需要的人,同时也能让自己有饭吃,然後透过我的专业技能去解决他们的问题并让自己获得成就感,这是我给自己工作成功的定义。

然而随着时间经过,就会不知道被第几版的修改需求单给浇熄了热情,每天在做的事情就是跟客户争执说这些功能并非在当初的报价范围里面所以没办法做,但更多时候就是睁一眼闭一眼做给客户,因为争论要做不做的时间已经够我把这功能做完了,但背後更大的原因其实是我「害怕冲突」。

这样最後的结果就是一直被凹,有苦自己吞,不停的告诉自己没关系,这些新加的东西我应该很快就能处理完,多做就是多学,这些客户会感谢我、会介绍更多客户给我,弄不完就加班处理,这次拼一下、撑过去就是我的了、男人就是要能忍耐,然後把自己变成只是为了要能结案收尾款的工作机器,客户要加的需求合不合理我早就不想管了。

因此在当初约定的报价制作项目下,实际要执行的项目是多了好几倍,每多开发一个功能就要多一道修改验收的流程,还会影响到既有的已经开发完成的功能,这样完全不可能在原本预计的时间内完成。

客户对於外包专案的认知

要能把报价单里面所有的项目准时做完除了要靠自己的努力外,剩下九成九的关键都是要看客户对於这个专案的认知,对於客户来说,通常需要发包就代表他们公司内部没有专人可以处理这件事,所以花了钱无非就是希望可以减少人事并得到预期的结果。

但很多公司往往忽略了外包的沟通成本,毕竟「预期的结果」公司内部不同职位的人会有不同的看法,更不用说还要传达给公司外部的接案者,光是一个按钮的位置可能就可以讨论好几个礼拜,而这些讨论在还没具体执行前都是一团谜,等公司内部讨论出一个结论後,可能跟原本报价单里面的项目完全不一样。

再加上负责专案的窗口往往都有自己原本的工作要做,所以等待网站需要的资料、文案、素材也会花上很长一段时间,其他像是等待确认制作方向、验收制作项目等等,这些全都不是我可以掌控的因素,这些沟通成本都无法反应在报价单上面。

因此即使照着过去的同类型专案的经验来估算案件金额,每一间公司的状况都不一样,遇到「特别不一样」的公司就会後悔当初自己报太低,虽然可以追加制作预算,但中间需要「再沟通」的时间,我宁愿赶快结掉去接洽新的案子,对组织庞大的公司来说追加预算不是一件容易的事。

其他外力因素

其他像是身体不适、小孩出生、家人生病、窗口离职、职务转换、老板出差、台风、全球疫情等等的各种外力因素,都可能造成公司决策的改变。

总结以上三点因素,我得到了一个结论:「专案永远不可能在一开始预计的结案日期结案,因为需求每天都在变」。真实世界里有太多的变数在影响着一个专案的进行,如果报价单出去後就再也不能变动了,这对甲乙双方都是一种双输的局面。

依照传统合约的定义方式,只要乙方把报价单里面的项目全部制作完成,并且收回尾款就算是结案,但所谓的「制作完成」只是乙方单方面的认知,对於甲方来说,乙方的产出到底能否符合商业与管理上的需求,这样的认知是非常主观的。

最常听到的就是当甲方看到成品时发现某个他认知「理所当然会有」的功能结果没有,就会很惊讶的问说:「这功能不是基本的吗」?然後乙方就会纳闷,开始解释这功能当初没有写进报价单所以没有开发,於是双方就会进入僵持,直到某方退让或是协调出双方都能接受的作法。

双方的目标不一致是让结案如此困难的原因,甲方要能透过这个专案的产出来达成商业目标,而乙方是要严守当初报价的内容,避免无止境的修改需求或新功能让自己或公司陷入营运的困境,但商场上每天都是瞬息万变,昨天讨论的内容可能今天就会被推翻,更不用说是在两个月前讨论的规格,怎麽可能在两个月後完全一模一样,所以乙方就会非常辛苦,为了要结案可能要做某些退让,同时也要坚守底线不然案子会赔到脱裤子。

上述这些状况都是我以前每天的风景,但知道原因之後,问题就解决一半了,下一篇文章我会介绍让我接案职涯 180 度大转变的方法,让我现在可以每天有两个小时创作时间与周休三日靠得就是它:「敏捷式接案」。

本文同步发表於:https://oberonlai.blog/tw/wordpress-freelance-quotation-1/


<<:  前言

>>:  [Tableau Public] day 6:尝试制作不同种类的报表-3

[Day5] 范围链

什麽是范围链(Scope Chain) 范围链是指当函式本身没有所需的变数时,会向外层寻找该变数,而...

Flutter学习Day2 Widget 观念 StatelessWidget (上)

介绍 只要把Widget想像成一块块的乐高积木或是部件, 当你要建造一台新阿姆斯特朗旋风喷射阿姆斯特...

DAY25:模型训练DenseNet201

DenseNet201 简介 DenseNet继承了ResNet的短路连线机制,并调整为密集连接机制...

可以录制Mac 内部/外部声音的 5 种荧幕录制方法

我想用录制我的Mac电脑的荧幕和声音,我该怎麽办? 其实,如果你使用合适的应用软件,你可以简单地将M...

Day23 韩式安东炖鸡

在韩国吃到安东炖鸡的时候,就觉得味道很亲切熟悉,不像其他韩国料理辣到喷火,且材料很单纯,咖哩吃腻了...