日志样式

为什么开发企业级系统软件这么贵?

为什么你家的系统上不好?

从事企业信息化管理多年,经常有人问我企业(组织)开发一个软件要多少钱?我都感觉很难回答,无论怎么回答,基本得到的反馈就是:“怎么要这么贵?”,今天我们就来说说这个“软件开发怎么那么贵?”问题。

首先,我们改革开放这么多年,企业太需要信息化管理。

然而,比这更重要的是:决策层、领导层要懂信息化。

如果不懂,是很难出成果的,还会浪费时间,打击企业信息化信心。因为不懂,所以他们面临的第一大障碍就是:软件开发太贵!(或上系统太贵)

有这种思想和理解,对信息化而言所带来的阻碍力量比你想象中要大。

之前我回答过一个问题:如何看待领导花十万上考勤系统的行为?

(题主言下之意就是领导很二,人家买个考勤机几百块搞定的问题,领导花了十万?当然还有可能认为领导吃了很多回扣,这种情况当然不排除,但不是我们今天的讨论范围)

所以就算有人认为很简单考勤系统,如果用户数1000,全国都有门店,要实现考勤漫游,如果还要支持手机端打考勤和请假,人员有定期排班和不定期排班,连上软硬件,还有需求调研、开发、培训、实施全员一起,全部上好(好吧,外加领导层全力支持!)。给你10万,如果要开发绝对亏的底裤不剩(除非你有现成软件)!如果对方领导还内部都没统一意见,给你五十、一百万都未必能成。

传统行业上信息化,企业老板(或决策者)非常关键:

1、老板(决策者)要懂信息化,只有自己懂了,才能评价贵不贵的问题,才能清晰信息化真正的价值,才能支持信息化正确走向。现在当老板真不容易,要会经营管理,能搞定客户和各种关系,还要能盈利,还要懂信息化。。。不懂怎么办?学呀!多参加IT论坛互联网会议都好,不乏有老板为了搞懂九零后思维,专门学习打王者荣耀、看玄幻网络小说;

2、其次,他要找一个懂信息化建设的人来全盘规划企业信息化(就是CIO),并全面信任他(当然,前提他要有这个能力)。对这个人的要求其实非常高:

1)他要有很全面的IT视野。他的视野,一定程度决定企业视野,甚至决定企业的发展空间,IT经历一定要丰富,IT技能要全面(要都干过),包含七个层面:基础架构、网络、服务器、运维、开发、数据库、实施测试,缺一不可。这七个层面全面了,他才可能将企业需求转化为可操作的信息系统(还不涉及到资金、时间成本、部门协作等问题)。

2)他要懂企业经营管理。企业上信息化,不仅仅是把软件开发出来,部署到服务器就算成,如果用不起来就是一堆废铜烂铁(还是很费电、不断增加成本的废铜烂铁)。所以他要清晰企业经营管理的方方面面,所有显规则和潜规则,要能辨别有些即使他们叫苦连天,实际并无多大用处的需求,他(cio)的判断力,就来源于他对企业经营管理的理解和经验,如果判断错误,后果可能很严重。所以,他不但是IT高手,还要是企业经营管理的能手,必须是老司机。

3)老板必须全面信任他。他提出很多东西,如果老板不完全信任,可能就支持不到位,系统本身很容易出BUG错误之类,如果不够信任,系统一出问题,老板心里发毛,很多事情不议或不决,项目很可能就黄了。

3、要对信息系统可控。这个也非常非常重要,但很多人没有意识到(或没感觉)。很多企业,选了大牌如SAP IBM 微软 Saleforce 用友、金蝶等全套方案,看上去很完美了。并不是说这些方案不好,但千万不要忽视两个重要问题:

企业需求会不断变化;

IT系统本身也需要持续改进。

如果系统上线,如果系统不可控会发生什么?即使系统正常上线(没什么问题),半年一年后一定有新需求,系统要调整或增加新功能,那怎么办呢?就找原厂。。。

这其中一定会发生的情节是:你认为这个功能很简单,但原厂认为已经超出原合同范围,不要问我怎么知道的。。。

你又要和原厂开始协(che)商(pi),协商新的功能价格,然后走商务流程(规则就是:越大的公司,内部流程越复杂,速度就越慢)。。。

擦,原项目经理已经离职了?派新项目经理过来?没办法还得配合他把原来的需求文档全啃一遍,耐心告诉他们我们的一些某名其妙的内部规则,再结合新需求,费心费神不说,因为时间紧,赶紧设计新开发方案,然后开发 测试 。。。就这样半年过去了,公司钱也花了,活动上的档期也不对,大家反馈这个新功能还并不好用,老是有很多问题。。。老板既蒙圈又生气,还是有气都没地发的那种,又开始新的协(chr)商(pi)...

关键这个过程你还没得选(就为这一个功能换系统代价太高,而且时间也不允许)。。。

这就是系统不可控的后果,所以企业上信息化,一定要考虑是否可控?如果要可控,那么无论是外包还是自建,都一定要培养自己的技术团队(能全面接管系统开发和运维),花钱养这个团队一定是值得的(前提是cio管理的好)。

那么,为什么开发软件会这么贵呢?

我们来看下,开发系统上线要经过什么的过程?

1、需求,需求是系统的基础。可以说开发一个系统,拿到真实的需求是最困难的,这点张小龙和乔布斯都深有感触,张小龙曾说过(大意如此):判断用户的真需求还是伪需求最困难。举个很简单的例子:没有汽车之前,福特去调研需求:您需要什么样的交通工具?用户:我需要一匹更快的马!如果按用户需求思维,福特真设计四条腿的机械马,我想就不会成就福特公司,也不会有当今发达的汽车工业。所以,鉴别真伪需求,显性需求、隐形需求就很难,何况还可能转化用户需求(把马转化成汽车)?

