我在一家小外包公司做事,不是有完善流程的大公司,所以管理什么的都比较不成熟,需要自己总结。
按照接到外包,开发,收钱这样的顺序我说一下我的看法。
1.沟通阶段
1.1综述
从大范围上来说,外包属于服务业,也就是别人出钱你出服务,那么关键是 多少钱?服务是什么?
另外,很多时候外包是要分期交付,开发过程中还有很多需求的变更,不是一锤子买卖,所以,沟通和处理需求变更也非常重要;
最后,一般开发完还有后期的维护,这也是一块。
1.2初步评价能不能做
找项目的时候,我们可能第一个反应是,技术难点是什么,我能不能做这个项目?能做,价格合适,时间也够,那就没问题了,其实这样没错,但是要注意几个坑,这几种情况的,要慎重考虑
- 处女座,喜欢死扣细节的人,碰到这样的人可能在后期没完没了的改细节,这样时间长了成本就上去了,心情也会不好
- 沟通有问题的人,比如说常年在国外的人,沟通不顺畅,一方面是要花费更多的时间沟通,另一方面他们这样的人可能对一般人都接受的的东西有异议,比如大家都觉得bootstrap的效果就行了,他说不好看
- 有钱就是爷,不按规矩来的人,按照约定的流程开发,交付,沟通,是必须的,有的人感觉的给了钱你就得顺着我的意思来,我才不愿意写什么需求,打电话!这样会有很大风险
- 项目有跑路风险,做到一半,对方都跑路了,那就尴尬了
1.3明确需求
老生常谈,明确需求,谁都知道要明确需求,但是最后需求不明确扯皮的事情还是经常发生,金主说“这不是我要的效果,我没说,你们也没问我啊”。。。。
还有比如 金主说 就照着这个网站做,他有的功能都要,那就坑爹了,这个网站业务可能跟我们这个不大一样,网站后台你也看不到,如果不想后期扯皮,这些不明确的地方一定要一开始就说好
需求怎么样才算明确?有几个要素
- 总的产品需求 包括所有功能点,页面,能画原型图最好
(如果对方设计的业务流程有问题,你得自己理解一遍,帮他优化,不然最后肯定还是要反复改,这是大家都要避免的,如果开始的时候就帮他避免,那不但后期会省力,客户还会感激你) - 时间 总共多少时间 如果超过怎么办 如果因为各种原因延迟 那对应的处理办法?
(这写都是很可能发生的事情,不是写着看看而已,必须考虑) - 分几个阶段,交付和收款,用分阶段的方式基本是所有人的共识,关键是要明确这些节点,这些节点要有可操作性
1.4打招呼
客户可能是第一次找人做外包,以前没坐过这样的事情,那我们非常有必要跟他提前讲明白一些规矩,以避免一些常见的错误发生,而且一定要让他理解而不是就告知,光告知是没用的,要他配合
- 沟通机制
- 需求界定和管理,最重要的就是跟他讲,需求是不能随便变的,变了1是要收费2是要延长时间
- 按节奏 交付时及时测试验收 配合
2.开发阶段
2.1 综述 要有计划 分阶段 走文件
- 开发计划显然是必要的,再小的项目也要,顺利的时候可能什么都不要,但是你得考虑最坏的情况,扯皮起来你可能脑子就不够用了,就要查东西翻记录了,这样不行,我们做事一定要有计划。
- 在每个阶段,要明确此阶段的需求和目标,不要整个项目一起做,这样效率会更高。
- 在开发过程中经常出现这样的问题,遇到一个业务情况可能客户和自己没想到,那怎么办,就要沟通,客户提出新需求了,也要沟通,其中有两个问题,这里有两个问题,一个是沟通机制,一个是需求管理,回头单独说。
- 分阶段完结,按照合同里写的阶段,一个个确认交付掉,不要做到最后整个项目这里也有bug那里也有bug,没有一处是已经ok的,很可怕,一定要分阶段处理掉,对双方来说都是降低风险的,如果对方不愿意做,你反手一个鼠标教他做人。
2.2沟通机制
一句话“一定要走文件”,然后发邮件,退一步,只有文件,不走邮箱也行,但是走文件是底线。
走文件的好处有
- 提高沟通效率,每天24小时随时可能给你qq上来个需求或者打电话给你,这样谁受得了,而且这样非常影响开发效率
- 过滤心血来潮的需求,我最烦那种qq上截个图过来说你看这个效果不错吧 加上
- 有据可查,回头扯皮?那看证据;回头算费用,怎么变多了?那 有据可查;客户改来改去改回了第一版,还说是你做的不好,你反手一个鼠标砸他头上。。。。
2.3需求管理
- 首先 需求的管理师建立在一开始就有明确需求的基础上,如果一开始就没有明确需求,那后期会非常扯淡
- 需求变更的流程 经常有这样的情况,客户跟你说那那那改一下,你就去改了,客户说什么就是什么。
但是这样是有问题的,这里得分两步,确认需求和开发。
你跳过了确认需求,其实确认需求是非常必要的,事情要想清楚了在做,可能你觉得很简单,但是建议还是要停下来想一下,并做好记录,再做。 - 核心功能要尽量避免修改,客户可能觉得就一个小改动,其实会影响到很多的关节,作为开发者你需要重新回顾一遍,并做调整,这显然不是客户以为的这么简单,如果你没有考虑全面,因此而报错,那你还得背锅,所以,核心功能,复杂功能的变更时需要推掉的,如果推不掉,那就1.准备足够的时间去保证处理的完美,2.跟客户说明这个变更造成的额外开销
- 小改动的话,别废话了,直接赠送,改完拉到,但是如果数量多的话,那加起来也会花费很多时间,这时候得跟客户沟通,让他忍一忍。
2.4进度监控
进度监控就是明白你做到哪里了嘛,还有多少没做啊?这个月能结束不?
这样的监控太粗糙了,要做的更细,周报日报搞起来。
在记录的过程中也就是你思考的过程,是你回顾的过程,一直只顾低头走路,可能能就走偏了,记录的时候可能你就发现,本周我他妈都做了什么,全在相应客户的新需求啊,真是够了。
进度监控是另外一道保险,如果你沟通机制和需求变更这些方面除了问题,进度监控会及时发现,防止问题继续。
2.5一开始就没有明确需求的事情,仍给你了,怎么办?
几个手段一起上
1.有条件的话 权限够的话 还是要去重新梳理整个项目的需求
2.不给你权限,那就切割阶段,总的需求是模糊的,当时谈的人没做的好,那我接手后先明确眼下这个阶段的事情,与之前的烂摊子切割,明确此阶段的事情
3.操作的过程中需求分级,核心功能优先花力气理清楚,小功能可以放一放
2.6这一阶段结束了,客户验收很慢,怎么办?
会有这样的情况,客户可能很忙,也不熟悉怎么操作,发现个不会的或者bug就给你提,完了就停下,下次继续,断断续续很慢,那怎么办?
有条件的话就现场验收,这样会很有效率,不会用?指给你看,哪哪报错?我现场改改完继续测。
如果客户在几百公里外不方便,那qq语音电话会议什么的可以搞起来。