这个世界上有很多的甲方也有很多的乙方,我们在生活和工作中,不是充当甲方角色就是充当乙方角色,往往两个角色交替着来。看起来,甲方给钱,在交易中应该是主导地位,那为啥软件外包领域的甲方经常在项目交付的过程中狼狈不堪?

我平时常常充当第三方,看了形形色色的甲方和乙方,也算是看透了:软件开发项目要成功,更多的取决于甲方,取决于甲方的能力,态度,还有期望。项目换乙方不难,但是换甲方,基本就死了。我们常见,公司换一任领导,之前没完工的项目黄掉的可能性极高。所以,做一个好的甲方很重要,我们来谈谈为什么,以及如何做一个好的甲方。

没有人知道你在想什么

这个世界之所以有那么多矛盾,就是因为我们的思想是不透明的(是不是想起了三体人?),没有人知道你在想什么!你找人帮你做软件开发,你得明确的告诉乙方你想做什么,软件的使用场景是什么,解决什么问题。

你在你的领域混了很多年,你觉得有些问题很显然,但是乙方没有。你觉得理所当然的问题,乙方可能完全没有听说过。所以,作为甲方,你应该不厌其烦,尽可能详细的说明白你的需求。很多软件项目做出来效果不理想,追根究底都是甲方一开始没说清楚。你不能觉得你的需求很常见,很简单,所以乙方应该理所当然的做出你想要的东西。如果你要的软件真的这么常见,那你就不用定制开发了,直接买现成的。

每个需求都是独特的,所以请不要用这样的语言来描述需求“做一个跟 xxx 软件差不多的就行了”。你说你想要一辆车,乙方好不容易做出来了,结果你说其实你想要的是四驱的,座椅加热的,还得是敞篷的。这样的结局只有一个,就是加钱,延期,否则乙方不干,但是你不爽,埋下了不欢而散的种子。

由于国内的甲方大部分不够成熟,所以很多国内的开发者和外包团队都倾向于接国外的单子,包括香港和台湾的。我参与的海外项目,无一例外,都是非常详细的需求文档,并且对接的人非常耐心的跟乙方解释业务逻辑。

更重要的是,甲方非常清楚,他的责任在哪里。在出现问题的时候,他会判断这个问题是谁的原因,不会把所有责任往乙方身上推。这是我们值得学习的地方,也是我经常跟甲方讲的需要改进的地方。

一分价钱,一分货

大家都知道买东西是一分钱一分货,凭啥到了软件开发就不是了呢?凭啥要求乙方给你免费干活呢?有些甲方意识不到软件的价值,因为看不见摸不着。所以才有一些厂商把软件装到服务器内再卖高价的情况,因为服务器是实实在在存在的,掏钱就很乐意。显然,这是不对的。

定制开发软件的价值就是人工,虽然很多时候计费是按项目收,但实际上也是按人工时间算的,跟装修一样。刷墙看起来是按平米收费的,但实际上也是折算成刷这么多面积的人工来算的。所以你装修的时候刷墙刷完了发现颜色不满意,重刷,不得再给钱么?任何功能的开发,调整都是有成本的,你想在有限的预算内做很多的功能,那你必须接受的事实就是做的比较粗糙,或者你得接受周期拉长,等乙方安排空闲时间帮你慢慢做。

我记得有一个理论是餐馆理论“好吃,便宜,服务好”这三点不可兼得。很有道理,几乎所有的餐馆都不可能兼顾这三点,假如有,那一定会很多人去吃,排队排死,自然服务也就不好了。这条理论放到其他行业也一样,你怎么可能要求软件开发做到“质量好,便宜,交付快”呢?

我是甲方,我是爷?

现实中的交易有时候会存在一种情况,给钱之前甲方是爷,给钱以后乙方是爷,所以才有了所谓的第三方。软件开发由于不是实体产品,很多时候的定义无法完全明确,这样的情况尤其明显。

