我们反驳的是什么

Page content

开始今天的话题之前,先讲一点题外话。用面向对象的方法和大家介绍一下类的设计。

面向对象类图设计

类图设计

声明:由于手头没有合适的工具,所画的类图并不标准,但表达的意思都在图里了。

简单介绍一下这个类图:如上图所示,一共有两个接口,分别为Animal(动物)和Plant(植物);动物这个接口有3个实现类,分别为Dog,Cat和Tiger,而植物这个接口有2个实现类,分别为Tree和Grass。这里省略了接口和类的内部定义。

假设现在有一个问题是,我们觉得有点热,想要凉快一点。针对这个问题,Dog类可能不会有什么好办法(假设狗真的无法解决这个问题)。不过有人发现Tree可以很好的解决这个问题。

那么我们能否把Tree(树)叫做动物呢?

显然不可以!动物就是动物,植物就是植物。 狗也可能有办法让我们凉快一点,不过确实不如树提供树荫这个方案更好。但这无法改变狗是动物而树是植物,这两个概念!

隐喻

第一节提到的类图,其实是一个比喻。现在我们换一下类图中的几个概念。比如

  • 敏捷替换动物
  • Scrum替换狗
  • 心理学替换植物
  • 催眠替换树

现在假设某个组织内采用Scrum效果甚微(暂且不讨论是如何采用的),而恰巧催眠这种方法较好的激活了个人意愿,从而改变了组织。那么这种情况下,催眠能不能叫做Scrum?或者催眠能不能叫做敏捷?

显然不可以!Scrum就是Scrum,催眠就是催眠!敏捷就是敏捷,心理学就是心理学!这是两个不同的概念。

我们反驳的是什么

上面两节里面讨论的概念,来源于最近敏捷社区里面的热议,从而也给我写这篇文章的灵感。

社区里面热议的焦点,主要集中于敏捷教练不同意“催眠是敏捷”。

那么大家反驳的到底是什么呢? 是敏捷社区不接纳新事物、新想法么?以我这几年在社区的经验,答案是否定的。

大家真正反驳的是什么? 如果我们仔细回看一下就会发现,这里面有一个非常明显的概念混淆,即催眠是敏捷。这是大家不能接受的。

敬畏知识

最后引用一位朋友的话,作为最后一节内容:

敬畏知识。

为什么要敬畏知识

知识是不断创造并积累的。我们需要敬畏知识有两大原因:

  • 尊重概念的提出者(知识的源头)
  • 不会误导他人(传播知识)

很显然,所有的概念都不是完美的,都会有相应的适用场景和改进的空间。那么如果概念有缺陷我该怎么办?我的做法是会找到概念提出者(或者最接近的人)进行讨论,交换彼此的想法。

如果我擅自在原概念上加入其它体系的知识并传播,就是在误导他人。这是作为知识工作者不应该有的态度。

如何敬畏知识

想要做到敬畏知识,有两个小窍门:

  • 引用原概念,然后发表自己的观点
  • 创建新概念,在原概念启发后可以有自己的知识体系

比如敏捷已经有敏捷宣言,那么我不会去修改敏捷宣言。而有可能创建新的宝宝说

对于今天的分享,您有不同观点?欢迎回复留言讨论。