关闭

有效思考—前提

从为什么、是什么、怎么做的思路出发,进行阐述。引入逻辑学概念,学习三段论的推理,总结历史功能的报障处理和全新功能的方案设计。

前言

有一阵事项推进出现了很多小问题,有点群魔乱舞的感觉。在耐心的梳理下,一步一步解决了。最近有点空闲了,决定针对这些事项的推进,做有效思考系列的总结。

系列主题已经定好了,分别是前提、求真和规律。本次讲的是前提,后续两个将陆续放出。由于前提相关的问题太多了,专门介绍了下逻辑学的概念,没控制住篇幅。若时间有限,可下载PPT粗略浏览,或直奔文章行动方法一节。

目录

不可或缺

理论释义

行动方法

不可或缺

第一部分,不可或缺,我们来聊一聊为什么。佳句赏析,看看那些有趣的名人名言。前提谬误,从逻辑学角度看看前提谬误的定义,实际案例告知我们前提谬误的社会影响性。

佳句赏析

关于前提的重要性,古今中外各领域的人士都有很深刻的认知,下面举两个例子。

哲学家罗素,曾说过“从错误前提出发的推论,能够推导出任何荒唐的结果”。

这里面有个很经典的故事。据说有人登门拜访罗素,抛出了一个证明题。假设2+2=5,请证明罗素是教皇。罗素的推理如下:

如果“2+2=5”即4=5,那么据换位法可得5=4,再据等量减等量其差必等,两边同减3可得2=1。好了,罗素与教皇是2人,但既然2=1,那么罗素与教皇就是1人,所以“罗素是教皇”。证毕。

罗素可能大家不一定知道,他是英国的哲学家、数学家和逻辑学家,还是历史学家、文学家。其文学造诣很高,1950年凭《西方哲学史》获得诺贝尔文学奖。作为一个哲学家,罗素最大的贡献是和乔治·爱德华·摩尔、弗雷格、维特根斯坦和怀特海一起创立了逻辑分析哲学。

王小波在《沉默的大多数》里面写到,“从正确的前提可以推导出正确的结论,但从一个错误的前提就什么都能推导出来”。

王小波大是中国当代学者、作家,两获《联合报》中篇小说大奖,死后成名。部分人对他很崇拜,认为其特有的方式,直面历史,诠释自由。高晓松认为王小波是“白话文第一人”、“神一样的存在”。冯唐说他是“一个奇迹”、“一个好得不得了的开始”。

为什么把这个两位放在一起,还真是有点原因的。罗素和王小波本人,都对哲学和逻辑学有一定的造诣。王小波的作品,宣扬了自由主义。而罗素,正是西方近代自由主义的代表人物之一。

前提谬误

根据维基百科全书的观点,在逻辑中,谬误就是指看起来令人相信但实际上并不是逻辑上可靠的推理或论证。当一个人提出的理由并不足以支持其所提出的主张时,我们就说他犯了谬误。因此,我们把谬误定义为逻辑上有缺陷的、它可以误导人们认为它是逻辑上正确的推理或论证。

逻辑学的任务之一就是发现谬误、找出谬误以及掌握这些逻辑错误的具体形式。一个论证是好的,必须同时满足下列三个条件:

(1) 所有前提都必须是真的。更进一步说,每个前提都必须是可接受的。违背这条规则的谬误有“不一致谬误”、“前提虚假谬误”、“预期理由谬误”等。

(2) 前提与结论必须是相干的,违背这条规则的谬误被统称为不相干谬误。

(3) 所有前提加起来必须给结论提供足够支持。这里的支持有两种:一是演绎支持,二是归纳支持。前者用演绎有效性标准来进行评价,后者用归纳强度标准来评价。

其中第一条件,就是本次要重点讲述的前提谬误。

错误的前提,会导致前提谬误,而且影响巨大。下面举几个例子,进行阐述:

第一,攻打伊拉克。2003 年 3 月 20 日,以美国和英国为主的联合部队正式宣布对伊拉克开战,澳大利亚和波兰的军队也参与了此次联合军事行动。当时的布什政府发动对伊拉克战争的理由是什么呢?其中一个重要理由就是美国认为伊拉克拥有大规模杀伤性武器。但事实上,美国搜遍了整个伊拉克,并没有找到大规模杀伤性武器。

