大刘信息

软件外包不得不踩的10个巨坑!

作者:超级管理员 日期:2023-02-23 17:14:49

很多中小企业及个人创业者,在有软件开发需求的时候,绝大部分情况会选择软件外包。而在选择软件外包公司开发自己的软件项目时,绝大部分情况都会碰到各种不靠谱的问题,项目延期、费用增加、软件功能、售后维护等各种问题,这对于一个初期创业者或者中小企业来说,无疑都是致命的打击,轻者造成时间、金钱上的损失,重者直接导致项目流产失败。

博主作为一个从事10年软件开发的业内人士,从行业现状分析出发,针对软件开发过程中比较常见的的10个问题进行分析,并在结尾给出关于软件开发的几点建议。

软件外包行业现状

为了能够更加清晰地了解软件外包行业中客户需求方与服务提供方之间的关系,我们先简单了解一下各自的情况,这样才能够针对我们自己的体量与需求对号入座。

关于软件外包的客户需求方,按照公司体量及项目体量,基本上可以分为以下几个层次:

软件外包客户层次分析.jpg

软件外包客户层次分析

对于目前存在问题比较多的基本上是小微个人及创业企业,这也是该文章重点的目标人群。

而目前市面上提供软件外包服务的企业及个人,大概有以下几种类型:

软件外包层次分析2.jpg

软件外包企业层次分析

目前软件外包问题泛滥成灾的区域,基本上均是需求客户方、软件服务提供方的底部,因为软件开发,从本质上来说是一个对人才密度要求极高的非标准业务,想要能够保证软件开发项目的成功,从人才投入、资金投入、时间投入上都要求比较高,而这些恰恰是底部需求客户方和底部服务提供方所最为欠缺的。

软件外包10个巨坑

巨坑1:什么都能做:技术不是问题

绝大部分软件公司,在前期售前阶段,在与软件公司商务人员对接时,如果他一味地不加思索的承诺,不管提什么需求都是拍着胸膛打包票,那么这样的软件公司一定要远离。

原因很简单,在当今各行各业分工越来越细的当今社会,如果一个公司对外宣称自己各方面都很厉害,那么一定是在吹牛逼。

所以,在跟软件公司前期沟通的时候,不要只看对方介绍的PPT以及搭建的DEMO演示系统,因为这些东西只要你感说,美工设计分分钟都可以给您做出来。相反,我们更应该关注软件公司是否在你所需要开发的软件方面有多少沉淀、多少真实客户案例。:

巨坑2:不谈明确需求,直接谈价格

很多软件公司,前期为了能够快速成交,很多都不去细挖客户需求,而是直接给出了准确的价格。碰到这种软件公司,我们也需要多考虑考虑:因为在没有详细了解客户需求的情况下,给出来的价格会有很大的风险。风险之一就是在于后期如果实际开发需求远大于当前价格所需要的成本,那么开发公司通常会选择各种理由来对付你看到某些需求,因为这些需求如果真实要落地开发,开发公司肯定就会亏本,任何公司不可能既做了事情又亏钱。

巨坑3:交付时间与质量,是个无底的天坑

很多人觉得我在软件开发合同上约定好项目交付时间,不就可以完美避开这个问题了?

还是想得太简单了:通常软件开发公司在签订开发合同时,通常会与客户约定初版的交付时间,而这个初版交付时间也就成了最大的坑。

因为通常初版交付的版本,只是整个项目的整体框架和雏形,外表看起来似乎每个功能都有,但实际上还有很多都是处于静态的,离真正可以动态使用又有很大的一段距离。而且,即便是交付了动态功能,实际还是会存在非常多的bug,而这些bug有些会比较明显,你可以非常明显地发现,但是绝大部分bug都是隐藏在你发现不了的地方。正所谓冰山一角,你以为只有一个露出水面的角,实际上水面下面全部都是。

出现这种情况的绝大部分原因在于项目时间比较紧,而开发公司的人手有限,而很多客户又是完全不懂软件工程,一味地压缩项目时间与资金,这必然会造成项目的交付时间与质量无法保障。

所以,作为客户方,其实我们要避免这种情况,除了找到合适的开发队伍,还得在开发时间和成本上尊重客观规律,否则一定不会有好的项目结果。

巨坑4:知识产权属于谁?

对于知识产权这个问题,很多软件开发客户一开始都不关注,因为他们只关注要的功能能不能正常使用。

