剖析软件外包项目
最近看了一本书,叫做《程序员接单宝典》,虽然只有短短的70多页,但是写得的确不错,里面的很多经验都值得我们学习和探讨,于是我借鉴这位大神的经验,来浅要的谈谈接外包项目的事情。同时也有很多精彩的摘要。我在这里就将这本书浓缩为我这篇博文了。
一、接项目前的准备工作
书中讲到了需要创建一个团队,当然对于很多学生或者初级开发者来说,似乎很难创建一个好的team来工作,或许我的想法是可以把自己之前做的一个项目或者demo,同时整理几个框架出来,便于之后更为敏捷的开发。同时作者也建议我们不要杂七杂八去接项目,当然都是要做自己熟悉的,”专业品质“。使用应用框架有五大优点:模块化,可重用性,可扩展性,简单性,可维护性。
二、该上哪儿去找项目
1、朋友介绍
程序员也要学会多交朋友,不要沉迷在一行行代码里面。技术固然重要,但友情也不能忽视。写得一手好的代码,固然值得称赞,但结交一些值得信任的朋友,在你困难的时候能给你伸出援助之手,才是更为重要的事情。
第二是把客户转化为朋友,“我们在合作时就要注意,尽量减少客户不必要的开支,不要一心只想着多赚钱而使客户对你产生反感。再就是多做些业务之外的事情,就是客户有什么事情时你可以主动帮忙,比如他们需要某些资料又得不到时,我们就会帮他搞到。甚至,他们生活中碰到的一些困难,只要我们知道又能做到时,就一定会帮助他们,这样,我们与客户就不再是合作的关系了,更多的就是朋友了。这样,一旦有什么大的项目时,他们一定会先想到我们。”
2、通过外包网站接单
书中介绍了四个国内的外包网站,拥有十年以上的外包网站,有的需要付费,但是我还是赞同的。“绝大多数的程序员,即使愿意去外包网站接项目,但是一听说是这个网站是要收费的,立马就拍拍屁股走人了。他们总想着免费接项目的好事情,其实,天下永远没有免费的午餐,凡是给你提供有价值的东西的,总是要收取一些相应的费用。就比如阁下您吧,你愿意免费替别人开发项目吗?恐怕不肯吧,如果有愿意免费开发的,请立即联系我,有多少这样的人我收多少,我还正愁找不到人来做项目呢。”
当然,这些网站我都已经收藏好了,第一个,软件商务网( http://www.bizsofts.com )、第二个,软件项目交易网( http://www.sxsoft.com )、第三个,CSTO外包网站( http://www.csto.com )、第四个,智城外包网 ( http://www.taskcity.com )。当然,还有其他的国外的网站,但是我相信可以逛得起这些英文网站的,英语水平那是肯定牛逼啊,那肯定不需要我介绍啦!
3、通过其他方式接单
拿书中的原话举个例子,“如果你们团队是做网站的,就可以上网找那种一两年不更新的企业网站,诚恳的告诉他们网站有很久没更新了,且布局凌乱、色调混乱,与自身的企业形象不相符,然后你告诉对方一些成功的案例,最好是对方的同行,因为做了好的网站而使得营销大增,让对方有了紧迫感。而且建议你避开大城市,去一些中小城市接单,据我所知,一些中小型城市的民众的电脑水平很低,也很少有人和你竞争,你可以尽情地忽悠得了。
不过呢,你得要有很好的表达能力,另外你得做好被别人推出门外的准备。你见过经常在小区转悠的推销人员吗?就是像这种人一样地去拜访陌生客户。但是鉴于一般的程序员都是脸皮薄的宅男,还是专门请一个业务做为团队的营销人员的为好,否则几次被人家拒之门外后,一般的程序员
是再没有勇气出去揽客的。”
我觉得吧,其他方式应该还可以通过搜索引擎,论坛、淘宝等,不过都有优点和缺点。
三、如何才能争到项目
这里首先要牢记的一个字是快:就是比别人抢先一步先联系客户。客户都有一种先入为主的思想,总是对于第一个联系他的人印象比较深刻,如果价格方面又满意的话,你就几乎是成功了一半。与客户联系上后的第一步,不是去谈什么需求,而是先要展示你们团队的实力。
“另外,你在向对方介绍你们团队实力的同时,也要通过积极的沟通,了解对方的底细。为什么要这样做呢?因为在现实的外包实践中,虽然大部分的发包方都是抱着真实的外包意愿来与你谈判的,但也不排除有少部分的发包方其实只是为了骗取解决方案、骗取报价、骗取案例、骗取源代码,甚至是借外包之名骗取网站点击率的。如果对方要求提供完整的解决方案,这应该只是想套取设计方案而已,发几张你们团队的推介广告和报价单给他即可。
还有的客户张口就要源码要设计文档设计方案的,这种人目的性太强了,如果你真给了他就再也不理你啦。还有的外包方死活不肯介绍自己,不肯告诉自己是谁、怎么称呼、怎么联系、是什么公司、做什么业务的,与这种连最基本的诚信都没有的客户就根本没有必要谈下去。还有的发包者说是要找人设计一个网站,但全部的需求就是要仿制某某网站,没有其他的要求,这可能是想借外包推广自己网站的,就是骗大家都去点击这个网址。如果你经常外包的话,相信你不久就会有一定的判断能力的。”
你在与客户谈需求的同时,要对客户做一个大致的了解,比如他是真心外包项目还是只是想打听一下价格;他是发的原始包还是转包,他的经济状况如何——是有经济实力的公司还是个只是人或者学生;他是外包的新手还是已经外包多次的老手甚至就是外包界的同行。
销售过程主要分了六步:第一步:探寻客户基本需求;第二步:通过纵深提问挖掘需求背后的原因;第三步:激发客户需求;第四步:引导客户解决问题;第五步:抛出解决方案并顺便达成交易;第六步:成交之后与客户建立长期的关系。
软件外包也有一个统一的计价标准,具体来说,外包费用=每位程序员每天的人工成本×项目所需要的工期(天数)×人数。
实际上首次交流一般是不能报价的,因为需求并没有完全明确,你还不能确定工作量到底有多少,所以这时你只能告诉客户你的报价原则,比如做一天需要多少钱,为什么需要这么多钱。你的后期服务能达到什么程度。
首先通过交流粗略估算出客户所处的社会层次及从事的工作,以及客户的背景是属于政府部门,还是大集团,还是小企业,或只是个人,甚至只是个没有什么支付能力的学生。通过报一个相对较高的价格来测试客户的反应,看看他对这个价格是怎么看的,你就大概知道他属于什么类型的客户了。当然,报价不要高的离谱,否则他就可能掉头就走,再不理你了。逐步地降低价格,慢慢接近他的价格底线。只要试探出了他的大概的心理价位,你就成功了大半。剩下的就是通过你的分析需求来说服他接受你的价格了。
项目开发合同主要包括:项目内容、开发费用、开发周期、验收标准、付款方式、保密协议,软件所有权、知识产权归属等等以及其他甲乙双方权利和义务还有违约责任。除了这份正式的合作,一般还应该有一份软件开发方案书,作为附件,对软件开发的需求分析、软件设计、程序编码、功能测试和后期维护五个过程如何去实现的一个总体设计思路和方案。
四、如何才能完成项目
1、团队成员紧密沟通:
无论是书中所说的team协作还是leader管理,这些都是非常有必要的,而且是很重要的方面。
2、团队与客户间沟通
一般来说,我建议使用瀑布式的开发模式,就是每完成一个阶段,就和用户及时的沟通,看看这个阶段的东西是不是用户想要的,如果是,那就开始下个阶段的开发,不是,那就进行修改。
3、需求更改的问题
既然用户需求不断变化是一种客观规律,那么程序员在心态上就要进行调整,将用户需求不能变化调整为用户需求一定会变化,树立起“变正常,不变不正常”的观点。做国内的外包要保持一个好的心态,遇到改要坚强,改十遍八遍我觉得很正常,接受不了的接单时就慎重。有了这样的心态,我们就不会去抱怨用户需求了,就会对用户需求的变更有更多的理解。
五、如何收项目的尾款
1、不作超出实力的承诺
切记:在接下项目之前要先考虑一下,自己有没有这个实力做,要很客观地对自己团队的实力做一个评价.
2、把开发细节列入合同
细节那也是相当重要的,同时书中作者也说了,细节决定整个项目的运行情况,所以我们还是要非常非常关注细节。
3、多与对方沟通互动
沟通技巧:热情、关注、喜欢、宽容、尊重
4、不见兔子不撒鹰
最后一招也是最有效的解决办法:不见尾款不交源
代码。
六、项目的实施和维护
软件项目后期维护的费用问题,定制软件不论收费多少,一般是要有一年或至少半年的维护期的,在这段时间内,软件自身的 BUG要免费的,无条件的修改。客户提出新要求,新功能,则另外收费。总之售后分为两部分:一是软件作者自身的问题,这个是无条件,免费的修正。二是客户新的要求,新的功能,这个是客户的原因,肯定要收费。在软件维护期满以后,如果客户还需要你继续维护的话,就需要收取一定的费用了。
写在最后
就我个人认为,外包对于程序员来说,是一个必须要经过的阶段。,通过这个阶段,首先可以打造一支自己的团队。要知道,真正成功的软件公司的核心骨干,并不是靠成立公司后招聘来的,而是人家作为团队时就在一起打拼出来的,也只有这样的团队才能为公司的发展提供良好的人和基础。比如马云的阿 里巴巴团队。
其次,通过外包可以为以后公司的成立积累资金。大家都知道,作为一家正规的公司,各方面的开销是很巨大的,人员工资,办公场所,各种税费,水费电费等等,没有一定的资金储备是不行的。而通过外包就可以积累起这些资金。再次,通过外包,可以积累团队的技术实力,提高团队的技术水平,为以后成立公司打造核心产品提供必要的技术积累。
最后书中给出的是作者的一些案例,让我很是受教,平时休息无事的时候多看一些书是非常好的事情,也可以让我不会那么颓废,可以让我整个人更加精神倍发,好了,就写到这里吧!本人编辑能力有限,还望见谅,不喜勿喷