首页 > 其他分享 >做软件的人不被他人忽悠的唯一方法

做软件的人不被他人忽悠的唯一方法

时间:2023-07-28 20:00:47浏览次数:37  
标签:对照组 试点 实践 忽悠 敏捷 软件 他人 团队

做软件的人,不管你是管理者、业务人员、需求分析人员、开发人员、测试人员、运维人员,在IT技术和过程推陈出新和突飞猛进的时代,很容易被人忽悠。你是不是经常发现,出于从众心理,你投入时间和金钱,读书和听课,学习并实践了身边其他人所热捧的新技术和新过程,从设计思维,到敏捷,到精益,到DevOps,到持续交付,到TDD,到DDD,到整洁架构,到基础设施即代码,到混沌工程,到AIGC。学了和用了一圈下来,结果发现,软件质量仍然较差,用户价值仍然较低,软件交付仍然延期。你感觉被人忽悠了。

如何才能不被忽悠?

如何才能不被别人忽悠?方法只有一个,就是***用科学方法自己动手做实验***,来验证书上和大佬所说的技术和过程,能不能提升自己的软件质量和用户价值。

有人会说,我就是一边学技术和过程,一边在实践呀。实践出真知呀。

没错。你肯实践,就能甩开只读书而不动手的人好几条街。但如果只是实践,而不安排没有做这个实践的***对照组***,怎么知道实践新技术和过程后的成效,要好于原来旧的方式,从而让其他人信服?

咱们拿敏捷试点举例子。有几个企业在做敏捷试点的时候,能安排一个不引入任何敏捷实践的团队,做对照组,来验证敏捷实践的实际成效呢?经常是领导只安排一两个团队当引入敏捷实践的“实验组”做“试点”,而不安排对照组团队。做了一段时间后,把试点团队的度量数据整理一下,作为试点成效汇报上去,就开始推广,并不考虑与对照组团队做对比。

有人会说,可以把实验组的试点团队在试点前和试点后的数据进行对比呀。这样说听起来合理,但这样对比有个问题,就是试点团队在试点前,根本就没有度量试点期间需要度量的指标。为了营造试点后良好的成效,此时经常会靠拍脑袋,把试点前的数据写得低一些,让试点的成效皆大欢喜。

但此时,如果实际成效与试点前相比,几乎持平,甚至更差,一般就没有人敢仗义执言了。此时,团队成员心里,都觉得自己被忽悠了。

还有人会说,找个与试点团队相似的团队,作为对照组,太麻烦了。可以不设置对照组,而在试点团队结束试点后,找其中的团队成员访谈一下,问问他们是否觉得敏捷实践有帮助,就行了。

这个方法虽然简单,但其中隐藏着两个很大的问题。第一,团队成员在访谈中,出于社会情境的压力,在从众心理的驱使下,只会说敏捷实践的好话。毕竟领导要求大家支持敏捷试点嘛。第二,访谈的结果只能揭示相关性,而无法揭示因果关系。我们知道,两个事物相关,并不等同于它们之间存在因果关系。相关性不等同于因果性。要想***揭示因果关系,只能靠有对照组的科学实验***。

图:要想揭示因果关系,只能靠有对照组的科学实验 ::: hljs-center

图:要想揭示因果关系,只能靠有对照组的科学实验

:::

为什么人们都热衷于寻找因果关系?因为只有这样,才能让人产生***可感知的控制感***,进而能满足人天生具有的***自主作出选择的需求***。

如何做好科学实验?

如何才能做好有对照组的科学实验?有如下6步。

1 基于观察

2 问出问题

3 形成可验证的解释性假说

4 基于假说做出预测

5 设计并执行有对照组的实验,验证预测

6 根据实验结果可回到第3步,不断迭代优化假说或预测

用科学方法做实验,不仅可以用于验证敏捷是不是在忽悠人,还可以用于验证你在书中读到的技术和过程是不是在忽悠人。

假设你在书中读到了这么一段:Docker利用chroot这个Unix系统调用,来为每个进程分配各自的根目录,用来隔离这些进程。

该如何用上面6步,设计一个科学实验,验证一下这段文字是不是在忽悠人?

1 基于观察。

我读到“Docker利用chroot这个Unix系统调用,来为每个进程分配各自的根目录,用来隔离这些进程。”

2 问出问题。

我可以问:“运行在电脑上的docker容器,其中的文件系统,与其宿主电脑上的文件系统,是隔离的吗?”

3 形成可验证的解释性假说。

我可以这样提出解释性假说:“Docker利用chroot这个Unix系统调用,为每个进程单独分配一个根目录,用来保存这个进程的所有文件,从而实现进程之间的隔离。”

4 基于假说做出预测。

我可以这样做出预测:“当我在电脑上运行一个Docker容器后,容器内特定文件夹中的特定文件内容,应该与宿主电脑上相同文件夹的相同文件中的内容不同。因为这样才能体现隔离性。”

5 设计并执行有对照组的实验,验证预测。

我可以将宿主电脑Ubuntu系统,当作一个对照组,并执行下面的命令,查看文件/etc/issue的第一行,获取操作系统版本号信息。

head -n1 /etc/issue

我了解到宿主电脑的Ubuntu版本是:

Ubuntu 22.04.2 LTS \n \l

然后我在宿主电脑上通过以下命令,运行一个Docker容器,并把它当作实验组。

docker run --name firstcontainer -ti --rm alpine:3.11 /bin/sh

这行命令会根据alpine 3.11镜像,运行一个名为firstcontainer的容器。并且能在命令执行后,打开一个命令行界面,用来操作容器内的文件。

然后我在容器内的命令行界面,执行与宿主机同样的命令,来查看容器的操作系统版本号。

