互联网公司做企业级软件的优劣势分析

企业级软件基本特点

企业级软件市场属于传统 IT 领域,其历史比互联网要悠久得多。但近年互联网公司开始“逆袭”,染指企业级市场,比如阿里巴巴有钉钉,腾讯有腾讯通、微信企业号,网易有云信、七鱼、有数等,我们网易云课堂也在做学校云、企业云。这么做当然是为了收入。C 端用户的发展越来越难,快接近顶峰。用户就那么多,一天就是 24 小时,除去睡觉、工作,留给互联网的时间非常少,却有成千上万的产品在争夺这少得可怜的时间。而 B 端用户在工作时间使用产品,粘性大,高频刚需,还有可观的服务费收入。

企业级软件市场体量非常大,养活了大大小小无数的软件公司。IBM、Oracle 这样的巨头都是靠这个领域发展、生存且死死抓住的。随着“互联网+”战略的实施,各种企业、政府机关、学校、医院、银行等对 IT 系统的需求更加旺盛,依赖性更强,市场空间进一步扩大。而且此时也正是从卖独立部署软件到卖 SaaS 服务转型的当口,非常适合搅局者进入。当然,肯定不会很容易进入的。

企业级软件市场的复杂度非常高。政府学校和企业的采购模式、利益诉求不尽相同;不同生产、管理环节对软件特性、服务模式等的需求大相径庭;不同企业对同种软件也总会有个性化的要求;同一个软件在同一个企业内的同一个功能,也可能因部门间的厉害纠葛,导致需求不可理喻地分裂。这种复杂以至于“乱”的市场,是互联网公司很不习惯的。

软件公司的产品研发

传统软件公司不会仓促启动一个项目。一定做足市场调研,甚至已经有敲/内定了的订单,才会真正动手。一旦动手,就会大幅投入,轻易不放弃。

研发人员会和首批客户深入沟通,全面了解客户需求,和客户一起商定开发计划。往往会先快速做个原型版本,让用户直观体验一下,提提意见。正式版本开发时,会充分吸收客户的反馈。然后一个版本一个版本地提供给客户使用,过程中继续不断听取反馈、升级产品。

正式版本刚开发时,就已经大体知道未来会是什么样子,也隐约知道有哪些变化的可能,并且充分考虑软件还要部署给其它客户使用,且不同客户都会有自己的个性化需求。所以,软件公司特别注重系统分析和设计,力求在架构上做到可重用、可扩展,降低后期升级、定制、维护的成本。很多软件工程理论与方法都是由此催生的。

软件公司最核心的竞争力,是对客户业务的深入理解和最适合业务需求的软件架构设计。当然,渠道力量也相当重要。所以在这个市场就形成了一些分工,比如有专门做渠道的公司,在某些地域或行业很有门路,它们通常会分走利润的大头;有专门做系统分析和设计的公司,它们是行业的技术核心,可以和多家渠道合作,总利润会超过单家渠道公司;还有专门按照设计稿把软件实现出来的公司,通常叫外包公司。外包公司技术含量有限,比较劳动密集,多数都在印度、中国这种人力成本低的国家。当然,也有做得强大的公司,渠道和分析设计一把抓。中国的公司,也很少有选择外包的。

项目经理和架构师负责的系统分析和设计,是产品核心;销售,是市场核心。这两大核心,决定了传统软件行业的格局。前者决定成本,后者决定营收。

互联网公司的产品研发

和软件公司始终面向真实客户的真实需求不同,互联网产品本质上是创造和发现新需求。这种需求的扑捉,主要靠灵感、思考和运气,而不是市场调研。比方说,如果做市场调研,结论一定是电话+短信足以满足用户的沟通需求,微信根本不必存在。

