美文网首页程序员@IT·互联网
从数系的发展看IT产品的演化

从数系的发展看IT产品的演化

作者: hy9be | 来源:发表于2017-10-10 05:19 被阅读175次

这段时间在coursera上修吴恩达那门deep learning的课。其间时不时出现的公式,勾起了我一些对形式化的符号系统的“美妙”回忆。打引号并不是因为回忆里全是噩梦(尽管当年类似三天愣是看不懂一个两页的证明的惨剧时有发生……)。博士几年的训练让我对于符号系统的美感,有了一种比叶公好龙稍稍高级一点的喜爱。所以趁着最近学习,我专门找来两本高分的数学书《什么是数学》《微积分的历程》,好好“怀旧”了一把。尽管这两本书在大神眼里绝对是科普读物,但是对我来说,足以活动脑子,甚至逼着我拿起纸笔推演几步了。

不过这篇文章要说的不是两本书里的数学内容本身,而是我从中一闪念体会到的,“神圣”“无暇”的数学系统,和我们IT业的产品演化过程的种种神似。这里我举一个例子,数系。

和很多产品一样,数系的起点是非常自然而然和直觉化的——自然数1、2、3……的起源就是为了数东西。比如说部落里的人,有了自然数,大家就都能数明白自己人有多少个了。能数人了,大家都很满意。这大概相当于产品原型的验证完成。

数了一段时间人,大伙儿扩展用例,开始数东西,还搞起了商品交易。这时候大伙发现一个问题,每次交换了东西回来以后,得重新数一遍才能知道自己现在有多少个。于是诞生了新的需求——加法和减法运算。

加法算多了,发现有的时候一直加一样的数字挺麻烦,这样就催生了一个对加法功能的enhancement——乘法运算。有了乘法,还得能反着算回去,于是又有了除法。

好了,酷到爆炸的新feature一下加了好几个,就出问题了。2+4=6,但是2-4是等于多少?还有6除以3等于2,但是5除以3,这又等于多少?还有大伙发现量东西的时候量出来的尺寸经常在一个单位和两个单位中间,这该算多长……这些都是新的系统实现和老的系统模型(自然数)不吻合导致的问题,大致相当于merge了大的新feature以后出现的bug。

出了bug怎么办呢,修!一种比较简单的修法是,加if-else。比如说if被减数比减数小,就抛异常,不算了。但是这样用户体验太差了,我能写出算式还能说出背后的应用场景,可是你偏偏不让我算。用户不干了那这么修肯定是不行了。另一种办法,是请大牛们来,重构系统模型,使得模型、实现和使用场景逻辑相容。这里数系系统上做的就是引入负数、有理数的概念扩充自身,并且保证所有的运算操作的意义和过程都和自然数类似。Bug修好了,一时间系统显得稳定无比,于是再次发布了。

又过了一阵,新需求又来了。大家需要做连乘的简便方法——于是有了幂指数运算。这新feature帅的飞起,除了有个bug,指数上面有的有理数放上去系统就挂了。比方说2的1/2次方。关键在于这问题不是没事找事弄出来的,很多实际的应用场景在后边,比如算一个正方形的对角线长度的时候经常就算出来等于这玩意。怎么办,继续呼唤大牛修bug。于是数系被扩充到了无理数。大牛们扩充了模型,还夯实了新元素和老元素的种种逻辑关系。系统再次看起来无比的美妙,“比上一代提升了10倍”。

可惜没过多久,有用户弄出了(-1)的1/2次方这么个东西……几位大牛再次从天而降。复数登场……

这么平安的过了好久,系统都非常的完美。

可是就算是神级大牛操刀,系统修补的次数多了总免不了有些地方比较别扭,于是有人开始想一个问题,咱们能不能重新把模型建一下,把这些别扭的地方都能理顺了。在数学的领域,一个叫哥德尔的同学说你们就别做梦了,搞不定的,然后还给出了铁证。大家有点失望,但是给了铁证也不能视而不见。问题是这系统已经这么重要了,总不能因为它没法改进到完美就不用了吧。怎么办呢,忍着。这样有的别扭大家就先视而不见好了,反正也不影响日常使用。在数学里的例子比如连续统假设在zfc系统里既不真也不假……