但是,一个成功的软件项目,往往甲乙双方都不是爷,就是纯粹的甲方和乙方,各有各的责任,各有各的义务。乙方作为收钱的一方,对甲方态度好点,耐心一点是应该的,但是特别要强调的是:甲方并不凌驾于乙方之上。

先来说点不正规的,还拿装修说事儿。21世纪都进入第二个十年了,然而我们在装修的时候不还是得给装修师傅送香烟么?这是为什么呢?明明给你装修费用了,为啥还得买烟?这是一种态度,师傅你工作辛苦了。结果是,师傅高兴了,活儿干的也快了,质量也好了,横平竖直,保证不偷工减料。有的地方看的见,有的地方看不见。软件开发也是一样,你对乙方尊重,乙方自然会有体会,别的不说,同样的功能,我可以把代码写写好,注释多写点以便后期维护。

再来说点正规的。软件开发项目如果完全按照合同来,估计甲方也有很多小尾巴,大家谁都不让谁事情就很难办。所以把关系处好是有必要的。还有,软件项目总有小修小改,如果严格按照产品定义来,乙方完全可以不做这些修改,或者要求加钱。但是如果大家相处的好,这些小改动就顺手做了。这些都是很现实的状况。毕竟,软件开发还算是门手艺活儿。

这篇文章是写给甲方看的,所以乙方的问题就不详细讨论了。说一个结论:如果你觉得乙方不靠谱,或者你给了钱就的听他的,请尽快更换乙方,后面的钱不要再支付了。虽然前期的投入会让更换乙方的成本很高,但毕竟比项目烂尾要好。而且多次实践经验表明,如果乙方前期不靠谱,后期变的靠谱的可能性为零。除非你愿意忍辱负重,凑活把项目做了,否则尽快终止交易,换人。

纠结还是交付?

所有程序员都知道,程序不可能没有 Bug,而且 Bug 往往越修越多,然而这在很多甲方那里是不能理解的。我经常跟甲方讲的是要看主要功能,主要流程是否能走通。除非一些特殊领域的软件,例如金融,工业控制等等,其他的软件,特别是互联网领域的,都应该是先上线,然后再完善。我看到的几乎所有互联网产品都是这个路子。所以,在绝大多数情况下,我们应该选择尽快交付上线,而不是纠结于一些小问题。一般的软件项目都有质保期的,所以这些小问题可以在质保期慢慢修。这有几个好处,首先是不用赶时间,做的质量会好一些。其次,上线以后有了实际的用户和运营数据,可以更加准确的定位一些问题。

另外就是从心理上来讲,大家做一个软件一般都好几个月,如果一直拖着不上线势必会影响士气。虽然,理论上乙方只是帮你开发而已,是否上线跟他关系不大,但成就感多少还是有一点的。上线以后,大家修 Bug 的情绪都会不一样,而且大家都知道已经上线了,有问题得及时修。总而言之,我建议甲方在交付阶段不要纠结,先交付,然后利用质保期完善。

在软件开发这件事情上,你可能是甲方,但在你工作的领域你可能是乙方,换位思考一下会让你成为一个更好的甲方。最后,如何判断你是不是一个好的甲方呢?很简单:乙方是否下次愿意降价 10% 跟你继续合作。

(完)

*注:本文来自codingBlog,作者:张海龙