但一旦项目后续有了进一步发展,你就会发现开发费用的钱花了,但是自己却没有知识产权。

这里所谓的知识产权,在软件行业主要有以下几种对于你来说比较重要:

(1)软件著作权

软件著作权是指自然人、法人或者其他组织对计算机软件作品享有的财产权利和精神权利的总称。通常语境下,计算机软件著作权又被简称为软件著作权、计算机软著或者软著。

没有软件著作权,即便你有软件代码,也不代表你对这个软件拥有所有权,甚至严重的你还有可能造成侵权。一个比较明显的例子,如果你开发的APP需要在应用时长上架供用户下载,那么你必须要提供的一项资料就是软件著作权证书,否则无法上架。

(2)软件源代码

很多不懂软件的客户,以为自己有软件的安装包,或者有网站及Web系统的地址和账号密码,自己就拥有了这个软件。但实际上你只有拥有了软件的源代码,你才能够在后期任何需要对软件进行改动或者升级的时候,可以通过修改源代码来实现。否则,你只拥有的软件的使用权,而无法对其进行二次开发。

(3)关键业务实现流程与算法

这一部分通常以专利的形式存在。对于一些比较有自己特点或者重要的软件系统及业务实现方法,我们通常会申请专利,专利申请通过后将获得专利证书,如果后续有人使用专利相同的内容,就需要我们进行专利授权,并且缴纳一定的专利授权费用。想法,如果我们没有相应的专利证书,也有可能造成对别人已申请专利的侵权。

当然,知识产权方面除了上述几个内容,还包括项目相关的各类设计文档、使用文档等,有了这些内容,我们的项目才可以发展更加长远。

巨坑5:低价成交,中途加价

很多贪便宜的客户,会把软件开发费用作为一个决定哪个开发公司的决定性因素,那么这里就很有可能掉进一些开发公司设计好的坑中。

很多人觉得这个问题不存在,因为合同里面白纸黑字约定了需要做的功能模块和价格,不可能会中途加价。但是实际情况在于合同里面约定的功能,通常都是一个简单的功能清单,并没有详细到每个功能应该怎么实现。所以,项目做到最后,你会发现你需要的很多功能都是在这个功能清单之外,要么你自己把这些功能舍弃,最后做成一个缺胳膊少腿的软件;要么你把它们加上,然后心甘情愿接收开发公司的报价,而且没有议价空间。

所以我们不管是做软件还是做什么,其实都应该遵循一个基本的原则:就是一定要给别人适当的利润空间。否则,在商业社会中别人不可能无偿甚至亏本给你做事情,你以为捡到大便宜了,实际上最终羊毛还是出在羊身上。

巨坑6:软件费用远不止开发费用

很多人以为软件费用就只有开发费用,但实际情况远不止这么简单的开发费用。

举个简单的例子,假设你需要做一个APP,让你的用户能够下载和安装。你把你需要的功能跟软件公司说了一遍,软件公司给你报出的开发费用是8万元,你以为你花8万元就可以了吗?实际远远不止,除了软件开发的8万元,你可能还需要花费以下这些费用:

(1)需要注册一个域名(比如说abc.com);

(2)需要购买一个云服务器或者自己购买一个硬件服务器,然后托管到机房;显然自己购买硬件服务器然后托管不是一个理想的选择,因为光这一项可能就得花好几万块钱。而我们购买一台云服务器,配置稍微好一点的也需要1万元/年;

(3)域名要正常使用,你需要进行网站备案,这一块需要花费时间和金钱;

(4)如果你的APP需要用户手机注册,或者需要通过手机短信发送通知,那么你需要购买短信服务;

(5)如果你的APP需要进行支付付款,那么你需要注册支付宝、微信商户账户,通过一系列认证,然后才能够开通相关支付接口,这些都需要技术人员花费时间和金钱;

(6)如果你的APP需要在iPhone上下载使用,那么你需要注册一个iOS开发者账号,然后每年给苹果开发者平台缴费,这样你才能够正常上架APP;

(7)如果你需要申请软件著作权,那么你需要想国家知识产权局提交软件的相关文档及代码,这需要人力与费用;

(8)如果你的APP访问人数越来越多,那么一台服务器可能无法满足你的要求,你可能需要再购买数据库服务器,同时添加应用服务器,购买负载均衡服务,这一算几万块钱每年又花出去了;

(9)如果你的APP发展很好,被别人盯上了,对你发起网络攻击,你又不得不花钱买网络安全服务,这一年又是一笔不小的开支。

