复杂与边界
最近在翻阅软件工程相关的书籍的时候,偶然看到一句话:软件设计与开发的核心就在于——控制复杂度。仔细想来,我们所学习的,所应用的大部分的模式、定律、规范、经验技巧,最终的目的就是解决复杂度的问题,即便是无法解决,我们也需要尝试着去控制复杂度。
复杂的、混沌的世界是真实且客观的,但人类却是极度自私的,渴求着以自我为中心的世界。当前者和后者相互交织,便诞生了无数的故事。本性驱使我们寻求稳定的住所,温暖的火炉,可口的食物,性感的伴侣,安稳却精彩的一生,但是客观的世界不会以人的某些意志而改变自然规律,进而我们尝试寻求方法,开辟未知的道路。
我们需要科学技术来支持理论的计算、可复现的实验来得出一切我们能够探索到的珍贵的“规律”,利用这些规律的组合与控制,我们得到了想要的,以人类为中心的世界。在这整个过程中,自然的宇宙对我们而言,依然是冰冷且无情的,而我们所构建的,自诩是规律且人性的。所以可以看到自私和控制欲,似乎是我们尝试“改造”世界,做出这么多努力的根本动力。这种动力,最终为我们带来了规则和制度。
我所能看到的软件也是如此,过度的自由的设计,带来的种种缺陷会让参与者深陷焦虑,这种焦虑来源于未知的恐惧,无法控制、无法把握的情况,无法预知、无法复现的变量。所以有时候,需要警惕自由,警惕它带来的复杂与未知。我们尽可能地想要隐藏这些复杂度,将它们拆解、分散在一层又一层的模型分层中,用大量的经验设计和固定范式,最终转换成一个个理想且纯洁的接口。而这些接口也都尽可能地控制在人类能够接受和理解的范畴之内。富有结构和符合某些工程原理的设计暂时性的掩盖了现实世界的混沌与不确定性,给人以舒适与安稳。而在这一切的技巧中,边界感能给人以最大的安心与最大的懒惰,边界给了一切不确定以上下界,让我们清楚的认知到未知的边缘究竟是什么,一旦我们认识到了边界,那么边界以内的事情,就可以交给时间来慢慢解决。
所以,以上总的来说,焦虑来源于未知与复杂,安稳来源于规则与边界。但凡事都无绝对,当规则愈发完善,流程逐渐定性,未知产生的创造力与勇气将会渐渐的消磨在日复一日的劳作之中,丧失了探索混沌的勇气,也就失去了对抗软件(或者说现实)的腐烂的武器。