2、架构和设计,这是整个系统的灵魂步骤。一个架构不过关,到后面的问题可能是毁灭性的(相同业务量,相近的硬件,你的系统只跑两年就很卡,人家跑五年没事,很可能就是架构没做好);系统设计不过关,必定走不久,未来业务变化,可能又要换系统...

拿到需求就要进行:

1)业务流程设计(可能涉及到业务流程重组,最费事又可能最反复,也是风险最高的地方);

2)系统架构设计(cs还是bs?有没有app?私有部署还是公有云部署?其中架构时是否考虑可拓展的一体化的思想最为关键!决定这个系统能支持企业走多远!)

                                                             CRM 中 RMF模型

3)理论支撑(很多商业模型都是有理论支撑,那就设计系统时,也必须具备这样的理论基础,否则就达不到预期效果。不懂这些理论,做出的东西可能就是驴唇不对马嘴)

4)功能设计(需要什么样的功能,达到这样的功能要几步,分别是什么操作等)

5)程序代码规范设计(包括库、类、公用方法和控件的准备,还有编码规范)

6)数据库的设计(数据库规范,要几个数据库,这几个数据库的关联性是什么?分别如何存放?每一条数据的来源和走向都要清晰,还要预估一年后表的增长数,服务器的承受能力和方案)

7)还有服务器的部署设计(业务跑公网还是私网?有没有API接口?服务器的高可用方案?应用的高可用方案?数据库的高可用方案?读写分离方案)

8)还有网络方案(公网还是vpn?网络安全性,vpn的稳定性?断网的处理方案?)是不是蒙圈了?


 

                                                   开发模式各有优劣,要依据项目情况来选择

3、代码开发,尽可能保持统一一种语言来写系统(大项目可能很难做到)。尽可能少的人来编写模块代码,需要研发经理统一分配模块,研发经理来审核各成员代码,代码本身也需要统一管理(不管是svn还是tfs),否则项目往后就无法维护。。。如果是互联网系统,还需要美工、UI和前端代码,代码质量基本决定项目质量,尤其是关键模块(高频操作模块、或涉及金额、库存等)。

4、测试,测试人员要充分理解编程思想和业务逻辑,编写全面的测试用例。尽可能的测出系统bug和问题,反馈给开发修正(测试也分阶段和模块,还有压力测试,要看项目大小和进度)。

5、培训,系统上线前系统要做动员和培训。让具体操作人员清晰系统操作和管理范围(这时候因为会改变很多人的操作习惯,还有系统有不完善,可能不配合,所以一定做上线动员,而且是老板做,明确不走系统就走人!)。

6、上线。相信我,上线可能会很痛苦,也可能很顺利,是检验前面的测试、培训工作是是否到位!如果前面步骤都过来了,那么确定上线时间,以及历史数据的处理方式(一般财务有懂信息的人才),导入数据(可能是库存,余额等,也要看实施方案,如果双线并行,可能数据也不用导),然后到点就上新系统(终端、服务器、网络都要提前配好),建立问题实时反馈通道和快速解决问题的通道(电话、qq、钉钉等都可以),实施人员下放到各使用系统单位,实时监控系统问题,发现系统问题,研发人员在后台实时修改,快速测试和更新系统。一个月之后把上线数据拿出来财务(过生产、业务数据)分析,没有大问题就算上线成功。

7、持续改进,快速迭代。(这个非常重要,但最容易忽视,也是企业最容易吃亏的地方)。企业级系统不是上线成功就万事大吉了!市场在不断变化,企业也会不断扩张,需求也在不断变化,系统本身也会不断发现BUG要修正,所以系统本身就要求能不断持续改进(快,比别人更快的更新能力),就要求要有这样能力的团队或机制来保障。一句话就是刚才说的关键点:对信息系统要可控!

8、上述七个过程,有流水线操作,也可能交叉操作,是一个管理过程,你觉得需要一个什么样的人才能管理好,需要一种什么的团队来配合?达到预期目标呢?

所以,为什么软件开发会这么贵呢?

相信你也明白了。因为做好好系统开发很麻烦,过程管控复杂,既要求老板懂、也要求CIO懂业务、懂流程、懂管理、懂技术,还要管理技术团队协同工作。

当然,你可以说,外面买一套进销存系统才五百块,也能管理我店业务,那你怎么说?

是的,如果要出行,也没必要非得自己买车,打车出行有时更方便,那是不是买车就没有需求了?

就像判断药物毒性一样,抛开剂量谈毒性都是耍流氓,软件系统抛开需求谈价格也是耍流氓。

对一个早点铺子来讲,开通微信支付宝支付就已经是信息化了。

当然,你说我也可以采用Saas方案,就没这么复杂了,功能也挺强大。

是的,这个世界正因为有多种选择才丰富多彩,选择自己用起来就好,没有对错。

可能一体化没那么好做吧?

后面的和其他系统的集成和拓展性也是需要评估吧?

一般企业会有多种系统,多种系统都用Saas?还是混合?如果要互相打通?想想就复杂吧?

多屏合一是不是企业信息化目标?
天津犀思科技有限公司专注于互联网应用软件系统服务开发,致力成为中国领先的IT服务及行业解决方案的提供商。公司主营业务:天津app开发天津微信公众号、小程序开发高端网站定制、移动应用开发、平面设计、IT技术运维。