我经历过很多“失败”的开发项目,以至于让我怀疑起开发项目的外包,是否根本就是个“伪命题”。仅就项目而言,甲方和乙方的利益和立场是冲突的,而“合作”的基础是“共赢”,在这种局面下,开发外包真的挺难有个好结果。
如果真的想做个好产品,最好不要外包。
至于原因么?我们从几个方面来简单分析下:
预算
甲方立场:追求性价比,便宜便宜便宜
乙方立场:追求高收益,利润利润利润
甲方是购物者的心态,在其他方面看不出什么差异的情况下,更倾向于买便宜的。虽然大家也都知道“便宜无好货”,但淘宝上那些“九块九包邮”照样热销。
我在乙方从业多年,也做过很多次报价,知道这个过程的“坑”与“无奈”。
首先,甲方需求往往是不明确的。一个无比抽象的需求就让你报价——比如:“我要做个电商App,报个价吧”。听到这种需求,刚开始内心只有万千草泥马,后来直接拍脑袋,爱做不做。
基于这种情况,乙方的报价都会偏高。一来要考虑前期付出的人力成本,二来要考虑风险系数,三来由于公司需要利润且市场报价不透明,一个根据工期和人力成本估算出来的“底价”,可能要乘好几个“XX系数”才会报个客户。
如果客户财大气粗,能接受项目的报价,开始正式合作了,似乎“欢天喜地”地开工了。呵呵,别急,噩梦才刚刚开始。
需求
甲方立场:我付了钱是大爷,我要实现A功能B功能C功能……
乙方立场:客户是傻X吧,就给了这点钱还想造宇宙飞船啊
开发项目,需求的把控者应该是产品经理。但是这种外包合作,产品经理是谁?
一般甲方没有技术能力才外包,那基本不会有产品经理。如果有产品经理,那TA肯定倾向于自己招团队做事,不同公司的沟通效率实在太低。
当乙方的产品经理,需要权衡的事情很多:客户的需求是否合理、公司的利润是否能得到保证、客户是否满意、销售是否满意、开发同事是否满意……呵呵,心好累有木有。
常见的局面是,产品经理一边心里骂着“傻X”,一边陪着笑脸跟客户说:“好的没问题,就按您说的改,这个功能我们安排加上。”
进度
甲方立场:需求都不能砍,必须按时上线!
乙方立场:先答应客户,忽悠进来,收了预付款再说!
我见过的中大型外包项目,99%都延期。
其实很好理解,你就是企业内部的开发项目,也常常不能按时完成。中大型项目本身周期长,执行的过程中有很多不可控的因素(比如需求反复修改和增加、UI设计迟迟不定稿、乙方公司的开发人员离职了等等)。
甲方往往对进度有个“不合理”的预期,乙方虽然觉得时间紧但常常会为了那一笔营收而硬着头皮答应,结局可想而知。
沟通
由于是两家公司,分别为买方和卖方,沟通存在两个致命问题:
1)信息不对称
甲方在这个角度上是弱势的,因为乙方对你总是“报喜不报忧”,刚开始说的“天花乱坠”,不会告诉你项目很可能会延期,不会告诉你有个技术难题还没头绪,也不会告诉你开发团队只有三个人有一个还即将离职了……你满怀期望等待着上线,结果一次又一次后延,不知道什么时候才是头。
2)沟通效率低下
在一家公司里,走两步就能找到人。外包合作,一周开一次会已经算频率很高的了,这样的会议通常解决不了什么问题,项目执行中的细节沟通只能通过在线聊天、邮件和电话等方式。当涉及到关键问题时,双方都会想办法去规避风险,这会有很多的反复沟通,常常拖了好几天都没有结果,而这会直接影响开发进度。
当然,我不排除有“靠谱”的乙方存在,也认可一定有更好的合作方式(比如乙方入股甲方开发项目、联合办公等),能给外包开发项目带来“双赢”的结果。
但传统意义上的纯技术外包,真的不如自建开发团队,甚至你去找个人开发者合作,都比找那些“外包开发公司”靠谱得多。
(以上言论仅代表个人观点,供大家参考)