需求抓得准不准靠运气,那么风险就必然很大,未来有诸多不确定性,唯有摸着石头过河,用市场来验证想法。 产品经理就是第一个下水开摸的。他们不做宏伟缥缈的长远规划,着眼当下,用最简单粗暴的方式服务自以为的用户最核心的需求,设计出非常简单的第一版产品。工程师紧随其后,用最快的速度拼凑实现出第一版产品。产品马上推向市场,运营做一些低成本甚至零成本的推广,获取第一批用户,接受检验。通过几次快速的迭代,如果效果不好,果断转型。如果效果还可以,甚至一炮走红,就再追加投入,继续用摸石头的方式快速迭代和扩大用户规模。

这种“小步快跑”的做事套路,是互联网能蓬勃发展的核心驱动力之一。基于此,也就应运而生一些具体做事的方法和思路,与软件公司很不一样。

软件公司期望能用一套软件服务所有的客户,因为每个客户都能带来收入,于是软件就会设计得很复杂,有无数开关,有二次开发接口,来满足不同客户的个性需求,比如 Office。互联网虽然也希望用户多多益善,但用户种类多,就要 同时摸多块石头,风险也会加倍。所以,互联网公司通常是只用一个软件服务 1-2 种用户,服务 3 种的都很少。比如一个微信,服务各种信息的收发者;一个网易云音乐,服务音乐的发布者和收听者;一个淘宝,服务商品的卖家和买家;一个滴滴出行,服务司机和乘客。无论用户数是 1 个,还是 1 亿,都只用一种简单且有效的方式服务。虽然每个用户都会有自己的偏好,但软件免费啊,且核心需求是满足的,也就不挑剔了。

用一种方式服务所有人,才能保证单客成本足够低,才能支撑免费模式,才能让业务指数增长的成本可控,盈利的遐想空间巨大,被 VC 看好加大投入;只做一种方式的服务,也就是足够“专注”,才可能“快”,才能将其做到“极致”,形成“口碑”。

只做一种方式,就意味着要有取舍。所以,与软件公司的项目经理处处跪舔客户不同,互联网公司的产品经理才是产品的上帝,按照自己的喜好(当然,他们会说这是用户呼声,事实上也确实是用户呼声,只不过未必是多数用户内心的呼声)来推动产品发展。自己不喜欢的需求,就直接忽略。为了避免产品经理的好恶和用户相悖,很多产品经理就是来自用户,他们自己就是典型用户,做出的产品自然也更容易被用户喜欢。

再牛的产品经理,也不敢说自己的判断 100% 正确,还是得不断小步快跑来收集市场反馈,快速调整。未来,总是不确定,但这是程序员最怕的。工程师实现的每个功能,都不确定未来会怎样演化,甚至不知道能存活多久。再加上“快”字诀的催促,所以最现实的选择,就是用很粗暴的方式把功能先实现,等稳定了再用优雅的方式重构。但实际上,要么没等到重构产品就死了,要么想重构却没时间,要么有时间了却怕影响日常业务而不敢动,要么敢动却缺少会动的人才,因为大量的业务层工程师一直都是做“快”,没有做“好”的经验。所以,站在软件工程的角度看,互联网产品的开发工作普遍来讲,是缺少设计和规范的,用面向对象语言写的结构化代码是不好意思给人看的,但确实是业务压力下的无奈折中。

那都说互联网公司的技术力量雄厚,是厚在哪里呢?厚在底层,系统、框架和算法层面。在互联网领域,这些技术获得了长足进步。但业务层的系统分析和设计技术,还未被充分重视。

在软件公司,系统分析和设计技术是核心竞争力。但在互联网公司,更核心的竞争力是产品设计和运营。前者决定了产品形态,后者用尽办法拉来用户,两者一起留住用户。有用户,产品才有存在的价值。

优劣势分析

易用性优势

互联网产品的研发方法、思路和习惯,用到企业级软件领域,可能会形成颠覆,但也可能水土不服。最具颠覆性的,是“易用性”。传统软件行业一直没能解决,甚至不想解决的,就是易用性问题。从根本上而言,这是经济模型不同导致的。

