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