head -n1 /etc/issue

命令运行结果告诉我,容器内的Linux系统版本是:

Welcome to Alpine Linux 3.11

6 根据实验结果可回到第3步,不断迭代优化假说或预测。

实验结果表明,对于同样目录同样文件名的/etc/issue文件的第一行,对照组和实验组的结果不一致。这支持了第3步的假说。我可以视支持的情况,不断迭代和优化实验。

总结一下。读书***虽然能很快得到结论,但***难以说明***结论一定适用于你,且***难以揭示***结论背后的原因。访谈***只能揭示相关性,无法揭示因果性。相关性不等同于因果性。揭示因果性的***唯一方法,就是***用科学方法做实验。你用科学方法,做具备对照组的实验,来验证书上或大佬所说的结论,是否名副其实。这才是做软件的人,不被他人忽悠的唯一方法。


如果觉得本文对你有帮助,欢迎***点赞***,点击***在读***,并***转发***给其他经常受他人忽悠之害的小伙伴。你觉得做软件的人,要想不被忽悠,还有什么其他好办法你还希望我聊有关做软件的其他什么新话题?欢迎在评论区***留言***。我会仔细阅读每一条留言。期待听到你的声音。

企业生意蒸蒸日上,软件系统稳定运行。你所阅读的文章,来自**“吾真本说混沌工程”**知乎专栏。

标签:对照组,试点,实践,忽悠,敏捷,软件,他人,团队
From: https://blog.51cto.com/u_16163674/6886747

相关文章

  • 软件测试|Python科学计算神器numpy教程(十)
    numpy字符串处理简介NumPy是一个功能强大的Python库,主要用于科学计算和数据处理。除了处理数值数据外,NumPy还提供了一些强大的字符串处理功能。本文将介绍NumPy中常用的字符串处理函数,包括字符串拼接、切片、查找、替换等操作,展示NumPy在字符串处理方面的优势。字符串拼接NumPy提供......
  • 软件测试|Python科学计算神器numpy教程(十一)
    NumPy数学函数:强大的数值计算工具简介NumPy是Python中广受欢迎的科学计算库,提供了丰富的数学函数,可用于处理数组和矩阵中的数值数据。这些数学函数包含了许多常见的数学运算,如三角函数、指数函数、对数函数、统计函数等。本文将介绍NumPy中一些常用的数学函数及其用法,展示NumPy在数......
  • 软件测试|如何更新已经安装的Python第三方库
    简介当我们使用Python开发项目时,经常会依赖于各种第三方库来扩展功能或提高效率。这些库经常会发布新的版本,包含了修复漏洞、增加新特性或改进性能等更新。因此,及时更新和升级你的第三方库是很重要的。在Python中,可以使用pip工具来管理和更新这些库。在本文中,将介绍如何使用pip来更......
  • 软件测试|SQL AND和OR运算符解析
    简介在SQL(StructuredQueryLanguage)中,AND和OR是两个常用的逻辑运算符。它们用于组合条件来构建复杂的查询语句,帮助我们更精确地过滤和检索数据。本文将详细介绍SQL中的AND和OR运算符,包括其语法、用法以及使用时的一些建议。SQL是一种专门用于管理和操作关系型数据库的语言,而AND和O......
  • 腾讯云 CODING × K+ 峰会再次携手开启软件行业新风向
    点击链接了解详情近日,K+全球软件研发行业创新峰会在北京成功举办。腾讯云CODING作为云原生工具领跑者受邀参与此次峰会。会议现场,展台打卡火爆、演讲干货满满,为观众带来高质量的行业内容。腾讯云全链路高效开发上云实践‍技术创新分论坛上,腾讯云CloudStudio产品总监......
  • 早教软件app开发有哪些关键步骤?
    随着科技的不断进步,越来越多的家长开始通过手机和平板电脑来寻找高质量的早教资源。因此,开发一款受欢迎的早教软件app成为了一个非常有前景的项目。但是,要想在竞争激烈的app市场中脱颖而出并取得成功,并不是一件简单的事情。下面,广州名锐讯动将介绍几个早教软件app开发的关键步骤,帮......
  • 【软件测试】简易挡板测试——Mock服务搭建及使用方法
    1. Mock介绍1.1Mock简介Mock测试也被称为替代测试与挡板测试,Mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。这个虚拟的对象就是Mock对象。Mock对象就是真实对象在调试期间的代替品。形如上图,服务B就可以用Mo......
  • 网页设计软件大全,推荐这10款好用的网页设计软件
    网页设计软件的轻量化和在线协作已成为当前网页制作软件的发展趋势。网页设计并不容易,易于使用的网页UI设计软件更难找到。随着网络的快速发展,网站迅速崛起,网页设计也很受欢迎。网页设计软件即时设计是一种在线协作设计工具,深受国内外设计师的喜爱。那么,流行的网页制作软件是什么......
  • 中国软件生态的发展
    道德的滑坡如果说中国经济的发展导致社会层次的分化,思想道德品质的综合下降成为必然趋势那么彭宇案的法官王浩是一个助推剂,是这个原因的最好背锅理由每个国家都会有这个过程,美国基础人民的失智,信仰个人英雄主义软件生态的发展迟缓10年前就在做大屏展示,现在依然在做大量的......
  • 顺风车系统小程序软件开发
      顺风车系统小程序是一款方便快捷的出行工具,它的开发旨在解决用户出行难题,提高出行效率。该小程序通过整合地图、大数据技术以及社交网络等技术手段,实现了用户出行需求的精准匹配,同时也提供了安全可靠的的信息保障。  首先,顺风车系统小程序通过整合地图技术,实现了用户出......