关于软件开发的一些坑
今天听到朋友因为项目被坑的事情,其实不仅是个人,公司外包项目也经常有被坑的时候,我就遇到过,作为一个偶尔也接接外单的人
今天就给给大家普及一下常见的软件开发的一些坑
做软件这么多年来,发现80%的客户都容易犯一些致命的错误。
以为做个软件很简单,所以描述需求的时候及其模糊。
急着想要报价,在自己对需求不确定的时候就要报价。然后就按这个报价开始做。
不知道自己要什么,想做个商城说要做的是淘宝,网站和手机App区别搞不清楚。要做手机App却说自己要做网站。
以为所有软件都有模板,而且模板都很便宜。
缺乏耐心,不明白也从未想过自己要做的东西有多复杂。
自己不知道要做的东西的具体功能,要靠开发商来猜。而且还这时候就要报价。
事实告诉我们,这些问题一定会导致以下结果。
◆ 项目做出来跟自己想的完全不一样。
◆根据一项国外的专业数据统计机构调查,在外包项目中,有52%的项目经理因为项目失控/失败而被迫离职/降职/开除。
◆ 项目上线的时候漏洞百出,反复修修补补解决不了问题。后面必须重做。(滴滴打车当年的外包就遇到了这种情况,找外包做的一塌糊涂。做出来没用过一次就直接报废重做)
◆误把自己都不确定需求时得到的不靠谱报价当做真实报价去开始做预算,导致后期资金预算跟不上继而导致项目失控/破产。
我们经常遇到客户第一次跟我们咨询的时候说,以前找的某某软件公司太坑爹。做的东西象一坨屎,仔细一问就发现。原来他自己在项目开工之前自己对自己的需求是完全不清楚和不确定的。就这样稀里糊涂就开工了,以为开发商会帮他完善剩余东西。实际这些客户告诉我遇到过的开发商没有一家会去帮他们中途完善。
原因很简单,需求想的越仔细开发成本越高。一般根据需求的细化程度,成本差出来几倍到几十倍都很正常。10万接的项目,真要扣细节100万的工资成本都不够。这也是一般客户们平时问报价的时候,不同的开发商报价会差出来这么多倍的原因。并不是仅仅是贵和便宜。根本原因是大家对需求的理解完全是不一样的。客户自己不清楚就没人会清楚了。
负责任的外包公司会仔细的问你需求细节,不负责任的外包公司上来就给你报价。
人总是有惰性的,一旦要想事情和要思考的时候都懒的思考。所以客户们一般反而会讨厌这种有耐心的会仔细问需求的开发商。反而喜欢这种什么都不问其实不知道你要做什么,但是先报个超低价吸引祝其入坑的开发商。最后带来的结果一般就是我们前面提到的那种情况,项目直接失败。或者中途被黑心开发商宰一把,中途狠狠加价(原来1万能做的功能中途要5万)。因为你已经选了他了,要么做到一半放弃,要么按他的继续加钱。大部分人都不想前面投入一半的预付款打水漂,而又不知道加这么一个功能到底会加多少钱。这时候已经没法再去选其他的开发商试了。所以会选择做下去。。。
我见过的最常见的例子,就是很多人上来就问做一个APP多少钱?或者问做一个简单的APP多少钱?或者说我要做个类似美团/淘宝/京东/滴滴打车。。。一样的APP多少钱?
第一种:问做一个APP多少钱?
其实你问这个问题就好像你到4S店问,一辆车要多少钱?车有10万的家用轿车也有1000万的超跑。车根据用途(轿车,越野,跑车,赛车,公交也是车),配置,引擎,装置不一样,价格和成本是天差地别。同理,你来问APP也是一样的。必须表达清楚自己要的是什么样的APP,用于什么场景,APP解决什么问题,怎么解决(具体需要哪些功能)。就来问价格,不亚于你去问汽车4S店,我就是要一辆车,你告诉我价格就行了。别人肯定会拿你当傻子。因为你踏马没告诉人家你到底要什么车啊魂淡!!!
如果你只问我做一个APP多少钱? 我只能告诉你,几百块到几个亿,都有可能。
第二种:我要做一个简单的APP,多少钱?
每个人对简单的定义是不一样的。你说的简单具体是简单到什么程度,你又具体是要做什么东西的,很多人觉得微信也挺简单的。。。建议你每次问的时候都说清楚具体功能。
第三种:我要做个类似美团/淘宝/京东/滴滴打车。。。一样的APP多少钱?
一般这么问的创业者有个特点,很多说不清楚自己要的是什么。可能只是看中了比如滴滴打车的地图功能,但是描述的时候说的是跟滴滴打车类似。而滴滴打车的地图功能本身实际只占了滴滴整个软件系统功能的百分之一都不到。同理,有的是看中了美团的团购部分,说自己要做的是美团。有的看到京东有在线支付,就说自己要的是京东。如果你直接这么问,我其实完全不明白你想要的是你举得例子里面的具体什么功能。因为不可能完全仿一个美团/淘宝/京东/滴滴打车。。。
为什么不能是完全仿做?你看到的貌似简单的美团/淘宝/京东/滴滴打车/微信......这样的APP,每个的软件研发成本都是过千万,乃至几亿的(特别是复杂的后台)。因为这些大公司APP的细节的复杂程度和后台的复杂程度超乎你的想象。现在所谓的很多软件仿京东,微信之类的,网上说能给你开发微信京东之类的公司,可以说真正能做的功能不到微信京东的百分之一。举几个具体的例子。比如就说最基本的注册登录,可能就分为邮箱注册登录,微信授权登录,QQ授权登录,微博授权登录,短信验证码注册登录,密码找回又分为邮箱找回和短信找回。这里就罗列了7种情况,你做一种还是做7种开发成本可能就差了7倍或者更高。
又比如搜索功能,最简单的搜索功能可能开发一下就是几个小时的事情,但是这种搜索可能在几千个,几万个商品数据的时候还能正常运行。但是如果商品数据有几百万条,这时候肯定会崩溃。而不仅仅是商品数据会起到影响,比如你搜索功能是支持模糊搜索(即输入的关键词可以有偏差)还是精准搜索。模糊搜索能模糊到什么程度,讲究都是很大的。淘宝京东这样大平台的搜索功能,很多大公司光一个搜索功能就是需要十几个人的开发小组常年去进行开发和优化,养这些人的成本一年就是几百万上千万。你现在就可以打开淘宝的搜索功能仔细看看它有多少细节(高级搜索,地域,价位筛选,搜索结果排序等等等等)。感兴趣的可以自己去查查这些上市公司的财报。每个季度在软件开发上的成本都是几千万到几个亿不等。大公司一定是招自己有需要的人,如果不需要肯定不会招这么多人。由于篇幅有限,更详细的原因和要注意的地方不做详述。
这里贴上滴滴打车的招聘广告,感兴趣的可以看看滴滴打车背后的技术团队有多少人。
仅3月份在招的技术职位就多大上百个。平均年薪都在20到40万之间。
https://www.lagou.com/gongsi/j2474.html
现在诸位能理解为什么很怕这些问题了吗? 因为创业者的确是明明确确的告诉我,要做一个淘宝/京东/滴滴打车类似的APP,但是这种APP的成本是天文数字。你可能要的只是其中一部分功能,或者只是想模仿他的运营模式。
有些人可能会觉得,这是大公司所以才需要。我创业初期需要考虑的这么细吗?很明确的告诉你,非常需要。
等到错误发生了你再去解决,所要付出的成本是非常巨大或者会直接导致失败。
大公司不仅仅是因为他是大公司才做得细,是因为他做得细才能成为大公司。
而且你不考虑没人会替你考虑。不要寄希望于你在网上找的这些软件公司,他们只会告诉你这件事很简单,你快来吧,来了就能发大财,互联网人傻钱多。你不说清楚自己的APP具体需要的是哪些功能,最后吃亏的一定是你自己。因为你在不清楚自己要做的东西具体是什么样子的时候,你找的软件公司就更加不知道。
你寄希望于他们给你去思考细节,他们只会给你偷换概念,偷工减料。因为这样做就可以给你的报价更低增加你选他的概率。
之前有个真实的例子,一个客户跟个不负责任的开发商只说了有注册登录,而没和他说过要做找回密码,开发商也没有提醒他。而最后软件就是没有找回密码的。如果各位看官不想自己也遇到这样的情况而被坑,就请想清楚自己App尽量多的细节。
比如一个购物车功能包括,加入购物车,从购物车移除,添加/减少购物车内某个商品的数量,直接输入数字修改商品的数量,批量付款。这些功能里面你说了一个很多开发商就只会做一个,大部分开发商不会考虑其他的。而一般创业者会觉得,淘宝有啊,一般都有啊你为什么没做?(创业者看到的一般都是那种大公司很成熟的产品),你要知道,淘宝的开发成本是亿级别的。而且经过了很多年的迭代和更新。
阿里巴巴集团2015年Q3季度财报显示,2015年第三季度产品开发开支为人民币32.25亿元(约合5.07亿美元),占营收的15%。你没看错,一个季度32亿的开发成本。一年就是一百多亿。
大部分情况下细节方面你不和开发商提,一般就没有。如果别人会替你考虑的越全面,那么开发成本一定会很高。
这里我列举三大块最影响APP软件质量和成本的东西。希望大家一定要记在心里!!!方便找合适的开发商和掌控项目质量。
1.功能的开发方式
现在市场上存在的几种开发方式如下:
a.web网页加壳生成APP
web网页加壳生成APP的开发方式,先花几百块钱买个现成的手机网站模板,在加壳打包一个APP只需要5分钟,但是做出来的效果很差,耗流量,浏览体验极差,访问速度慢等等。部分开发商利用客户不懂,把这种5分钟速成的东西,当成原生态开发的APP去欺骗创业者。卖几千到几万的价格。而创业者很多时候还自以为捡了便宜(问了十几家这家最便宜)。
b.Web网页+原生态混编(网页部分占80%以上)
混编方式的APP效果比第一种稍好。但是如果要做出接近原生态的效果,需要不断的优化和改版,花的钱不比原生态少。而如果不对网页和系统优化,只是简单的拼凑。那么做出来的效果和web加壳的差不多.
c.HTML5开发
成本大概是原生态APP的50%到30%,也是比较接近原生开发能达到效果的一种方式。但受到很多限制。各大平台兼容性还不足,相对来说还处于过渡期,同时比较耗系统资源。在低配的手机上更卡。手机淘宝的APP目前就是HTML5+原生态混编的,相对来说在很多低配的手机上还是比较卡的。最近优化了很多,但是早期的表现很不尽人意。Facebook和京东都尝试过HTML5,同时也吃了不成熟的亏。HTML5的未来或许是美好的,但是这期间的试错成本小公司不一定承受得起。
d.原生态开发
是目前最常用和最成熟的方式。越重视细节成本越高。一般根据具体功能要求一个APP的开发成本从几千块到几千万不等。
2.功能的实现方式(功能的复杂程度和用户量)
比如上面说到的搜索功能,具体对搜索功能的要求成本会让成本差出来几万倍。不仅仅是搜索,再举几个例子。比如微信里面的聊天,分为文字,图片聊天,录音的语言聊天,语音及时对讲,视频聊天。
语音及时对讲和视频聊天只简单提一提。这些都是开发成本要用百万级和千万级来计算的东西。微信和QQ乃至现在自己的语言对讲和视频聊天都是有很多问题的,比如同时多人聊天会有很大的回声,电流,杂音。不是腾讯不知道,是知道了但是很难解决。
这里具体讲比如录音发送,一般来说我们听一段60秒的音乐是1M左右。而微信的一段60秒的语音压缩到了几十K,来保证发送和接收时的速度。同时还做了语音降噪(减少周围的噪音)等等。而如果这些不去考虑,只是简单的发送一段语音。两者之间的开发成本相差几倍到几百倍很正常。同样的,你的APP做出来你会发现,消息发送很慢,很耗流量等等。
3.APP在手机上的兼容性
相信各位在用手机APP的时候,特别是安卓手机。肯定发现有些APP会闪退,卡死之类的情况。这个就是因为APP的一部分功能在这台手机上不兼容或有bug。这些问题非常多而且很难解决。你只是一个用户的时候感觉不会那么强烈,因为你用的大部分都是大公司开发的很成熟的产品。但是你自己作为创业者的时候就必须要考虑了。因为没有人想自己的APP开发出来,10个手机上8个闪退。但是事实又的确如此。很多几十万成本开发出来的APP到处都是闪退。
兼容性是非常影响成本的(会对成本造成上下几倍到几百倍不等的成本)。仅安卓而言。安卓手机全世界有一万多种机型,各种不同的手机品牌,分辨率,操作系统版本号,都对程序的兼容性有影响。很多时候做兼容性调试的成本还要大于软件的开发成本,真要做到主流手机兼容,光买测试的手机就要花几十万去买。一个APP如果开发出来,不做兼容性调试开发。和做兼容性调试开发,成本也是会差出来N倍的。
另外在说说模板,很多时候一些项目如果有成熟的模板解决方案能节省很大的成本。
但是模板也一样价格存在巨大的差异。同样的一个商城模板可能价格也上下差出来几十倍,原因也是因为细节功能完全不一样,可能功能差了十几倍。如果你在买之前不仔细观察细节功能,那么一定会出现买了后大呼坑爹的情况。这个系统可能整个流程都是残缺的,更不要提你拿这个残缺的系统去运营了。
另外不是所有APP都有模板,一般来说只有商城相关的APP的模板比较多。而且模板有成熟不成熟的区别,真正成熟的模板开发成本和时间是巨大的,一个公司不可能同时有很多好的模板。因为数量多,必定不精。开发一个好的模板的成本已经巨大了,同时还搞多个,则说明每个模板上投入的成本和精力不会太多。
再说几个app外包开发常见的几个坑。
常见坑一:
客户问外包公司你们有什么知名案例吗? 外包公司说有啊,美团,大众点评,携程,一号店(说出一个一二线,或者是三线有一定知名度app的例子)是我们做的/是我们的案例。
这种情况下90%是偷换概念或者纯骗。不管你找的这家公司是真有几百个人的大公司还是只有几个人的小公司。
客户喜欢听大案例,这样放心。但是在互联网技术领域,大公司的互联网产品是不可能外包给别人做的。
实际情况是,任何你但凡听说过小有名气的App,基本都是互联网公司自己招人做的不太可能是找外包。你可以在百度搜索任何一家你听说过的app名字或者互联网公司名字+招聘2个字,都能看到他们长期在招聘大量的程序员工程师,同时公司长期备有几十到几百,甚至上千人的技术团队。
即使真的找外包,可能是最早创业初期的第一期找的外包,但是他们后来出名的那个系统跟最初找外包做的,已经完全不是一回事了不是一个东西了,业务代码已经完全不一样 。
外包做的东西就是前期低成本试错的一个东西,很可能一次都没用过就直接报废。滴滴打车之前最早就是找的外包开发的,但是基本没正式用过就直接报废了自己招人重新做。但是这家外包公司可能在N年后滴滴打车牛逼了后会跳出来跟客户说:滴滴打车是我客户案例,滴滴打车是我做的。利用的就是偷换概念和客户不懂不会较真。
滴滴打车当前找他们做并不是因为他们牛逼,而是滴滴打车可能也被他们坑了。还有的是,有些外包公司在这个很出名的App公司团队初创的时候,跟这个团队的创始人吹过牛逼,也只是吹过一点牛逼而已,可能并没有实际合作项目。然后这个外包公司N年后发现当年一起吹过牛逼的那小伙做成功了,这时候他跳出来说 XX是我客户,XXApp是我们客户案例。。
还有一种情况就是, 比如很大的互联网公司,比如携程或者大众点评或者一号店,他们平时开发的时候也会有忙不过来的时候 ,偶尔会找些外包公司进行一部分的人员外包,要几个技术员过来帮忙干几个月临时的杂活。一般都是打杂接触点边缘化的没有技术含量的东西,根本接触不到核心部分业务代码。 但是这时候外包公司又会说,大众点评是我们做的。都是偷换概念,显得自己牛逼。
还有的就是一点关系也扯不上, 强行欺骗来增强客户信任。揭穿了就算了。
其实你可以做个简单的实验,你在百度或者其他任何平台公司找app外包开发公司的时候,会遇到N家官网上有大众点评,或者在家点点,携程,美团之类的app是他的客户案例的,或者是他们的业务人员亲口跟你吹这样的牛逼。
其实这些被合作的互联网公司并不知道自己被合作了,以前有个梗是说吃了一次肯德基就是肯德基的战略合作伙伴了,加了一次油就是中石化的战略合作伙伴了。 而在app外包领域里真的这么干的公司非常多,不说小的,甚至大量已经上市的外包公司也吹这样的牛逼。偷换概念乐此不疲。
常见坑二:
外包公司给你的合同一定要仔细看,很多时候被骗的客户自己公司是有法务的但是也一样被骗。因为你的法务和律师根本看不懂那些看似专业的技术词语。所以并不知道他是在扯淡还是合理的。由其是在验收标准和开发要求的这几大块上。基本如果甲方公司没有懂技术的,哪怕有专业的法务也太容易被骗。
一般体现在合同里对需求描述的不详细或者压根合同里就没有提到需求,只说要做个某某app,多少钱什么时候交付。 这样的合同其实压根没有一点卵用,你们之间商量的做个某某app只有你们自己口头讨论了需求,但是如果没非常详细的落实在合同里,最后外包公司随便给你个东西也能交付。甚至压根就不是最早你们商量的,因为合同里并没有证据能证明你们要做的到底是什么。
同样的还有开发方式(原生还是混编,H5还是加壳),验收的标准是什么这些如果不提,每一次都是提前被埋下的炸弹,遇到骗子你去法院都白瞎。根本就告不倒人家,就是合法的骗。
一般负责任的公司在合同里都会非常详细的给到一个很长的需求文档,根据项目的大小起码有几十页,里面有各自原型图和需求说明。用到的技术,项目架构,开发方式等等都讲的非常清楚。
这个文档是合同非常重要的附件,里面详细的描述了你们这次项目具体是要做成什么样子。如果没有这个,双方签完合同的时候其实都是蒙逼的。要做什么根本没个界定,到时候胡乱拿个东西交差也是不违反合同的。
这个看似常识的东西其实大部分外行都不知道,甲方如果不重视这个,哪怕被人骗了告到哪去都没用。 因为别人没违反合同。你们的合同压根就是一张废纸。
(说到最后,我自己也忍不住吐槽一句,其实我老板也经常叫我开发比如qq即时通讯啊在线直播啊p2p传输等等这些玩意,对了我还是一个人。。。。。。/微笑)
暂时就说这么多,app外包坑非常非常深。最好的方式就是甲方自己公司有个懂技术的能参与进来选择开发商和逐步交接。以后有时间在慢慢更新,希望能帮到真正想创业的人。最近很多朋友问我是否做开发,如果项目开发需求的可以直接微信我或者加我qq。QQ:120018425