IT行业从业23年和创业14年感悟(作者:春哥)
今年的变化还真是太多了,一个接着一个的。最近也跟很多朋友交流聊天,有一些思考和感悟,和大家分享一下。
算起来我接触IT行业有23年,创业也有14年了。我的专业是汉语言文学,很多朋友会惊诧于我的文科生背景来做IT行业。我就开玩笑地说,其实都是语言,无外乎一个是中文这种自然语言,一个是计算机编程语言。创业前学习工作,主要是跟计算机打交道,创业后,还要跟人打交道。这两件事情其实是相通的,我是一直把计算机科学当作管理科学来对待的,这会产生很多有意思的视角。
计算机世界我们称之为数字世界,它其实是对我们现实世界的映射。计算机世界里面的每个解决问题的方案,我们在现实世界里面都可以找到对应的来源。
比如计算机世界里面的分层抽象、定义标准,然后通过接口来实现各个不同层级硬件和软件的调用、通讯,最终完成了全世界范围内的数字世界。这种治理方式和人类社会的治理结构也是相通的。从国家角度来讲,通过省市县区镇乡村这样的行政结构,可以完成社会治理这样复杂无比的任务。从行业角度来讲,会有各种各样的标准,来完成跨国跨企业之间的协作。人类借此可以生产出复杂无比的产品。
再比如,某个应用程序如果遇到了性能问题,我们会通过缓存机制进行加速。这就是我们常说的通过空间换时间。但引入了缓存机制之后,就会带来新的问题,比如缓存的存储策略、更新机制、同步机制等等。这些反应到程序里面会让逻辑变复杂,产生很多的Bug。这就特别像现实世界中我们要去完成某一个任务,发现单个人无法完成时,就会通过分角色协作完成。但分角色之后,就会带来协作上的挑战。如果协作问题无法解决,就达不到1 + 1 > 2的效果,反而会有负面影响。
现实世界总是充满了各种的矛盾、冲突和变化,所有的结构都在不断地变化。结构变化之后,对应的管理解决方案就会随之变化。而所有的解决方案都是不完美的。也许我们站在某一个角度来看是OK的,但换个角度来看就会有问题。所以人类的世界才充满了那么多的分裂。计算机世界相对来讲会好一些,但也摆脱不了人类的影响。从底层硬件到操作系统、基础软件,再到应用层软件,越靠近应用层,受人的影响越大。应用层的需求就天天变化,所以计算机世界里面演变最快的就是应用层的软件。其中比较典型的代表就是浏览器——要能兼容各种各样的网页应用,还要承载越来越强大的交互要求,比如火狐浏览器就已经迭代到了100多个版本。所以很多技术大牛更喜欢做底层软件和基础软件的开发,因为跟计算机打交道还是很容易的。
计算机科学的发展,让人类的生活变得越来越方便的同时,也进一步推动人类社会变得更加复杂。所以所有的系统最后都会变成屎山。现在计算机世界又迭代出来了GPT。大家期望GPT可以帮助程序员更好地写程序,我觉得这只是美好的幻想。因为计算机世界是人类世界的映射,人类世界的复杂度不消失,计算机世界的复杂度就不会消失。局部优化的代价是让其他地方变得更加复杂。现在的人类社会就会更多元化,每个小群体,甚至是每一个个体都有自己的认知和诉求。对于一个组织来讲,如何最大程度上平衡兼顾每个群体或者个体的诉求和利益,就像在踩钢丝绳或者空中抛球,一个错误就会产生巨大的影响。
计算机世界为了对抗这些挑战和复杂度,目前有效的策略是各种标准化加上人的灵活性:标准化的管理方法、框架、流程,各种架构设计,各种工程上的规范要求,这些都是在做标准化的事情;人的灵活性则通过个人能力的提升、开放性的文化、鼓励互动交流等措施来达成。大家现在耳熟能详的敏捷开发、精益、DevOps、看板等等,就是在解决这些问题。但客观讲,这些问题解决得还是不够好,我们仍然有各种各样的挑战。每一个架构体系的改动,都会引入新的问题。每一个管理方法的变革,同样也会带来新的问题。比如最近互联网大厂的频繁宕机,就是技术和管理复杂到一定程度的必然结果。
从现实世界角度来讲,管理这些变化、冲突,最终还是需要文化的力量,需要尊重,需要包容。所以中国传统文化是非常了不起的。我们现在遇到的各种问题,找来找去,我们还是要从传统文化里面来寻求解决方案。
- 敬畏自然,敬畏人性,敬畏万事万物的复杂性;
- 尊重事物客观运行的规律,尊重每个个体的尊严和诉求;
- 谨慎决策,谋定而后动,凡事需要做架构,做设计,理性思考,果断取舍;
- 保持乐观,保持坚定,不受一时得失影响。