首先,软件外包第一步要做的是,先弄清楚自己对于软件的详细要求。比如你使用这个软件要达到什么目的;要求这个软件有什么样的功能,对于软件有些什么特殊的要求。以超市经营者为例,他们后面是成百个供应商,前面是成千上万个消费顾客。怎样利用软件管理错综复杂的供应商和消费顾客,如何做好精细到一个小小调料包的进、销、调、存的商品流通工作,这些都是超市业主需要详细分析思考的。而且有时光是自己分析还不行,还必须与实际将要使用软件的业务人员进行讨论,这样才能使以后开发出来的软件能真正发挥作用。
我周围有不少朋友在实际的外包中就遇到过这种教训:一个经营商场的朋友说起他曾经外包过一个超市软件,由于他的需求非常笼统,因此对方按一般的超市软件进行开发,结果花上万元开发出来的软件在使用时才发现根本不符合该超市的特殊需求,最后只好束之高阁。还有一个朋友,由于当初没有把需求完全细化,等到软件开发出来才又要求增加功能,而临时增加功能就意味着增加费用,结果当初说好一万元的项目最后花了几万元。这些都是外包中实实在在遇到过的深刻的教训,希望各位有外包需求的朋友把自己对于软件的需要完全分析透,并最好用纸打印出来,并作为合同的一个附件。这样便于软件承接者更好地分析项目,开发软件,出现争议也能够更好地解决。
其次,是要明确把软件交给谁来开发。经常有朋友问我,这个软件是交给软件公司来开发好呢,还是交给软件开发团队?其实这个主要是根据你的实际情况来定,如果你是一家比较大型的企业,或者你所要开发的软件要求的功能很复杂,或者你的资金比较充裕,那就可以找一家比较有实力的软件公司来承接你的项目,虽然费用高一点,但完成项目的质量也相对更有保障;如果你的钱不够多,那最好还是交给软件开发团队来做。这里所说的软件开发团队,是指由一些程序员、软件高手自发组成的软件开发团体,他们多数是兼职来进行软件开发的,其中也不乏一些软件公司中的编程高手。他们的特点是收费相对比较低廉,但是技术方面与软件公司比并没有太大的差别。当然也有所谓的 SOHO 族,就是在家专门编写程序的人。如果你的软件功能相对比较简单,那么也把项目交给个人 SOHO 族去开发,费用还可以进一步降低。
到哪里去找这些软件开发团队或软件公司呢,其实很简单,现在有很多专门提供软件外包信息的网站,比如软件商务网( bizsofts.com )等,你只要在上面发一个外包信息,很快就会有软件公司或软件开发团队与你联系接洽项目。我曾经在软件商务网上发出过几个外包信息,每次都是一个小时内就有十几个人来与我进行联系。最后成交的价格由于竞争激烈也就比较便宜。另外还有一个办法可以很方便地找到项目承接者,就是加入各地软件技术团队的 QQ 群,直接与你所在城市的编程高手谈项目(请参见附录中我搜集的各地软件技术团队 QQ 群)。
在有很多人与你联系时如何才能从中选择出最合适的项目承接者呢?最好的方法就是把你的需求交给他来分析,看他能否 全面地理解你的各项要求 , 并用程序设计的技术语言准确地表达出来。如果做到这一点了,才可以继续谈下去,否则另找他人吧。我外包成功的几个项目都无一例外是由对方的项目负责人直接与我沟通,并详细写需求,我们之间反复磋商直到我完全满意之后才交付给他们开发的。
第三,要经常地监督项目的进展。是不是把软件交给一个软件开发团队后,就万事大吉了呢?如果你这样认为,那就大错特错了。在交付任务后,你还要每隔一段时间就去检查一下软件的开发进度,看看项目的完成情况,否则到时候你可能连软件的影子也看不到。我以前就有过这种教训,有一次把项目交给了外地的一家软件公司,由于距离太远无法亲自检查项目的进展情况,只能通过电话联系。而每次打电话去问时,他们总是说完成得很好,后来甚至说软件已经在测试了。结果到合同规定交付软件的那一天,他们才承认由于项目太多没有时间完成我的软件,要求延期。最后规定一个月完成的项目三个月还没有做好,一气之下我干脆不要定金了,另外找了一家软件公司来开发项目。从这个教训中可以得出这样一个结论,就是选择项目承接方时,最好要求对方是与你在同一个城市,这样才有利于你经常监督项目的进展情况,出现了问题也好及时商量解决,在完成项目后可以要对方把软件安装调试合格后再一手交钱一手交货。还有,在双方签订合同时,就要明确写清楚项目的进度,比如七天交 DEMO ,十五天要完成到项目一半,三十天完成项目,第三十五天完成软件全面测试等等。总之,在项目进行的期间你要经常进行检查,监督软件的完成情况,如果发现没有达到合同订好的进度时,就要对软件开发者进行督促警告。