企业级软件市场一直是销售主导的,采购方的决策者,也就是客户,是成单关健。于是无论销售还是产品,都在拼命满足客户的需求。但客户,往往并不是软件的最终用户,甚至他们的某些需求会和用户相矛盾。所以,用户常抱怨系统“不好用”,以至消极用。软件公司也缺少动力去想怎么让软件好用,因为这不是成单的关键。甚至说,“不好用”,才会不断投入大量资金来升级/更替系统,期望让它好用。如果好用了,投入就少了,大家就都没得赚了。荣誉感使技术出身的项目经理是有把系统做好用的意愿的,但他们更愿意做大而全的系统以展示技术能力,很难体会小白用户面对满屏选项的心情。他们心中的易用,和用户心中的易用,几乎完全不相关。

举个例子,很多政府部门、学校,都会投重金搭建邮件服务器,购买邮件系统,聘用专人维护。但员工却不大爱使用这种官方邮箱,对外联络更多用的是 163、126、QQ 等免费邮。为什么?因为他们觉得互联网公司的免费邮箱即便是有广告,也更好用。因为取悦用户是互联网公司生存的根本。

中国企事业单位的信息化程度低,很大程度上是被那些“不好用”的系统给拖累了。但互联网,尤其移动互联网的普及,让越来越多的人能在日常生活中体会到信息技术的便利,进而就会思考怎么在工作中却用不起来。这种思考变成声音,就会对决策者产生压力,使他们开始注重“好用”,考核 IT 部门时不再关注“部署成功”,而是关注“应用成功”。近两年这种思想转换非常明显,包括在政府采购这种政绩导向的重灾区,也越来越关注实效。PV/UV、转化率、活跃度这些互联网指标,正逐渐成为政府网站的绩效指标。机会正在向互联网公司倾斜。

花了钱买软件服务的客户,心态肯定和免费个体用户不一样。他们做惯了甲方,习惯对乙方颐气指使。而互联网产品经理却习惯做产品的上帝,习惯砍掉不重要的需求。砍需求,是易用性的重要前提。但是,企业用户的个性化差异往往很大,一个需求在一方可能是无关紧要,在另一方可能就是核心根本。更何况还有一种需求,产品经理不认可,事实上也确实没必要,客户就是要。如果不做,那么单子就吹了。怎么办?需求还是要砍,但砍得肯定不及以前任性、爽快。有时做个恶心的功能,却能换来大笔订单,好像很值得做啊。产品经理必须在功能和易用之间找到一个新的平衡点。如果能做到功能复杂却仍易用,就完美了。

软件工程劣势

传统软件另一痛点,是稳定性。这里既包含运维带来的稳定问题,也包含性能问题。SaaS 模式还带来了对信息安全的担忧。这些问题和易用性一样,是互联网公司的看家本领,已经解决得很好了,天然让客户信任。然而,业务层软件的稳定性、扩展性等,也就是前面提到的软件工程问题,如果不解决,会很快让这份信任付诸流水。

企业级软件的需求一向很复杂。产品经理再神通砍需求,也只能让复杂性降低一点儿。这就是软件企业重视系统分析和设计的原因,因为进行抽象设计,是满足需求的同时降低软件复杂性、提升稳定性、扩展性的唯一手段。在这方面,互联网公司是比较欠缺的。产品经理因为缺少技术背景,没学过面向对象,在需求分析时做不出抽象;工程师的工作习惯里一直不强调抽象,早把学校学的忘光了。不做一番学习、实践来提升抽象思维能力,是迈不过这道坎的。此外,其它提升软件质量的手段,比如单元测试、文档、代码规范等,互联网公司也比软件公司做得差。

其实,就算不做企业级软件,互联网公司也非常需要提升软件工程水平,不然携程那种全站瘫痪的故障,会越来越多。这是另一个话题了,有机会再写篇博客聊聊。

市场劣势

