@Lenciel

血瓶、卷轴及独立自由的生活

群里看到一句话:

人与人之间相互束缚、依存的关系既是不健全的也是不自然的,甚至会让人感到疲惫…

关于这样的道理还有很多。主旨是说,人应该少点儿牵挂,接受关系和事物来去如风,才能获得一种独立自由的生活。

我一直不太同意这类想法。

人是社会性动物。独立,也还是在和周围人的联结中建立的,在依赖别人的基础上发生的。没有依赖了无牵挂不叫「独立」叫「孤立」,是一种不安全的体验:孤立的人不敢追求、不敢探索。因为他们生怕一朝跌落,会再也无法恢复。

独立自主的初衷,是实现更勇敢、更自由的生活。在追求它的过程中,有其他人提供支撑,并不是牵绊,更像是血瓶和卷轴。

正好,因为项目的原因,最近在重新玩暗黑破坏神。

大学的时候我玩这个游戏,会囤积很多的物资,以备将来关键时刻再使用,于是背包里装满了它们。

类似的,生活里面的一些关系和资源,我年轻的时候也很倾向于把它们囤起来,在有「真正重要的事情」时才动用。

这次玩的时候我发现,药水、卷轴、符文、宝石,在恰当的时候使用它们,让游戏变得好玩多了。

类似的,生活里面的关系和资源,我也发现,使用它们并不是消耗「一次性的资产」。

大部分关系和资源只有使用了,才会有互动。只有互动了,才会有你也能为对方做点儿什么的机会。

所以:

  • 独立不是孤立。人在社会中,特别是做事的年纪,不要追求过得多么无牵无挂。靠谱的关系就是前进道路上的卷轴和血瓶;
  • 卷轴和血瓶不要囤积,要大胆用。只要保持一颗同理心,多看看自己能为对方也做点儿什么,它们没那么容易消耗完,反而会因为使用变得牢固;

Why most complex systems failed

本周又是顾问工作比较多的一周,看到的很多问题都让我觉得非常熟悉。

同时,客户非常想要一个从长计议,全新设计的整体架构,解决现有问题的同时,为领先行业做好准备。

这些需求和目标也是,非常熟悉。

我记得有次问涛哥,我们俩加起来看了做了这么多项目,有没有哪个是架构上自己满意的?

这个问题很尴尬。但凡有点工作经历的同学应该都会发现,除开自己那些几千行几万行的 side project,大部分公司里真正的项目,干一段时间之后架构就被腐蚀了。

这是因为复杂系统本身就由很多因素来决定,架构经常让位或者说服务于以下因素:

  • 时间:良好架构带来的收益,只会在有较长生命周期的项目中得到体现,初始阶段,特别是面对竞争的情况下,更重要的往往是让项目得以存活的上线时间;
  • 成本:对架构的投入有很多不会带来立即的回报。能正确权衡成本和架构质量的程序员为什么稀缺就是因为他们可以根据业务的需要做恰当的投入;
  • 可见度:跟系统显性功能和产品界面相关的工作比,架构方面的工作可见度差。甚至有些组织里会出现,架构越差,线上事故越多,老板越觉得团队「很忙碌解决了很多问题」;
  • 经验与技能:即使一个团队有足够的时间和成本,也愿意投入去做好架构,它的能力也可能不到。架构受实施它的组织所局限,在很多企业里面非常明显;
  • 复杂度与变革阻力:架构受现实复杂度的影响,一方面是问题本身的复杂度(Brooks 说的本质的复杂性),一方面是组织的结构往往决定了系统要素的边界(康威定律)。同时,架构在设计上又面向未来的变化,这就增加了更多变量,因为事情的发展往往和我们想象的不一样;

最近我在研究九龙城寨为啥可以住进去那么多人(在其鼎盛时期,每平方米约有 1.3 人,是纽约市居住密度的 115 倍多,马尼拉的 29 倍多,而马尼拉是世界上公认的人口最稠密的城市),突然有一些感想。

这种棚户区看上去很糟糕,但是在世界每个角落都很有生命力的存在着,它做对了什么?

它通常使用廉价而且「接口」简单的材料:塑料布,石棉瓦,不需要建筑工人,居民自己就可以搭建;

每个居住单元建造维护使用到风火水电,都是居住者自己负责,居住者很少关注基础设施,可以解决遇到的相关问题;

没有人进行整体规划或监管。有过剩劳动力的,发展好的人户,自行扩张边界。

太多数系统只不过是棚户区:

对工具和基础设施的投入往往不足,库和框架要么原始要么杂乱;

系统的各个部分不受控制地增长,并且因为缺乏整体设计和管控,系统某一部分中的问题侵蚀和污染相邻部分;

上线截止日期像台风一样迫近,优雅的架构永远没时间去思考和搭建;

如果我们的很多从业者面对现实,也许可以明白,系统设计只有一个核心目标,就是在预算范围内按时保质交付高质量的软件

因此,我往往首先关注特性和功能,然后关注架构和性能。

与此同时,还有一个附带的,需要时时关注的暗坑是组织。

对于较大的项目,文化、流程、边界、资源分配问题可能会压倒工具、语言和架构等技术问题。

就像构建复杂的系统比构建简单的系统更容易一样,复杂的组织也比简单的组织常见得多。

以上。