loading请求处理中...

软件外包接单经验之如何沟通需求,寻找客户,估算工期、报价、签订合同

2022-02-20 09:30:00 阅读 8469次 标签: 开发 作者: yipinweike01

  导语:随着信息化的逐步深入,无论是企业、政府还是个人,对软件的依赖已经到了必不可少的地步。现在有越来越多的人认识到了软件在日常经营管理中的重要作用,因此外包的软件项目也在不断增长。今天我们就来聊聊软件外包接单经验谈-需求篇,软件外包接单经验谈——寻找客户,软件外包接单经验谈-估算工期、报价、签订合同篇

  软件外包接单经验谈-需求篇

  需求的沟通顾名思义,就是搞明白客户到底想做一个什么系统,他想通过这个系统达到什么目的。我们要干的事情就是从客户的描述中,去梳理清楚他的业务逻辑,弄明白主流程和各个分支流程和各种异常的处理流程。然而往往在梳理客户需求的时候,会出现各种偏差,导致梳理出来的需求文档和客户的预期有一些差异,甚至最后出来的系统,客户不予验收。为什么会出现这些情况呢,我们怎么尽量去避免这些情况的出现呢。我认为需要做到以下几点:1、要判断你接触到的需求是否是二手的;2、要区分清楚客户提出的到底是需求还是解决方案;3、对需求要加以控制,学着降低客户预期;4、需求梳理的阶段性成果要不断的和客户沟通,直到你认为客户弄明白了并且认同了你梳理的需求为止。下面来分别说说都是什么意思。

  要判断你接触到的需求是否是二手的。我们接触的客户大都是一家公司或者企业,一般来说客户方会有一个对接人来和你沟通各种事情。包括前期和你接触探探你的虚实,和你沟通需求,让你出报价单等等。但是这个对接人往往不是决策者,也不是最终的软件系统使用者。他只是作为客户方的接口人,来统一他们内部的诉求,来代表客户方选择承接者。所以他们在和你沟通需求的时候,很可能是夹带着他们自己对需求的理解,不一定能准确反映真正的需求。

  我们怎么来判断呢?其实在第一次和客户方的对接人沟通的时候,你就要想办法弄清楚一件事,那就是这个对接人在他们公司到底是什么角色,是老板(决策者)?是需求方代表(软件使用者)?还是老板指派的一个他信得过的人(第三方)?要怎么弄清楚,就得你“八仙过海,各显神通了”。当你弄明白对接人的角色后,就需要根据他的角色来制定你获取需求的计划了。如果一开始就是老板直接和你在沟通需求,那就需要想办法告诉他,能不能找一个其他的人来辅助他和你对接需求,因为老板一般不是软件系统的直接使用者,他提出的需求一般都是大的轮廓,他也没有大块的时间和你详细的梳理需求,导致你梳理的需求要么不完整,要么花的时间很长。所以让他指定其他人来和你对接详情的需求,你只需要在节点性事件上拉上他,亲自过一遍。例如整体的流程都梳理出来了,或者某个需求必须他出面的时候。总之你要想办法与客户方即接近最真实的需求又能和你详细沟通的人取得联系,获取第一手的需求。

  区分清楚客户提出的到底是需求还是解决方案。我们在和客户沟通需求的时候,一定要学着判断到底是需求还是客户提出的对需求的一种解决方案。客户自己往往并不能区分出两者的差异。举个例子,你接到一个电商系统的单子。客户希望能给订单管理中不同状态的订单加上不同的背景色。听到类似这种需求的时候,你就要再问问客户你为什么想要这样做呢?结果他说这样做就可以通过颜色来区别哪些订单需要赶紧发货了。看,这就是客户为了实现能从订单中,马上识别出需要发货的订单,这个需求所想出的解决方案。站在我们的角度当然要告诉客户还有更简洁友好的方式来实现这个需求。在订单列表页加上不同状态的选项卡,并把待发货状态订单的选项卡作为默认列表页。

  可能有人会想,你管那么多干嘛。客户要求怎么弄就怎么弄吧,反正就是一个外包单子,用不着费那么脑筋吧。非也!你多费的这点脑筋就是你和你同行的区别,俗话说就是你的核心竞争力。软件外包这个圈子,其实一般情况下技术上大家都能实现,你怎么脱颖而出,让你的客户特别是“渠道商”认为你就与众不同,就是这种专研和投入的态度啊。你能主动地为客户提出更好的解决方案,而不是一切就按客户想得来,客户也不傻他也能感觉出来你的能力和态度。以后他也愿意为你介绍其他的生意。

  对需求要加以控制,学着降低客户预期。有的客户觉得他给了钱,就希望花一角钱能生产1元的效果。在合同已经签订后,还随时想起了就临时提出各种奇怪的需求要你实现。怎么去控制需求呢?基本原则就是小的改动,对已有的基本逻辑没有损害的需求还是尽量去满足客户,但是对于前后矛盾的,或者实现代价很大的需求。需要你在梳理完需求后第一时间去和客户当面沟通。清清楚楚,明明白白地告诉他,你提出的新需求和之前咱们在合同上确定的需求是矛盾的,或者新需求可以实现,但是研发成本比较高,因为什么什么。即便客户是不懂技术的,只要你能清楚的把原因讲清楚,一般客户都还是能理解的。至于如何能清楚的给客户讲明白,这也是一门学问,以后再单独出一篇文章来讲这件事。

  所以对于客户提出的新需求,你其实就是在满足客户和控制成本之间寻找一种动态平衡,这个度得你根据实际情况来把握。几次“交锋”下来,客户也就知道如何去控制他自己的预期了。

  需求梳理的阶段性成果要不断的和客户沟通,直到你认为客户弄明白了并且认同了你梳理的需求为止。客户在提需求的时候,往往都是阶段性的,今天提一些需求,明天想起来又会提新的需求。你几乎很难遇到有客户,第一次见面就把完整的需求以需求说明书和原型的形式呈现在你的面前。基本形式都是客户口述,你用电脑记录。每次和客户开完会后,你的电脑上都要记录下N条需求。会后你需要趁着大脑的记忆还比较深刻,马上开始梳理需求。我梳理需求的方式都是用两个工具,一个是忆图一个是摹客。用忆图来画主干业务的流程图,通过这种图形工具帮忙自己把主干逻辑和各种分支逻辑思考清楚。用摹客就是画出原型,目的就是在下次和客户交流的时候,让客户能直观地看到有哪些功能和大致的页面布局以及业务流程。

  当你搞完这些后,和客户在约定时间当面再交流一次,把你做的这些给客户讲,客户看到实在的流程和布局后很可能会推翻他之前说的一些需求,或者补充一些新的需求。因为客户的思维和逻辑能力是没有你这个专业人士强的,他是需要你去引导他,慢慢完善整个需求。引导的方式就是根据他讲的需求,你记录下来后去画流程和原型,然后再给他讲,就这样迭代下去一直到他觉得OK为止。这样做最大的好处就是在你们签订合同后,即便他有新的需求,就大概率是一些调整页面配色,新增一些描述字段等无关逻辑的需求。所以在需求整理阶段一定不要偷懒,要不断追着客户拿到第一手需求后马上开始“加工”,整理完成后再约客户,一直到整个需求明确为止。不然在开发阶段再频繁地变更逻辑性的需求,你看你的程序员得不得拿把刀砍死你嘛。换句话说,你需求不弄清楚,后续的开发成本也不好控制。

  软件外包接单经验谈——寻找客户

  软件外包的接单可谓是一项系统工程。寻找客户、与客户沟通需求、评估工期和报价、签订合同、开发、售后等每个环节都需要花精力。我自己从事软件开发行业15年,干过程序员、项目经理、产品经理。可以说一个软件产品从需求,研发、测试、交付等各个环节都有所涉猎。最近2年自由职业者,注册了一个公司,方便接软件外包业务。这2年也做了10多个外包项目。于是也就有感而发,写写软件外包方面的文章,文笔不好,多多包涵!我写的角度主要是针对个人或者小公司承接外包项目,开篇就先谈谈寻找客户。

  由于我自己在这个行业混迹多年,多少有一些人脉。这些人脉主要是软件行业的各类从业者和一些对软件有需求的客户。先说说软件行业的从业者,所谓软件行业的从业者主要是程序员、测试、产品经理、项目经理和一些就职于软件公司的销售和职业经理人。我的外包业务大部分来自于这些人。怎么说呢,其实软件外包这个事情和社会上其他生意本质上是一样的,有人有使用软件的需求,那么市场上就必然有提供这种服务的公司或个人。我们这里不去讨论那些大公司,他们获取业务的方式不在我们讨论的范围内,我也没这个经历。我们就说说小公司和个人如何去获取有软件使用需求的客户。一般有这种需求的公司或者个人,主要通过两种方式去寻找软件开发者。一种是在自己的朋友圈中打听,有没有靠谱的软件公司、一种就是在网上寻找。

  在网上寻找无非就是去百度或者猪八戒这种威客网站上找,我自己没那个财力去百度打广告,也不想去那些威客网站与别人去争几千块钱做一个网站的业务,于是我的业务来源主要就是圈子里的熟人介绍和客户再推荐客户2种渠道。说到圈子里的熟人,也分2种类型,一种是我熟人的朋友找到他推荐软件公司,于是他推荐了我;另一种本身就是软件外包业务的从业者,他把自己手上的业务介绍给我。当然这都需要给别人介绍费,具体多少得你们自己去谈,每个项目都不一样。反正原则就是你自己去评估一下除去他的介绍费后,你自己得到的收益是否自己满意。当然也需要考虑给你介绍业务的人,是否以后还会有新业务给你介绍。

  所以说了半天,我的业务几乎没有一个是我自己主动去打电话给陌生的人获取的,因为我觉得那样做无异于大海捞针,自己又不是大公司,陌生人对你的能力没有半点认知,要想获取这个业务,成本太高。我这种方式与其说是在寻找直接客户,不如说是在寻找“渠道商”,这个逻辑是这样的:软件外包这种事,都是几乎没有持续性的。A客户的项目做完,很难在短期内(一年内)还会有新的项目给你做,所以你必须去打造一张关系网,网上的每个节点又有他自己的网。要打造这张网,最重要的就是2点:第一就是让别人相信你可以顺利地交付外包项目,不至于损伤他在朋友圈中的信任度,因为你能和客户见面沟通需求,甚至于拿下项目,都是因为你的朋友提供了信任背书。第二就是介绍外包项目的朋友的好处一定要给够,因为别人给你介绍外包项目,从本质上讲就是一门生意,不把利益上的事情谈清楚并按约定执行的话,你相信我,你们将不再是朋友。

  总结来说寻找客户这一部分,重点就是不要花太多精力去寻找直接客户,而应该更多地去建立自己的“渠道商”,最理想的渠道商就是软件行业的从业者,他们的朋友有软件需求,都会请教他们。你和他们“勾结上”,那自然你的潜在项目就更多,签单的概率就更大。

  软件外包接单经验谈-估算工期、报价、签订合同篇

  估算工期还是需要依据之前和客户沟通后的需求来定的。先根据自己的经验先给出一个总体的开发时间。其实有很多理论方法可以用于估算工期。例如敏捷开发中可以把功能点全部列出来,然后让大家选一个开发工期的时间单位为5,也就是在所有功能点中开发时间为最中间值的一个功能点。然后把其他功能点和它比较,采用的时间单位可以选1,3,5,8,10这么几个。最终会把所有功能点都给出一个具体的时间单位值。

  至于这个时间单位是1天还是1周就看项目的具体情况了。采用这种方式评估工期有几个前提条件。1、开发团队比较固定,技术水平相当来说比较平均,没有太差的拖后腿。2、中小型项目。3、客户没有预先给出明确的时间周期。开发团队比较固定就意味着大家经常在一个干事情,相互之间比较了解,这样在评估时间单位的时候比较能达成共识,评估结果也就相对准确一些。项目体量太大了,这种评估方式误差就会比较大。大的项目,例如开发周期超过半年的或者金额超过80万的,还是要采用类似RUP这样的方法论,从中裁剪出合适具体项目的一些过程。

  这个不在我们的讨论范围,这系列文章主要是讨论中小外包项目的。事实上我自己就在2012年考过了PMP,这玩意儿我最大的体会就是老外在这方面真的还是牛逼,把项目管理中能量化的地方都量化了,学习这一整套下来在脑中还是形成了一套如何去管理项目的方方面面。但是类似PMP或者RUP这样的方法论最大的问题就是流程和过程文档太多了,例如和客户沟通还要写一份沟通计划,风险分析还有有风险定性和定量相关的过程文档,等等等等不一而足。我在近15年的软件生涯中重来没有哪一个项目是完全按照这些方法论来的,因为不现实。没那么多时间给你去慢慢准备。不过有这个精力和金钱的话,还是建议大家去考一个PMP,可以系统的学习一下先进的项目管理理论还是有好处的,另外有些时候也可以装装逼。

  话说回来我在接到外包项目的时候,很多时候我自己会首先评估一个时间出来,这主要是依靠经验。这么说可能太虚无缥缈了,你们可能会问什么经验,总不能拍脑袋吧。这种所谓的经验其实就是你项目做得多了,你就会发现当你接到一个新的项目,在和客户的无数次沟通后形成了比较全面的需求后,你大脑自觉地就会在之前做过的项目中搜索出一个和眼前这个新项目最匹配的一个,于是大差不差的你就能在第一时间大概得出这个新项目的开发时间,当然这个不能作为最终给可以承诺的时间。下一步我会采用上文说到的敏捷开发方式中的评估方式,当面召集所有人来评估一次。得到评估结果后我会把自己评估的时间做比较,其实每次都差不太多的。另外老实说我会在这个时间基础上,再加上1/2的测试时间和冗余时间。测试时间不必解释,包含冗余时间是因为几乎所有的项目都有各种原因,会偏离你的预先设定。例如在开发过程中,突然发现有些地方还有再次和客户当面沟通确认,但是客户可能在出差、可能工作比较忙要几天或者一周后才有时间。等等类似这样的情况都会耽误开发进度。

  最终我得出一个开发周期后,就会和客户再确认一次。有些时候客户会同意,有时候客户会讨价还价要求缩短时间,这个时候你就要用你的能力去说服客户,告诉他你定的交付周期是怎么来的,你怎么考虑的。其实这真的是出于对客户负责也是对自己负责,不然我早点交付给你早点拿到钱,何乐而不为呢。怕就怕有的外包团队顶不住客户对缩短时间的压力最后没有系统的进行测试,交付后各种BUG客户天天各种责问。这时客户可不管那么多时间是你承诺的,你真的是哑巴吃黄连,有苦说不出了。

  报价和签订合同也是一门学问,几乎所有的客户在报价上都会讨价还价。有部分客户在心中都有一个预期价格。就是不管功能复不复杂他自己心中认为开发这样的一个系统就是这么多钱,任凭你给他讲再多也没用。遇到这种类型的客户,你不必和他争执。你要站在一个更高的维度去思考问题。如果你评估这个客户不是一次性买卖,后续还有更多的机会,那么这单生意不赚钱也可以考虑接了。如果你现在生意差,需要流水养开发那也接了吧。保证流水不断是更重要的事情。当然一切的前提是你觉得这个客户,或者这个项目不会让你”后患无穷“。

  除了这类客户外,大多数客户还是愿意听你报价的理由,只要你不是太过分。一般都是在你报价的基础上喊你打个8,9折的。毕竟客户也不傻,在和你接触之前一般也和其他几家外包商接触过,心里还是有谱的。不过能经过前面的需求沟通走到报价的阶段,说明对你还是很认同的。这里具体的利润因人而异因时而异,不好具体讨论。我自己接项目一般保证有3成的利润就可以。因为你还要把给国家交的税,账期,和可能收不到尾款的风险考虑进去。所以我要保证最低3成的利润。

  合同的拟定有2种情况。一种是你自己根据自己的模板改好后发给客户,客户修改后再发给你。这种情况一般没什么问题,因为总价和付款节点以及每个节点要交付的东西都提前商量好了。最怕的就是那种大公司,有自己的法务部门的。他们都不接受你的合同模板,都是他们的法务部拟定一份合同发给你,让你确认。这个时间你可要睁大你的眼睛,因为里面坑巨多!我遇到过几次这种情况,合同里面写明延迟交付一天就赔偿总金额1%、要求免费维护期3年、交付上线后1个月内出现3次BUG就无偿退还所有开发费用等等。每一条这种无理要求,你都要据理力争。有时候我会和对方的法务部门来回交锋数次甚至数十次之多。双方来来回回的讨价还价,甚至差点项目泡汤。当然你要想办法把业务方拉到你这边,让他去协助你和法务部交涉。因为法务部他的职责就是最大限度地保证己方的安全,降低己方的风险,他自己不会主动去管业务方的需求是否紧迫,所以一般业务方也会多多少少的帮你一些。

  另外还有一种情况也要特别注意,就是签订背靠背的合同。所谓背靠背就是你开发的系统不是给你的直接客户使用,而是你客户的客户。也就是说你是二包,客户和你签订合同的时候,要求他们收到他们客户的款项后再给你打款。这时你一定要在合同中加上一条,就是最迟在交付后某个时间范围内,要付清所有款项。我现在就遇到一个客户,和他签的背靠背。当时没有经验没有加上最迟付款时间点。因为考虑到他的客户是一家大国企,不会不付款。结果现在系统上线都快1年了,还有四成款项没收回来。他的客户就是各种理由不给他付款,现在都在收集证据准备打官司了,我的钱真不晓得好久才能收回来。

  报价完成了,合同签订了,这个项目才算真正地拿下了。在项目进行中,隔一段时间要自己主动地给客户汇报一下进度,能有演示的界面就尽量早点给客户演示,免得客户又有需求上的变更或者理解上的偏差,导致你返工。对了,在开票的问题上再补充一句。我自己的公司是小规模纳税人,现在因为疫情的原因,国家有税收减免政策。如果客户要专票(增值税专用发票)我一般都是给客户开一个点的税,客户一般也都同意。有些客户就要普票,那当然更好你不用交营业税了。开票的时候买个好点的打印机,你会节省很多时间的,这都是我的教训,之前我买了一个二手的,打10张发票,我打费了20张。搞了我一个通宵,不是位置不正就是打印出来的文字超出框框太多。如果你钱够多,请个行政当然也可以。我自己小公司这些小活都是自己干,财务上找了一家代理记账的公司帮我处理。以后如果公司做大一些了,我还是想找个专职的人员。

开发公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
相关任务
DESIGN TASK 更多
可视化展示工具,开发

¥1000 已有2人投标

资产管理小程序开发

¥5000 已有10人投标

QT 设备modbus采集,控制开发

¥3000 已有2人投标

基于浏览器开发插件

¥5000 已有0人投标

电商APP 开发( iOS)

¥10000 已有3人投标

论坛类信息平台开发

¥1000 已有3人投标