事实证明,布什政府的“伊拉克拥有大规模杀伤性武器”这个理由是虚假的。实际情况还不止如此。2003 年 1 月,布什为发动伊拉克战争制造舆论,在国情咨文中指责伊拉克试图从非洲购买铀以制造核武器。而前美国外交官威尔逊却于 2003 年 7 月初在报纸上发表文章披露,他曾在 2002 年应中情局之邀前往非洲就有关伊拉克试图从尼日尔购买铀的情报进行调查,并在总统发表国情咨文之前几个月就提交了调查结论,指出这份情报毫无根据。然而,布什仍将此事作为萨达姆政权的“罪状”之一,威尔逊就此指责布什政府为获得公众支持发动战争,不惜“使用虚假情报”。这更加充分说明了布什政府发动对伊战争的理由的虚假性。

第二,报复社会杀害学生。2018年6月28日,一起恶性杀人事件在上海徐汇区小学门口发生,据报道,一男子持刀伤人,砍伤3名男童及1名女性家长,随后被当场控制。2名男童经抢救无效死亡,另2人无生命危险。警方通报称,犯罪嫌疑人黄某、无业,今年6月初来沪,其交代因对生活无望产生报复社会念头,进而行凶。

这个例子比较复杂,我们来仔细分析一下他的心里活动。他认定自己是受到社会不公正的迫害(生活无望,认为被剥夺了某些特定的东西等),所以要反抗不公,报复这个社会。但是,由于社会里面可能压迫他的那群“权钱”人士都是成年人,他没有能力直接进行报复。他认为“权钱”才能进入的某小学,就选择报复手无寸铁的学生。

将屠刀举向小学生的杀人犯,他选择的前提是:我跟这个社会的某些人群是完全对立的,而那些学生是该人群的一份子,是我对立面的一部分,是我的敌人。于是他可以心安理得地在无辜的幼童身上,宣泄自己对社会的不满。

指导意义

明确好前提,对我们的生活和工作乃至科研都有极强的指导意义。

我们知道,指示具体事物的命题,其“真”与“假”在时间和空间上都带有某种相对性,是相对中的绝对。浓妆艳抹有人认为是美,但也有人见了赶紧逃跑。庄子所言“此亦一是非,彼亦一是非”乃中的之说。爱因斯坦相对论中的命题在牛顿经典力学中就是错的、假的,但在接近光速的空间中却绝对为真。在相当长的时间里,相对论不仅遭到学界蔑视,而且当局也对爱因斯坦以“邪说”罪判“绞决”,使他在追逃中度日。谁料,相对论后来却成为现代物理学的跨界线!

再举一例。“直线外一点能做一条,并且只能做一条直线与其平行”,这是欧几里得几何学中的第五公设。1820年,俄国喀山大学教授罗巴切夫斯基在证明第五公设(承认前四条)的过程中,使用了反证法。但是,在他极为细致深入的推理过程中,得出了一个又一个在直觉上匪夷所思,但在逻辑上毫无矛盾的命题。最后,罗巴切夫斯基得出两个重要的结论:

1、第五公设不能被证明。

2、在新的公理体系中展开的一连串推理,得到了一系列在逻辑上无矛盾的新的定理,并形成了新的理论。这个理论像欧氏几何一样是完善的、严密的几何学。

这是第一个被提出的非欧几何学,人称罗氏几何。从罗氏几何学中,可以得出一个极为重要的、具有普遍意义的结论:逻辑上不矛盾的一些公理都有可能提供一种几何学。这一定程度上启发了黎曼,创立了黎曼几何。

恩格斯说:“只要自然科学在思想着,它的发展形式就是假说。”(《自然辩证法》)仅从这一意义上讲,明确好前提,即使从“假命题”起始的逻辑推理,也为人类思维、为科学研究开辟了广阔的天地。

