本文转自:http://www.cnblogs.com/JavCof/archive/2011/03/14/1983072.html
前言:公司接了一个代理商下订单的系统,决定采用外包的方式消化掉这个项目,于是我自荐做了这个外包项目的负责人,下面就记录一下这过程遇到的问题。
1. 外包给谁,没有稳定的外包供求对象?
2. 外包项目的质量怎么控制,过程怎么监督?工期怎么控制,项目后期的维护工作怎么做?
3. 需求分析怎么做?做到什么层次?
4. 用户界面,数据库设计这些谁来做,系统框架谁来完成?
结合上面的问题,自己给自己提了个醒,外包项目绝对不比自己一个人单干来的容易。更多的时候,自己是站在一个项目经理的角度去审视问题。
下面我就罗列一下,我的应对之道吧。-,-
1. 对于外包的对象,我选择一个熟悉朋友,因为大家都是做.NET开发,平时没事情,也一起聊聊技术方面的事情,是个不错的人选,至少比去威客上找的陌生人要好很多。
2. a.对于外包的质量控制,我方采用了,自己设计项目的上层框架(ORM层,Common层),外包人员完成(业务逻辑层,WebUI层)的方法。这样做看是有悖于外包的初衷,但是对于做好外包项目质量控制真的做能到心里有数。不会出现N个项目,N个框架的现象。(-_-|||)
b.对于过程监督的问题,项目采用了SVN来进行远程协同开发,还好大家都比较熟悉这个软件,问题不是太大,但是对于项目过程的监督,和项目的演化,真的起到举足轻重的作用。
c.工期控制是个最头疼的问题(采用原型法,用最短的时间作出一个系统的原型,不断深入和演进的方法进行系统的完善,这样可以有效节约计划的时间成本)
d.后期的维护,这里可以借助SVN留下的开发日志。(P.S. SVN真是个好东西,特别的远程协同开发,VSS就捉襟见肘了)
3. 对于需求分析,还是从三方面着手,一个是用户接口UI,数据库设计字段,业务逻辑功能,系统功能的描述另附文档。
4. a.用户界面,采用外包方设计。根据需求分析文档,设计相应的业务表单,交与我方审核。审核通过后,在进行下一步的工作。在这里设计者,会站在用户的角度审视项目,对于项目的认识也会得到进一步的提升。我暂时把他称为UDD(用户接口驱动开发),这里是有感于TDD的魅力联想过来的。用户接口先行,通过反馈回来的界面,明显发现外包方对于业务的理有解偏(要么设计过度,要么设计不到位),通过QQ上和朋友进行交流,商讨进行业务表单的修改。b.对于数据库的设计我方进行的,相对外包方,我方对于业务的理解更深入,在外包方进行表单设计的同时,我方也在进行数据库字段的设计和修改,最终完成了一个数据库的原型,然后通过代码生成器,生成数据实体层,提交到了SVN。(我方设计数据库,可以达到规范数据的字段的目)。
项目的进展:现在项目正在交付客户验收,期待早日通过验收。