无数的教训,为什么要做一个好的甲方?相关推荐

  1. 蓄力十年,做一个成就

    做一个有价值的成就,需要十年. 我第一次听到这个说法,还是从我的前同事香农(Shannon Xu)的口中.多年前,香农还是一个有着敏锐思想的年轻人.现在,当然,思想仍然敏锐,却已不再年轻.当时的他,眉 ...

  2. 怎样做一个真正的男人

    态度第一.     努力.    努力就不会有遗憾 直面 恐惧    只有直面恐惧,才能获得平静.    真正的男人更看重方向是否正确,而不是结果如何 从失败中吸取教训,获得经验是最好的选择 下面是1 ...

  3. 【交往智慧】005.做一个愿意聆听的人

    <塔木德>提示我们:"要用两倍于自己说话的时间去倾听对方讲话."和凡事不留心,注意力散漫的人相处,是一件令人非常不愉快的事情.如果你处在这样的境地,就等于是对方在侮辱自 ...

  4. 做一个接地气的产品经理

    只有韦小宝最适合当产品经理 前言: 最近写东西比较少,主要是激发不起"自己的文字可以改变人类"的雄心壮志. 忙于招产品经理,面了大约 30 人,好不容易挑到顺眼的,又被放了三次鸽子 ...

  5. 开发一个商城需要多少钱 做一个电商网站大概多少钱

    首先要考虑做电脑版.微信版,还是做电脑版+手机版,或者要做APP,我们来分析一下这些差异. 只做电脑版:可采用成熟的方案如:ecshop(官网商业授权7800元,源代码开源),注意!这里只是授权费,不 ...

  6. 怎样做一个更有价值的人

    想象有两个世界, 一个世界中有你,一个世界中没有你, 让两者之间的差异最大,那就是你人生的意义 -----李开复 哪怎样做一个更有价值的人呢?     那有一个问题就出现了到底什么叫人生价值呢? 我听 ...

  7. 前端应届生如何做一个职业规划

    前端的兴起 前端真正兴起和开始频繁出现在大家的视线里,大概是在十年前.彼时的 Web 开发基本是由后端主导,前端能做的只是校验一下数据.操作一下 DOM.(其中数据检验是 JS 产生的根本原因:当时网 ...

  8. 阿里云“网红“运维工程师白金:做一个平凡的圆梦人

    他是阿里云的一位 P8 运维专家,却很有野心得给自己取花名"辟拾(P10)": 他没有华丽的履历,仅凭着 26 年的热爱与坚持,一步一个脚印踏出了属于自己的技术逆袭之路: 他爱好清 ...

  9. 阿里云“网红quot;运维工程师白金:做一个平凡的圆梦人

    他是阿里云的一位 P8 运维专家,却很有野心得给自己取花名"辟拾(P10)": 他没有华丽的履历,仅凭着 26 年的热爱与坚持,一步一个脚印踏出了属于自己的技术逆袭之路: 他爱好清 ...

最新文章

  1. 美国康普SYSTIMAX iPatch智能配线系统介绍
  2. 云原生生态周报 Vol. 15 | K8s 安全审计报告发布
  3. Linux系统下对flash的测试方法
  4. Linux学习笔记02
  5. 增加第三方插件_AE插件排行!!
  6. Linux把文件移动到容器外,Docker容器与主机之间拷贝文件的方法
  7. 亲测有效!解决macOS Big Sur系统Parallels Desktop 16的USB无法使用和无法联网问题
  8. 计算机网络「二」—— 物理层(多图详解)
  9. 夺命雷公狗---微信开发09----玩转单图文消息回复
  10. Mongo分片+副本集集群搭建
  11. android 不限速迅雷,安卓iOS,Windows和Mac四大系统迅雷不限速神器,今天全部解决了...
  12. matlab如何绘制函数方程,如何使用MatLab来绘制函数曲线方程图像?
  13. 解决:cannot deserialize from Object value (no delegate- or property-based Creator)
  14. word转PDF,导航窗格输出目录
  15. 指标异动的贡献度量化归因
  16. TC397 EVADC
  17. 2019年,重拾博客!
  18. python testng_自动化测试框架TestNG
  19. 谷歌动态验证码二次验证ssh
  20. Tableau 5阶桑基图

热门文章

  1. c语言conflicting types,gcc编译C程序出现”error conflicting types for function”编译错误的分析解决...
  2. listagg 函数
  3. 若依,报错 Error: Cannot find module ‘@/views/system/user/index
  4. linux printk 头文件,printk函数详解
  5. ifndef/define/endif的使用
  6. matlab的lsm程序,matlab设计基础lsm
  7. poj 3208 Apocalypse Someday 数位dp+二分答案
  8. 浅谈阿里All in无线的看法
  9. 几个免费的nodejs空间
  10. 618大促 中小卖家 抢占流量 人群优化 主推款 流量 中小卖家如何快速抢占流量?