落实到具体的产品工作中,也有很多前提的例子。以上年某个知名段子为例,某产品提了个需求,APP可以根据用户的手机壳来改变软件主题颜色。研发人员直接表示没有接口,无能为力。产品表示这个你需要做到,你这是不配合。这个段子里面,很明显产品没掌握好前提,可行性的前提。个人以为可行性的前提分为几个层次,第一个是最高层次,世界上现有技术(包含实验室试验中的)能否实现。第二个是中等层次,是否已有商业化方案。第三个,是现有资源,能否实现。如果不能实现,能否简单调整后实现。

这里延展一下,其实产品蛮不讲理的绝大部分时候,都是忽略了前提。如“人家WX都能保证推送服务稳定,我们也一定可以”,对应的就是上述的第三个可行性前提层次。没错,WX可以,但是他打磨了多久。而且国内的ROM都自动将它加入白名单,彻底的忽略了自己内部的现有资源。例如“这个功能很有价值啊,必须加上”,从价值出发是很合理的。但是总体资源有限,你要先有减,才能加。要么替换某个低价值功能,或降低某功能的完善度。要么,和研发讨论细节(不排除部分功能预估有偏差),调低部分功能的工作量。

理论释义

第一部分,定义释义,我们来聊一聊是什么。先从字典上,查看官方的定义。再从三段式推理理论中,知晓大前提和小前提的区别。

字典释义

我们先看下新华字典,最经典的词典,是我们最先接触的词典,也是世界上销量最大的词典。词典中对于该词没有详细的解释,只有个简单的基本解释“作为推理的根据的判断”。然后举例,如在“正义的事业一定胜利,我们的事业是正义的事业,所以我们的事业一定胜利”这个推理中,前两个判断是推理的根据,称为前提。

接下来看看现代汉语词典,关羽现代汉语词典,大家都不会陌生。其在百度百科中的描述是,“学习汉语的一部重要辞书,即从1949年中国当代史为词语基础的释义辞典,1999年开始出版后历经五次修订完善了现代词语的解释,是老少皆宜的汉语学习工具书。”可见,这是最官方权限的字典,对释义的参考作用极大。对于前提共有两个解释,一个是推理中可以推导出一个判断的判断,另一个是事物的先决因素。

三段论

字典上的解释就这么多,但引证解释给了我启发。三段论这种演绎推理的经典理论,含有对前提的定义。不妨师从阿基米德,学习三段论,了解大前提和小前提。

首先来定义下,什么是三段论。简单来说,这是一种,“大前提,小前提,结论”式的推理。我们来举个例子,看看下面的表格。文字上的描述是,所有的偶蹄目动物都是脊椎动物,牛是偶蹄目动物,所以牛是脊椎动物。非常经典的三段论格式,结论是成立的。


三段式有个所谓的公理,可以很好的指导我们判断经典的三段论是否成立。三段论公理:如果一类对象的全部都是什么,那么,它的部分也必然是什么;如果一类对象的全部都不是什么,那么,它的部分也必然不是什么。其中联系大小前提的词项叫中项(M),在前提中出现两次;出现在大前提中,又在结论中做谓项的词项叫大项(P);出现在小前提中,又在结论中做主项的词项叫小项(S)。

错误前提

知道了三段论的定义,也了解了三段论公理。我们来看看,哪些错误的前提,会导致错误的结论。

三个词项。三段论中包含大前提和小前提,前提中包含大中小三个词项。如果出现了第四个,则不符合三段论,无法推出结论。

举个例子:人已经存在几百万年了,而你没有存在几百万年,所以你不是人。这个三段论中,人是大项,几百万年是小项,你是中项。但小前提中的“人”和大前提中的“人”,不是一个概念,违反了“同一律”。用英语来翻一下可能更容易理解,Humans have been there for millions of years, while your body have not existed for millions of years, so you are not a human。一共出现了四个词项“人类,几百万年,你,人体”,中文的省略、特指还是博大精深。

