新闻中心

代码不是核心竞争力,那什么才是?

在聊真正的核心竞争力之前,我们来聊聊闭源软件的局限性。
我们看看一个闭源的软件的一生:立项的动机可能是某个公司或者个人对于一个市场机会的洞见找到了一个高价值的场景,通过开发一个软件能够很好的提高效率或创造价值,甚至可能就是一张来自甲方的合同,总之这个公司招募了一伙程序员,设计师,产品经理,开始项目的开发。一切顺利的情况,顺利的满足了甲方的需求,甲方也很开心的付钱了,然后这个公司发现,好像这个软件改一改(甚至不用改)也就能够在同行业另一个客户那边卖出去,这就太好了,感觉找到了一条致富路。可是好境不长,客户这边的场景和需求在变化,原来的软件可能不一定能够满足新的需求了,但是开发团队就这几杆枪,稍有不慎一个方向判断错误,可能时间和机会窗口就错过了。这就意味着,对于项目领头人的要求就很高,要求持续能够引领行业的方向。还有一种方式是挑选一个相对狭窄或迭代不快的领域,存活时间能够延长一些。对于甲方也很难受,总是感觉需求的满足慢半拍,甚至对于有些有着研发能力的甲方,因为受限于没有源码,就算知道如何改进,也只能干瞪眼。
其实这个问题的本质在于:闭源软件开发商虽然可能是技术的专家,但是并不一定是业务或者场景的专家,软件进化的速度受限于开发团队和产品经理自己的认知和见识的进化速度,除非开发商强大到能够持续引领整个行业的进化方向,否则无解。
其实这个问题,教员早就给出了答案:「…凡属正确的领导,必须是从群众中来,到群众中去。这就是说,将群众的意见(分散的无系统的意见)集中起来(经过研究,化为集中的系统的意见),又到群众中去作宣传解释,化为群众的意见,使群众坚持下去,见之于行动,并在群众行动中考验这些意见是否正确。然后再从群众中集中起来,再到群众中坚持下去,如此无限循环,一次比一次地更正确、更生动、更丰富…」 — 《关于领导方法的若干问题 32》, 1943
要我说教员放在当代,就算是当个程序员,也能是一个大师级别的。教员的这段话,包含两个关键的点,完美的解释了开源软件的生命力的来源,我下面的详细讲讲。
第一点,开源软件的生命力来自于场景的垄断,而背后更本质的垄断是人才垄断。
为什么强调从群众中来?回顾刚才我们闭源软件的那段,其实一个关键的点是,软件的初始动机虽然来自于少数人的洞见,但是持续保持洞见并不是一件容易的事情,这就是为什么很多技术团队或者产品团队容易「自嗨」,一旦脱离用户,极易出现这样的问题。闭源软件厂商触及用户的手段不外乎于传统的商业宣传和销售,用户从感兴趣到使用起来的门槛很高,实施的周期也很长,另外通常销售会站在产品团队和客户中间,通过一些信息不对称来获取超额的利润,其中最大的信息不对称就是封闭的源代码本身或者定制化。这导致的问题是,相比流行的开源软件,闭源软件没有办法高效的获取,吸收和理解更多的场景,这对于一个通用的基础软件产品来说通常是一个致命的问题,如果见过的场景不够多,更没有办法判断产品那些需求该做是普遍需求,哪些是伪需求坚决不做,我认为这就是做产品的「触感」。
对于一个流行的开源软件,本身不会有上面提到的问题:因为有足够多的用户,那么一定能看到足够多的场景,也能看到足够多的稀奇古怪的用法,这一个个用户的反馈,修过的一个个 bug,提出的一个个建议,会持续的产生类似「复利」的效果,你的软件越强壮,见过的场景越广,会进一步让你接触到更大的用户群,帮助软件变得更强大,如此循环。实际上开源软件本质上是通过放弃一部分通过信息不对称产生的潜在利润,换取了极其高效的传播和场景触及效率,但是有意思的是,实际上牺牲掉的这些潜在利润大概率也不一定真的牺牲掉,一来可能本身付费能力有限,二来可能实际上这些用户通过宣传站台二次传播或者代码贡献等方式回馈了项目本身。
在上面那个过程中还会产生一个更加厉害的效应:人才的垄断。正所谓「事在人为」,上面提到的场景垄断中种种的技术决策和实践都是人来操作的。一个流行的开源软件在变成事实标准的过程中,一定会培养出大量熟悉这个产品的工程师,用户,摇旗呐喊的粉丝,代码贡献者,甚至挑刺吐槽的人。传统意义上,大家理解的开源社区只是狭义上的开发者社区,只有贡献代码才算参与,但是我认为只要和这个产品发生关联的人,都算是社区的一部分,「人尽其材」才是构建开源社区的终极目标。这个优势是会随着时间的流逝不断累积,这个很好理解,举个例子:A 公司的工程师在 A 公司的工作中学习使用了 TiDB 也很好的解决了问题,然后这个工程师作为数据库专家跳槽到了 B 公司,遇到同样的问题时,你猜他会选什么?
第二点,迭代,迭代,迭代,只有高速迭代才能立于不败之地。
上面教员的话里面有个关键的点,关于正向循环,也就是迭代。这个道理同样也适用于软件开发,软件从来都不是静止的,随着市场和竞争环境的变化,你今天的竞争优势,很可能明天就不是了。很多人都喜欢用静态的眼光看待问题,热衷于各种方案的横向对比,而忽略了进化速度,在这点上,我可能更看重的是同一个产品的纵向对比,举个例子:目前有 A, B, C三个方案,可能当下看这三个方案差距不大,也许在百分之五十之内。但是如果其中一个开源方案每次和自己半年前比都是在翻倍的提升(背后开源社区推动),但是闭源的方案的进步受限于团队规模和资源。这时候的选择除非是那种火烧眉毛的情况,否则一定应该选择一个迭代速度更快,增长率更好,更代表未来的方案,这个也很好理解。这是人的思维的一个惯性,人总是倾向用线性思维去看待问题,于是对非线性增长的事物往往会习惯性的低估。
说一个更加震撼的例子,我粗略统计了一下,从 2018 到现在,也就短短一年多时间,整个 TiDB 的 SQL 层这么一个项目发生了 30000 多次提交(https://github.com/pingcap/tidb),有接近 60% 的源码被修改。也就是说,每一年的 TiDB 都和上一年是不一样的,是一个更适应当下的,更加进步的一个 TiDB,而且随着社区的不断壮大,迭代的速度会越来越快。我完全不能想象,如果 TiDB 是一个闭源软件,从第一行代码开始写,到现在短短的 5 年时间,如何能够到达现在这个成熟度,这一切都是得益于开源社区的带来的加速度和反复迭代。

 

详情请登录  http://www.xkzjsj.com

所有课程尽在新科展计算机学校http://www.xkzjsj.com

联系人倪老师:15543625258微信同步

QQ2395263754

详情请登录  http://www.xkzjsj.com

长春市朝阳区同志街与隆礼胡同交汇火炬大厦9楼新科展计算机学校(桂林路附近)

吉林省新科展高级IT网络培训中心是吉林省最大的计算机培训学校
吉林省新科展高级IT网络培训中心学校常年招生,咨询学习请提前电话联系,登记预约学习时间
新科展承诺:100%推荐就业,规定时间内免费重学。

合作伙伴

计算机培训 培训学校