1
00:00:00,120 --> 00:00:02,760
今天我们来说一个有趣的话题
2
00:00:04,020 --> 00:00:05,200
“敏捷”的染色
3
00:00:05,210 --> 00:00:10,200
一开始我先说一下
4
00:00:11,240 --> 00:00:12,880
印象很深的一个经历
5
00:00:13,050 --> 00:00:16,940
有一次我评点客户开发人员
6
00:00:16,950 --> 00:00:21,260
提交的工件,评点的时候
7
00:00:21,270 --> 00:00:22,620
顺便批评了他们
8
00:00:23,730 --> 00:00:27,750
一些打着敏捷,实际上就是不思考、偷懒的做法
9
00:00:30,100 --> 00:00:32,130
我评点完了,一位女生就问我
10
00:00:32,140 --> 00:00:35,660
老师,难道希望敏捷一点不好吗
11
00:00:37,580 --> 00:00:40,970
我看得出来,她的表情是很真诚的
12
00:00:41,470 --> 00:00:43,330
她是真的希望这样的
13
00:00:45,890 --> 00:00:48,010
所以你看,一个褒义的口号
14
00:00:48,760 --> 00:00:50,070
它是很难抵挡的
15
00:00:51,750 --> 00:00:53,270
就算你把事情做砸了
16
00:00:54,340 --> 00:00:57,330
但是我的这种初衷是好的
17
00:00:57,340 --> 00:01:00,910
我希望敏捷一点
18
00:01:01,550 --> 00:01:02,500
难道不好吗
19
00:01:03,280 --> 00:01:04,610
我事情虽然做砸了
20
00:01:05,130 --> 00:01:05,500
21
00:01:07,220 --> 00:01:10,490
就像我又抽烟又喝酒又纹身又干嘛
22
00:01:10,890 --> 00:01:12,560
但我还是好女孩
23
00:01:13,700 --> 00:01:15,200
我们开发团队也是一样
24
00:01:15,210 --> 00:01:16,520
我需求做得很烂
25
00:01:17,400 --> 00:01:18,440
我设计做得很烂
26
00:01:18,450 --> 00:01:21,180
但是我特别希望敏捷
27
00:01:21,190 --> 00:01:23,990
你看,褒义词
28
00:01:24,000 --> 00:01:28,060
做口号是非常棒的
29
00:01:28,070 --> 00:01:33,220
帮我们掩盖很多问题的一个做法
1
00:00:01,690 --> 00:00:04,170
从这里,我们就可以看到
2
00:00:04,670 --> 00:00:06,510
有一条这样的创新路线
3
00:00:06,520 --> 00:00:11,990
我们先挑一个褒义词,宣传它
4
00:00:12,710 --> 00:00:15,940
我们发动圈子的能量宣传它
5
00:00:17,050 --> 00:00:18,590
宣传了之后
6
00:00:19,140 --> 00:00:20,540
大家就觉得这个褒义词好
7
00:00:22,290 --> 00:00:24,200
但是你得有内容对不对
8
00:00:25,600 --> 00:00:26,570
内容怎么来的
9
00:00:27,090 --> 00:00:31,300
我们通过染色得来,宣传之后
10
00:00:31,630 --> 00:00:35,230
染色,我们来看敏捷的做法
11
00:00:37,750 --> 00:00:40,920
2001年2月敏捷宣言
12
00:00:41,950 --> 00:00:42,340
发布
13
00:00:43,720 --> 00:00:44,820
好,口号喊出来了
14
00:00:46,650 --> 00:00:51,250
那么在几年之内,它就开始染色了
15
00:00:51,580 --> 00:00:52,520
你看,敏捷这个这个
16
00:00:53,090 --> 00:00:54,840
2001年这样下来
17
00:00:55,230 --> 00:00:56,710
这些都是非常直接的
18
00:00:56,720 --> 00:00:57,930
书名非常直接的
19
00:00:58,840 --> 00:01:01,900
直截了当的,还有很多比较隐蔽的书名
20
00:01:02,300 --> 00:01:05,040
我这里都是挑的比较直接的
21
00:01:05,050 --> 00:01:07,520
而且这些大多数都有中译本
22
00:01:10,130 --> 00:01:12,040
如果你只是说项目管理
23
00:01:12,050 --> 00:01:14,640
说什么团队建设什么还可以
24
00:01:15,170 --> 00:01:18,980
但是你看,它是跟具体的某个技术
25
00:01:18,990 --> 00:01:23,120
Java、web数据库等等
26
00:01:24,620 --> 00:01:25,540
也挂上钩了
27
00:01:27,790 --> 00:01:29,790
染色的面积是非常大的
28
00:01:31,690 --> 00:01:34,650
而且染色一直持续到今天
29
00:01:36,230 --> 00:01:38,250
我们看,最近几年
30
00:01:38,900 --> 00:01:40,460
你看,大数据
31
00:01:40,470 --> 00:01:42,460
你看,有敏捷大数据
32
00:01:44,520 --> 00:01:46,320
人工智能,你看,机器学习
33
00:01:46,330 --> 00:01:48,630
你看,有敏捷机器学习
34
00:01:49,400 --> 00:01:50,520
敏捷人工智能
35
00:01:51,040 --> 00:01:56,530
敏捷AI,万事万物都可以敏捷
36
00:01:56,540 --> 00:01:59,270
都可以用这个褒义词去染色
37
00:02:00,290 --> 00:02:02,200
染完之后就可以变成他的了
38
00:02:04,580 --> 00:02:05,330
那么这个时候
39
00:02:06,430 --> 00:02:07,620
圈子里面的人
40
00:02:07,630 --> 00:02:08,740
需要引用的时候
41
00:02:09,030 --> 00:02:10,780
大家就把引用的范围
42
00:02:11,730 --> 00:02:12,640
就缩小到
43
00:02:13,660 --> 00:02:15,060
已经被敏捷过的
44
00:02:15,840 --> 00:02:17,780
那些文档、文献里面去
45
00:02:19,550 --> 00:02:21,420
相当于建立了一个屏蔽墙
46
00:02:22,670 --> 00:02:24,540
这是我之前批评
47
00:02:24,550 --> 00:02:26,490
这个领域驱动设计的时候
48
00:02:26,500 --> 00:02:27,850
已经说过好几次了
49
00:02:28,370 --> 00:02:29,880
封闭式的引用
1
00:00:01,020 --> 00:00:03,250
其中最典型的就是
2
00:00:03,850 --> 00:00:04,960
Robert C. Martin这个
3
00:00:06,380 --> 00:00:07,710
敏捷软件开发
4
00:00:08,440 --> 00:00:10,270
原则、模式和实践
5
00:00:11,420 --> 00:00:13,280
2003年出版的
6
00:00:15,900 --> 00:00:18,820
这本书里面,他讲了一些面向对象的
7
00:00:18,830 --> 00:00:22,110
设计的思想,一些做法
8
00:00:26,520 --> 00:00:29,080
实际上跟敏捷不敏捷没有关系的
9
00:00:30,730 --> 00:00:32,090
而且很多也不是
10
00:00:32,100 --> 00:00:33,340
Robert C. Martin
11
00:00:33,350 --> 00:00:35,320
提出来的
12
00:00:36,140 --> 00:00:39,510
第二个这些原则是不是非常的基础
13
00:00:39,870 --> 00:00:43,520
很本质,这也是Robert C. Martin说的
14
00:00:44,270 --> 00:00:46,510
但是通过圈子的宣传
15
00:00:47,550 --> 00:00:50,210
就变成了这些是敏捷原则
16
00:00:50,730 --> 00:00:52,990
这些是软件设计的基础
17
00:00:55,510 --> 00:01:01,120
没有证据去论证说这个是本质
18
00:01:01,130 --> 00:01:03,950
而我就受到这种困扰
19
00:01:03,960 --> 00:01:05,240
是很多的
20
00:01:05,700 --> 00:01:08,390
经常有人找我去讲这几个原则
21
00:01:08,400 --> 00:01:10,270
什么OCP、SRP
22
00:01:11,830 --> 00:01:13,430
我说这个不是不可以讲
23
00:01:13,440 --> 00:01:16,630
问题是光讲不够,这个很简单
24
00:01:16,640 --> 00:01:19,720
就是一个泛化(继承)的应用就完了
25
00:01:20,210 --> 00:01:21,480
然后说那么一大堆废话
26
00:01:21,490 --> 00:01:24,610
你还有很多要学的
27
00:01:27,340 --> 00:01:31,670
然后他说,不是说学会这几个原则
28
00:01:31,680 --> 00:01:34,920
不就面向对象设计就有了吗
29
00:01:35,610 --> 00:01:35,860
30
00:01:37,680 --> 00:01:41,650
这是被圈子的宣传给忽悠的
31
00:01:43,880 --> 00:01:45,760
这里面,我们来说染色的问题
32
00:01:45,770 --> 00:01:50,240
你看,这本书,它来源是什么
33
00:01:50,250 --> 00:01:52,480
来源是Robert C Martin
34
00:01:52,490 --> 00:01:56,260
写的一篇文章
35
00:01:56,930 --> 00:02:00,220
2000年的一篇文章
36
00:02:01,580 --> 00:02:05,890
在他自己网站上发布的,一共有几十页
37
00:02:08,180 --> 00:02:10,680
大家可以去下载,搜这个就可以了
38
00:02:11,080 --> 00:02:13,150
搜这个可以下载
39
00:02:13,160 --> 00:02:15,150
它网站现在域名已经没有了
40
00:02:15,160 --> 00:02:18,380
但是网络上还有别的地方有保存的
41
00:02:19,690 --> 00:02:20,960
那么这几十页内容里面
42
00:02:21,270 --> 00:02:25,670
没有一处提到agile,很正常
43
00:02:25,840 --> 00:02:28,490
因为2000年口号还没喊出来
44
00:02:29,780 --> 00:02:32,030
但是也没有一处提到light
45
00:02:32,870 --> 00:02:35,050
lightweight process
46
00:02:35,350 --> 00:02:35,720
或者methodology,没有
47
00:02:42,530 --> 00:02:43,110
也就是说
48
00:02:44,440 --> 00:02:46,680
Robert C. Martin在写这篇文章的时候
49
00:02:47,220 --> 00:02:49,640
他很清楚自己写的内容是什么内容
50
00:02:50,690 --> 00:02:56,300
实际上是面向对象的一些实践的想法
51
00:02:56,930 --> 00:03:01,070
一些归纳,跟什么敏捷过程、轻量过程
52
00:03:01,390 --> 00:03:02,190
没有关系
53
00:03:02,650 --> 00:03:05,950
敏捷的这些过程以前叫什么
54
00:03:06,280 --> 00:03:09,890
轻量过程,一般是叫轻量过程
55
00:03:09,900 --> 00:03:13,400
这还是比较客观的
56
00:03:14,730 --> 00:03:17,330
轻量,就跟我们说一个公司是小公司一样
57
00:03:17,420 --> 00:03:17,810
58
00:03:19,310 --> 00:03:21,150
小公司,这是客观的,为什么
59
00:03:21,420 --> 00:03:22,930
你的营业额
60
00:03:22,940 --> 00:03:24,480
你的注册资本
61
00:03:24,490 --> 00:03:26,730
你的公司的员工数量
62
00:03:28,260 --> 00:03:29,700
说你是小公司,没问题吧
63
00:03:30,900 --> 00:03:31,740
这是客观的
64
00:03:33,640 --> 00:03:35,750
但如果他觉得小公司不好听
65
00:03:35,760 --> 00:03:37,390
他把它改成敏捷公司
66
00:03:38,690 --> 00:03:39,840
那就非常主观了
67
00:03:40,780 --> 00:03:41,200
68
00:03:41,840 --> 00:03:43,030
所以为什么轻量
69
00:03:43,440 --> 00:03:46,230
他们不喜欢,硬要改成敏捷
70
00:03:46,740 --> 00:03:49,140
就是因为这个词的煽动性是不够的
71
00:03:49,900 --> 00:03:52,160
所以必须要有一个比较主观的口号
72
00:03:57,510 --> 00:04:02,880
这篇文章本身没有一处提到这些内容
73
00:04:03,180 --> 00:04:06,960
说明Robert C. Martin他很清楚
74
00:04:07,550 --> 00:04:09,570
这个文章的内容是什么
75
00:04:11,430 --> 00:04:13,900
但是当他写书的时候
76
00:04:14,890 --> 00:04:16,600
2003年写书的时候
77
00:04:17,240 --> 00:04:18,690
他就把这些称为
78
00:04:19,080 --> 00:04:21,710
敏捷软件开发的原则和模式
79
00:04:24,360 --> 00:04:25,950
这个做法就不是很好了
80
00:04:29,310 --> 00:04:30,580
关于Robert C. Martin的
81
00:04:30,590 --> 00:04:32,100
一些其他的做法
82
00:04:32,850 --> 00:04:33,780
也不是很好的做法
83
00:04:33,790 --> 00:04:36,020
我在其他的文章视频里面也提到
84
00:04:36,400 --> 00:04:40,240
故意歪曲某些文章的意思
85
00:04:41,380 --> 00:04:44,070
我之前也在别的地方也说过了
86
00:04:47,850 --> 00:04:51,760
如果这种做法把它滥用的话
87
00:04:52,460 --> 00:04:54,530
比如说,我们设想一个褒义词
88
00:04:55,080 --> 00:04:57,870
我们拿相声里面经常提到的额勒金德
89
00:04:59,430 --> 00:05:01,090
把它应用到数学里面去
90
00:05:01,890 --> 00:05:02,880
那就可以创新了
91
00:05:02,890 --> 00:05:08,480
我就可以先宣传额勒金德怎么好
92
00:05:10,300 --> 00:05:11,170
具体内容怎么办
93
00:05:11,500 --> 00:05:13,250
我把现在的教材
94
00:05:13,980 --> 00:05:15,590
都额勒金德一遍
95
00:05:17,870 --> 00:05:19,770
把它改个名
96
00:05:20,060 --> 00:05:22,170
伪创新的圈子不是喜欢造词吗
97
00:05:22,590 --> 00:05:22,700
98
00:05:22,710 --> 00:05:24,700
我把这里面的词全部造一遍
99
00:05:25,900 --> 00:05:27,590
但是是我额勒金德的
100
00:05:29,790 --> 00:05:31,220
我就得到了创新了