中项周延。中项周延,意味着前提中必须至少出现一次带有“所有”量词的判断。如果一个范畴项被称为是周延(Distribute)的,那么表明这个范畴的所有个体都被涉及到。在陈述如“所有 A 不是 B 就是 C”中,项 A 是周延的,因为集合 A 的所有元素都被指出了。而项 B 和 C 不是周延的,有的 B 和 C 不是 A。如果前提是以“有些”开头的判断,结论也是以“有些”开头的判断,那么补充的前提一定是以“所有”开头的判断。

举个例子:一部分中国人很有钱,北京人是一部分中国人,所以北京人很有钱。这个相信大家都觉得是有问题的,北京人是一部分中国人,但不一定是有钱的那一部分中国人。出现了中项两不周延的问题,无法推导出结论。

大项扩大,小项扩大。这个字面上比较好理解,就是扩大了大项或者小项的范围,得出了错误的结论。

先举个例:薯类都是高产作物,薯类都是杂粮,所以杂粮都是高产作物。薯类是“一种”杂粮,结论却是:“所有”杂粮是高产作物。小前提是“一种”,结论是“所有”,就是“小项扩大”。

又如,律师都是熟悉法务知识的,A公司的管理人员都不是律师,所以A公司的管理人员都不熟悉法务知识。律师是“部分”熟悉法务知识的人,结论却是管理人员不是“全体”熟悉法务知识的人。大前提是“部分”,结论是“全体”,就是“大项扩大”。

前提都为否,结论不必然。大前提、小前提都是否定句,所以不出必然的结论。

举个例子:鸟不是胎生的,这些动物不是鸟,所以这些动物?如果简单的认为,结论是这些动物不是胎生的,就犯了前面讲的大项扩大的问题。鸟是“部分”不是胎生的动物,这些动物不是鸟,但到底是不是胎生的,根据已知信息无法得出确切的结论。

前提有一否,结论必为否。大前提、小前提中有一个是否定句,结论一定是否定形式的。

举个例子:人非草木,哲学家是人,哲学家非草木。

行动方法

大道理讲了很多,来实战一下。首先来看看,我们深恶痛绝的历史问题。光讲理论太枯燥,也难以理解,会以实际例子的形式进行分享总结。

历史问题

起因:某项目反馈小程序端有异常,下午定位是OK的,但无法获取具体地址,影响了正常的业务流程。今天上午是好的,前几天没大规模推广使用也没问题。

经过:获取项目源代码,然后交由研发人员排查。前端同事表示,这个定位是调用服务端的接口,目前调用接口失败。后端同事排查,发现使用的是高德地图的API,该API调用返回错误码。查找官方document,发现是接口调用次数超额。

定性:高德地图API次数不足,通过切换或增加证书解决。目前使用个人证书,配额6000。企业证书为个人证书500倍,300万。根据现有业务场景,企业证书能满足定位请求。

结果:先让项目团队相关人员申请多几个个人证书,优先让业务正常跑。然后联系企业,申请企业证书。

例子很偏技术,但贴合主题。很多时候,我们的思考到上述的结果就结束,开始行动了。我个人认为这种是有用的思考,而不是有效的思考。即便是我们认为思维相对严谨的程序员,在进度压力下通常也会埋雷。为更好的帮助产品落地,我们遇到问题要仔细分析。以上的思考过程,在我认为可以转换为三段论的形式。但是,不是一个,而是两个。

1.      所有调用接口错误都是接口端的问题,项目调用接口错误,所以是接口端的问题

2.      高德的定位接口都是限额的,我们使用的是高德的定位接口,所以我们是被限额的。

我个人认为,两个三段论都是错误的。我来讲一下我的思路,看看有没有道理:

首先讲第二个三段论,乍一眼看过去是完全合理的,其实犯了三个词项的典型错误。高德的接口都是限额的,我们使用的是高德Web服务的定位接口,所以我们是被限额的?这里面包含了两个高德接口,一个是正在使用的Web服务接口,的确是限额的。但是,高德的定位接口包含Web服务、Android、iOS和JS。更重要的是,Android、iOS和JS等前端API,是不限额的。