(10)如果你的APP开发完后,没有专人维护,时不时会出现点什么问题,那么你有需要请技术维护人员进行日常维护,这又将是一笔不小的开支。

所以,我们看到的软件开发费用其实只是其中的一部分费用,而与之相关的费用很有可能会远高于开发费用。

巨坑7:我的需求很简单:做个跟微信一样的软件

有很多做软件的客户,跟开发公司沟通需求的时候,最常用的一句话就是我的需求很简单,就做一个跟微信一样的软件。通常这样子去理解和描述软件需求的项目,最终大概率是以失败收场,因为这说明客户没有真的理解微信是一个多么庞大且复杂的系统。

巨坑8:售后维护怎么办?

这个问题也是很多做软件开发的客户没有去考虑的问题,他们认为软件做好了就万事大吉了,就可以放心使用了。实际上,一个软件要能够稳定运行,软件代码质量是一个重要的因素,与此同等重要的是日常的售后维护。

巨坑9:定制开发的比成熟软件好

很多软件开发客户存着这样的一个错误的认知,特别是一些初创的创业型企业:定制开发的软件一定不成熟软件产品要好。因为他们觉得,毕竟定制的软件,从数据库设计到代码编写都是针对自己量身打造的,肯定在灵活性上、对业务的符合程度上要比标准的成熟软件产品要好。而他们不知道的是,软件产品的灵活性与稳定性,是一个高度依赖于开发设计人员的经验的东西,任何稳定成熟的产品,一定是经过很多轮不断打磨而获得的。外包开发的产品,特别是项目规模和价格都不大的项目,基本上谈不上设计,更不存在扩展性,基本上是属于一次性开发,不考虑后期扩展与维护。

所以,如果你有足够的时间和预算,请优秀的软件架构设计人员(包括产品经理、架构师等),再加上时间允许的情况下,反复测试、调整打磨,才有可能得到真正高质量的软件。而对于预算有限的情况下,我们更多的应该是控制自己个性化需求的欲望,使用成熟软件产品去验证自己的业务和市场,等时间和资金允许的情况下,再考虑大范围的软件定制甚至自建团队进行后续的开发。

巨坑10:要不就组建自己的开发团队吧!

有一些软件开发客户,觉得找开发公司开发的费用太高,准备建立自己的技术开发团队,对此我还是劝他们三思而后行。

自建开发团队的好处很多,我们显而易见:

(1)自有团队,项目内容、进度、质量可控;

(2)知识产权无纠纷,所有产物归自己所有;

(3)项目沟通协作无障碍,不存在与其他团队的纠纷。

(4)等等。。。

当然,这些显而易见的优点背后,其实暗藏着更大的危机:

(1)技术投入成本高

虽然自建技术团队可以省掉开发公司的那一部分利润,但自建技术团队也是一笔巨大的开支,以开发一个移动APP的软件为例,每年需要投入的人员成本如下:

技术总监:1个,5~10年工作经验,30万/年

产品经理:1个,2~3年工作经验,15万/年

移动端工程师:2个,2~3年工作经验,2 * 15万/年 = 30万/年

前端工程师:2个,2~3年工作经验,2 * 10 万/年 = 20 万/年

后端工程师:2个,2~3年工作经验,2 * 15万/年 = 30万/年

测试工程师:1个,2~3年工作经验,8万/年

这么粗略地估算了一下,自建一个技术开发团队,一年的工资支出就是134万元

自建技术团队,最理想的情况是招聘的技术团队都很给力,都能够按质按量地完成所有的开发任务;但实际的过程中,如果技术团队管理不当,很有可能开发出来的软件产品达不到预期。

(2)人员管理要求高

正如上面估算的自建技术团队工资支出,其实已经是一笔巨大的开支了,如果我们在人员管理方面管理不当,很有可能会达不到我们对于软件产品的预期,这也是一个非常大的风险。

所以,对于自建团队的软件开发客户,我建议我们自己充分评估对项目的研发预算,并且拥有持续投入研发费用的情况下,在项目达到一定的体量后,可以建立自己的技术研发团队,否则不要轻易尝试建立自有技术团队。因为每年这样一笔巨额的研发投入,中小型创业企业其实都是一个比较大的负担。




本文链接:https://www.whdlxx.cn/news/xingyedongtai/ruanjiankaifa/944.html,由武汉市大刘信息技术有限公司原创,转载请注明出处。
My title page contents