这个例子大概就是这样了。要特别说的是数学系统有两个优势,导致它的quality比IT产品系统要好得多得多:

第一,数学系统的演化是没有资本主义的幽灵在背后玩命的催促的,所以可以做到绝对的质量优先。产品一时半会出不来我就慢慢做。这可能是因为近现代的数学用高度的抽象性,杜绝了世俗力量给它breakdown,manage,设milestone和deadline的可能。要知道21世纪数学的前沿领域的名称就已经不是正常的人话了。比方说我现在的项目叫做“证明在非奇异复射影代数簇上, 任一霍奇类是代数闭链类的有理线性组合”,来吧,你说要怎么管理我这项目。要不我给你约个daily update meeting每天给你讲讲?

第二,也许更重要的,是修数学系统的bug的人,都是这个星球的历史上出现过的最牛的一群人。随便说几个名字:毕达哥拉斯、牛顿、莱布尼茨、高斯、欧拉、柯西、勒贝格、希尔伯特、哥德尔、庞加莱……这些人脑子如神一般牛掰不说,还特别投入特别有激情和使命感。这帮人对系统的思考层次和塑造能力,完全不是聚集成千上万每月拿工资的如我等的小聪明可以企及的。

总结一下这个体会就是,所有的人造系统都是经验主义+实用主义作为发展的核心指导思想的。简单的说,就是“事实说话+够用就行”。在新需求不断的冲击下,这种系统往往过一阵就得大修一番才能保证不崩溃(据说很多公司就干脆扔了重写)。

另一方面,要做好的产品,需要不太紧的schedule,和素质高并且self-motivated的团队。这是每个开发团队管理者的梦想。

(莫名的觉得这里应该接个招聘广告结束才比较自然。。应该让HR准备一下 lol)

相关文章

  • 从数系的发展看IT产品的演化

    这段时间在coursera上修吴恩达那门deep learning的课。其间时不时出现的公式,勾起了我一些对形式化...

  • 从椅子发展看设计演化

    家具设计的三要素分别是材料,结构,造型。在家具设计史上,似乎所有设计师都对设计椅子情有独钟,而椅子的设计发展也代表...

  • 从产品的角度看数仓

    背景:因为业务报表需求,需要高精准性,但是公司此前没有做数据产品,所有的数据报表都是从由业务系统直接去抽取。但我们...

  • 数据分析能力-《幕后产品》阅读总结笔记-part 2

    1、今日头条系产品为什么能快速发展,他们的产品方法论是什么 今日头条系产品的方法论基本上是构建在数据和算法上的,数...

  • 从 Soul 产品分析,看社交产品的发展

    用户喜欢并持续使用Soul的原因是什么?除了广告、会员等盈利方式外,还有新的方式吗?在产品快速发展用户大量提升的情...

  • 从社交平台的发展历史看未来的演化方向

    今天看Facebook-社交平台的报告,里面有一段关于社交平台的历史,相信大家比较感兴趣,下面贴出来和大家分享下:...

  • 从FireEye发展看产品规划

    最近计划写一系列的威胁情报杂谈,在文稿中发现今年初写的一篇文稿,本来是想对FireEye上市后几个阶段的发展做一个...

  • 从互联网的发展看产品

    最近开始学习产品知识,想从事产品工作,为了更好的巩固自己学到的知识。在这里我希望能够将我所学到的,总结起来与大家分...

  • 从演化角度看个人

    先通过两个概念来窥探一下演化的思想。一个是先天性,另一是适应性。所谓先天性,就是我们从父辈那里继承来的东西,这些东...

  • 从文字的演化看创新与迭代

    从文字的诞生到演化过程来看,大多都保持了一种与生物演化的相同路径。从甲骨文到小篆、再到近代的白话文简体字的改革,也...

网友评论

    本文标题:从数系的发展看IT产品的演化

    本文链接:https://www.haomeiwen.com/subject/gqimyxtx.html