推翻了第二个三段论,我们再来看看第一个。第一个三段论是最可怕的,在很多企业的研发体系里面,这是公理般的存在。本人认为,这很有甩锅的意思,头痛医头脚痛医脚。目前高德地图封装JS API,分为Web端和微信小程序。那么,是不是关于获取定位对应地址的操作,应该交由小程序端来完成?这么做有三大好处,第一是解决了API限额,第二加快定位速度,最后降低服务器并发(上下班时间统一打卡定位)。所以从根源来说,根本不是服务端的问题,小程序端更新代码重新上架就好了。

再来还原下,为啥会挖下这个坑:

1、 小程序官方没有提供获取精准地址的能力,颗粒度只到县级市\区

2、 高德当初没有微信小程序的SDK,只能使用Web端

3、 原有研发离职,交接混乱,导致这块的预警没做好

我们还是要保持清醒,认识到直接原因和根本原因。不过说实话,一些应该由前端做,由于各种原因放到了服务端的事情,是司空见惯了。

全新问题

起因: 某项目需求调研过程中,项目经理直接找到总部技术平台研发,说要增加小程序端推送的能力。希望研发迅速拟定方案,方便引导客户。

经过: 研发询问具体诉求,项目反馈下订单后,订单审批流和收发货业务流都需要推送给对应人员。研发查看小程序官方文档,了解现有小程序的推送能力

定性: 小程序官方推送触发条件比较严格,无法完整实现客户的诉求。使用WebSocket,则需要保证小程序在前台,作为工具类小程序,这个不太友好。公众号这方面就相对灵活,只要小程序绑定公众号后使用公众号的能力即可。

结果:使用小程序+公众号的组合形式,快速落地。

又是一个偏技术的例子,上面的思考过程看起来合理,但又走在错误的路上了。以上的定性思考过程,简单的转换为三段论的形式:

1.      小程序官方的推送是推送给小程序使用者本人,我们推送是给另一个小程序的使用者,所以我们无法使用小程序官方的推送

2.      工具类小程序都是即用即走基本不在前台,我们是工具类小程序,所以我们基本不在前台。

3.      WebSocket自建的推送需要小程序在前台,此种小程序基本不在前台,所以我们基本不能使用WebSocket的推送

4.      公众号推送没有前台和最近7日内活跃的约束,我们希望推送没有前台和最近7日内活跃的约束,所以公众号的推送适合

这里面错的是第一个三段论,不是无法使用小程序官方的推送。我们知道,技术上最不缺的就是黑科技。官方的限制,很多时候是有漏子可以钻的(Android的保活骚扰、绕过应用市场的热更新等)。比较尴尬的是,直接百度一下,第一页就有相关的方法:

这个方法是讨巧的,还是要满足最近7日内活跃的条件,但在实际业务上是7日内活跃是95%以上的。实际策略就是用户实用小程序的时候,每次提交表单,都偷偷的把推送码存起来。然后需要推送的时候,从这里面取过期日期最早的推送码(超过7日的就废弃掉)。成功实现:A下单,推送给B审批处理。

另外还满足了其他的扩展场景:

1、 无条件的定时自动推送,如最常规的每日上下班打卡推送

2、 满足特殊条件的定时自动推送,如月末自动下属的KPI完成情况

备注:图片来源网络,本人与小打卡无任何关系

当然,公众号的方案也是可行的,只是背离了技术平台的初衷,项目自行落地就行。就算是选择公众号方案,也需要对业务方案重新包装。18年9月,小程序发布了公众号关注组件,就可以更方便的让小程序和公众号进行绑定了。完全可以实用公众号关注组件,以更好的推动项目落地。

总结归纳

下面简单总结下,个人认为的行动方法。分为历史问题和全新问题,都是短句,不做过多的展开解释。

应对历史问题报障,现有思路大体如下:

应对全新问题,现有思路大体如下:

资源评估里面,综合现有项目合同、人力资源和功能上线的时间考虑。

效率评估,是评估这个方案,在业务执行中,会否造成效率下降。

业务线,是要综合其他业务线的一些诉求,非通用平台类的诉求忽略掉。

文\道术

0条评论 添加新讨论

登录后参与讨论
Ctrl+Enter 发表