这个劣势乍一看很明显。一直做 2C 的业务,当然缺少 2B 的渠道、经验和人才。不过这个也最好解决。只要有过硬的产品,渠道公司会排着队来代理的。自建渠道,难度大一些,因为渠道里的某些花样,和互联网公司的机制不兼容。所以,首先要选好市场方向,体制内体制外不可一概而论;然后在机制上要和市场规则,尤其是潜规则进行恰当的适配。

互联网公司擅长营销,但营销对 2B 市场,只能是助力,最后成单还得有销售跟上。不过,这份助力也值得一用。至少能把宣传材料做得更通人性一些,不那么硬邦邦。也可能对最终用户产生影响,进而影响客户的决策。

运营优势

让用户用舒服、开心,不是产品功能就足以做到的,运营手段也很重要。互联网运营有“哪怕是一坨屎让用户吃下,也能咂咂嘴说味道不错”的本事,什么积分、签到、抽奖、分享、小恩小惠等。这些手法应用起来,不仅可以达成实效,让客户满意,而且可以提升用户忠诚度,跳槽了也会向新东家推荐你的系统。如果控制 2B 运营的成本,充分发挥企业自身的力量,是值得探索的课题。

另外,对内容型产品,比如培训系统,互联网运营多年积累的内容资源,是软件企业所不具备的。这甚至会成为胜负关健。

总结

这篇博客写了一年多,原因无它,重度拖延而已。但拖延也有好处(//理直气壮地),就是很多预想与猜测,变成了现实,写得更有信心;不靠谱的猜测,不必写出来丢人了。虽如此,面对这么大的论题,此文还是心虚的。当小白科普文尚可,霸道总裁只管笑话好了。

总的来说,互联网公司要打赢 2B 战,肯定是扬长避短、顺势而为。所以: 1. 坚持产品至上、服务用户的理念 – 这是大势,也是优势 2. 补足软件工程短板 – 这对自身也大有裨益。软件企业也是一步步把软件工程搞起来的,坑都踩过,怎么填也都知道 3. 充分利用互联网势能 – 产品口碑、内容优势、运营经验等,这些都发挥出来,胜算会更大

最后借用一位前辈的话(大意)结尾:

“2C 产品为第一代互联网人创造了大量财富,而留下的机会不多了。新一代互联网人的机会,在 2B。”

互联网公司做企业级软件的优劣势分析》有13个想法

  1. 写得好。未来的软件开发一定是将企业级软件开发与互联网软件开发的优势深度结合的开放,未来的2B市场,也应该是讲客户的需求与应用体验很好结合的市场。

  2. “传统软件另一痛点,是稳定性。这里既包含运维带来的稳定问题,也包含性能问题。SaaS 模式还带来了对信息安全的担忧。这些问题和易用性一样,是互联网公司的看家本领,已经解决得很好了,天然让客户信任。”

    按我的理解,互联网公司的系统并不是上线就稳定的,而是不断迭代出来的,开发部和系统维护部门天天解bug解出来一个最终稳定的系统。互联网公司升级系统或给系统打补丁不用出差。而软件企业的产品一旦发售就必须稳定,不然客户投诉会让他们售后奔波于各地,最终亏死

  3. 嗯,感觉同样是写代码,不同的公司的架构肯定是不一样的。在欧洲面试的时候,某家互联网公司,一个team就只有5到7个人,有一个PM,一个开发的,一个设计的,还有什么什么的,然后每周都迭代开发。

    就要去某个大公司入职了,做的也是类似Office的东西,希望能在大公司有更好的成长吧

  4. 我觉得资源也是很重要的一点,公司多大——品牌价值,担保能力,有多少专家——出现紧急问题多快解决,周边支持怎样——硬件问题系统问题其他不相关问题也需要一定能力,对开源社区的影响力,等等。互联网企业做这些,尤其是小企业存在天然劣势

发表评论

电子邮件地址不会被公开。 必填项已用*标注