用科学思维做产品
最近一年,悦库团队忙于实现新的产品安全访问能力,这是一个包含集团化组织、角色、人员访问权限、文件访问规则等功能庞大的改造工程,随着工作深入展开,感觉这实际上更像一场重构运动。在悦库产品发展史中,这是我们第一次用科学方法,从安全访问理论研究、编写实现方案论文、工程实施,到最终产品功能完成,整个过程团队成员输出了10篇相关论文,经历5次开发迭代,才完成第一版功能的发布状态。我们没有参考任何其他产品的类似功能,这是通过科学研究成果和过去的产品经验积累实现的原创功能。
科学方法的使用,让我们对最终成果的可靠性充满信心,因为这些成果有成熟的安全访问理论支撑,并不是我们一拍脑袋想出的“令人惊奇的灵感”,我认为“灵感”,更适用于文学、艺术领域,企业软件产品并不需要“令人惊奇的灵感”,因为不经过论证的所谓“灵感”,通常是漏洞百出的。企业软件应该是一 种生产工具,核心意义是提高生产效率,关于如何研发更好的提高效率的系统性软件功能,需要用科学思维大胆假设小心求证,用成熟的工程学方法论实施。这看起来有些“死板”和“老套”,但科学本来就不是一种时尚。
显然,并不是所有企业软件功能的实现都要使用科学思维,需要强调的是高复杂度的系统性功能更适合使用科学思维实现,以悦库企业网盘为例,安全访问、文件存储、文件管理、系统架构这样的核心功能是需要严谨对待的,但更多的边缘业务功能逻辑简浅,交互简单,有经验的产品人员和工程师就可以直接设计实施,工作方法应该是灵活的,相互学习的,过度使用某种方法论,本身就是一种偏执。
科学方法
科学方法论最早由法国数学家笛卡尔提出,我们多数人即熟悉又陌生的数学集合概念笛卡儿积得名于笛卡尔。他总结出了完整的科学研究方法,即科学研究是通过正确的论据(和前提条件),进行正确的推理,得到正确的结论的过程。牛顿说他自己是站在巨人的肩膀上,这个巨人就是笛卡尔。
基于科学方法论,为了解决复杂产品问题,应该 先尽量分解为多个简单的小问题研究,然后按优先级逐步解决。在研究问题时,需要调研可能可以解决该问题的现有成熟理论依据,这就是论据,然后进行正确的推理,以证明问题可以被很好的解决,然后再安排工程实施,任何未经充分论证的解决方案的盲目实施都可能会造成最终产品功能的失败,损失大量人力物力。研究和实施的过程应该将新知识和经验总结记录,以备后人参考学习再研究,如此建立一种持续正向的科学的产品发展节奏。
以史为鉴,我们都知道瓦特发明了蒸汽机,莱特兄弟发明了飞机,其实无论是瓦特还是莱特兄弟准确来说都不是发明,而是改进了蒸汽机和飞机,因为在他们之前,蒸汽机和飞机都已有雏形和基本理论支撑,他们只是站在了巨人的的肩膀上,以现有理论为基础,进行""再发明""的成果。瓦特能改进蒸汽机,因为他系统的学习了力学、数学和物理学的课程,通过理论进行推理、计算和不断实验改进,最终将蒸汽机的效率提高到原有蒸汽机的5倍,为人类第一次工业革命提供了动力来源。

瓦特设计的蒸汽机原理图
再说莱特兄弟发明飞机之前,滑翔机、内燃机、基础理论都已具备,他们自学了空气动力学,甚至专门打造了一个风洞,在里面进行了大量的试验和计算,以改进机翼,最终成功试飞"飞行者一号",从此,人类进入了飞机时代。

莱特兄弟的工作笔记
总之,要改进蒸汽机、飞机这样的复杂"产品",就需要解决复杂问题,没有科学方法和基础理论做指导,仅凭个人经验是不可能走远的,在科学方法出现之前,基础理论研究成功总结较少,只能被有限继承,且难以持续改进,是科学的发展一直比较缓慢的重要原因之一。
为了更好的解释如何使用科学思维做产品,我将以从不同的角度出发,用科学思维从宏观上认识和分析产品通用的本质,只有认清产品的性质,才可能做更好产品。
多维复杂性
为了更好的认识事物,以科学的方法从多个角度观察和分析,会有不同的结果,更有利于发现事物的本质。
"盲人摸象"这个传统的寓言故事讲述了一个盲人摸象的情景:六个盲人分别摸到了大象的不同部位,但每个人都只能感知到大象一部分的特征,因此他们都得出了自己片面的结论,比如一个人摸到了大象的腿,觉得大象就像树一样,一个人摸到了大象的耳朵,觉得大象就像扇子一样。这个故事形象的比喻了只从单个角度认识事物造成的认知局限性和错误的判断,只有从更多的角度观察和分析才能发现大象的真正全貌以及事物的本质。

《盲人摸象》寓言故事
事物的好坏也存在多面性,我们经常讲"塞翁失马焉知非福"就是这个道理。同样的中国历史发展过程中无数的战争,坏处是造成的巨大的伤亡和悲欢离合,好处是形成了我们今天统一的中国、以及各民族文化大融合。两次世界大战对全人类造成空前浩劫,却大大加速了科技发展,使我们现在能享受到如此丰富的物质生活。
我们生活的世界中,所有人类制造的工业产品都是相互关联的,没有任何一种产品能够独立产业链以外。所有动植物、微生物也是相互关联的,没有任何一种生物可以离开生态链独立存活,包括掌握高科技的人类。甚至整个宇宙中所有的物质都是相互关联的。
事物的多面性和关联性,同样适用企业软件产品,软件产品也是一种工业产品。我们用产品的 “多维” 替换 “多面” 的寓意,是因为我认为一个维度比一个面更能体现每个角度的巨大和复杂性,因此最终使用“多维复杂性”解释产品的多面特性。一款软件产品的诞生和发展,会涉及到多个维度的问题需要处理,如果看不到产品的"多维性"和"关联性",认知能力单一,就无法从整体上提升产品价值,从而做出不明智的决策,这就像查理.芒格的那句名言:“拿着锤子的人,看啥都像钉子”。
用户维度
在用户维度上,如何解决用户的核心需求,是最重要问题。这就像公司需要招聘一名员工首先需要其考察人品和业务能力一样,这时公司的核心需求是如何找到一名品德和业务能力符合岗位的员工,而身高、相貌、家庭背景等因素是次要的。其次,关注UI交互的人性化体验,概念和文案的准确性,有利于提升用户交互体验以及在交互过程中对产品的准确理解。关注如何引导用户认知和使用产品,在官网和产品文档上做一些工作会有显著效果。
研发维度
在研发维度上,做好项目管理,控制每期迭代的进度和风险,以及让研发团队能够很好的理解产品和自己要开发的产品需求,这都需要一些方法论作为参考,而不是管理者自行根据个人经验和当前遇到的问题拍脑袋做决策,因为项目管理本身也是一个系统性工作,各种问题之间普遍存在一定的关联和依赖性,并不是“逐个解决问题,就能解决所有问题”,往往是解决老问题,出现新问题,最终使整个团队陷入"焦油坑"困境。因此学习一些方法论,如产品开发模式: 敏捷开发、IPD(集成产品开发),以及用于品质管理的“六西格玛”管理思想等,有助于系统的解决项目管理问题,而不是"