一种可以衡量事物的指标-快和好

在生活中我们会遇到各种不同的事物, 比如一辆汽车, 一部电影, 一本书, 一个技术, 一个大型项目, 一家公司, 这些事物都是处于不断的发展当中, 并且有着自己的阶段性形态或者终极形态. 有没有一种简单的方法来衡量一个事物?
这里有两个指标可以衡量一个事物

这里的好意味着正确的结果, 高的质量, 一个事物好到极致就是一件艺术品. 所以好最基本的要求, 就是一个事物的结果至少是对的。 另外好是一个主观性比较强的指标.

  • 一段代码易懂而且没有Bug, 容易扩展, 耐操, 那可以说这段代码是好的代码.
  • 一个框架使用起来简单,没有侵入性, 遇到问题社区里有相应的解决方案, 可以说这是一个好的框架.
  • 好在架构层面可以理解为高可用,可扩展
  • 一个产品解决了用户的痛点问题, 提升了用户流量, 那么这是一个好的产品.
  • 一个组织有愿景, 始终以正确的方式在做正确的事情, 那么这是一个好的组织

快是指限定时间内完成某件事情的度量, 这里是一个独立的维度.

人类社会发展过程当中, 隐含了两个发展因素

  • 能量。从钻木取火, 到蒸汽机, 到核能,无疑让事物变的越来越快。
  • 信息。 从甲骨文,羊皮卷, 到印刷术, 再到如今的电脑, 信息传播的速度越来越快。但人脑始终没跟上信息爆炸的速度。
    快会衍生出下面几个指标:
    • 以前一个小时可以完成一件事情, 现在做事情快了之后, 一个小时可以完成两件事情, 相应的产出就变多了.
    • 以前一个小时可以完成一件事情, 现在做事情快了之后, 那么完成一件事情只需要半个小时, 就是时间成本降低了.

具体的一些例子

  • 快在架构层面可以理解为高性能

快和好

快和好是一对矛盾体,快和好衍生出的另外一个指标就是“成本/收益”, 也可以称作为”性价比“。
一个完美的组织应当有正确的目标, 然后以正确而且快速的方式去实现这个目标.
但很显然, 现实不是如此.
一个创业公司, 做事情讲究的是快, 快速试错, 快速获得反馈, 然后快速调整. 从代码的角度来看, 命名是不是优雅可读? 不重要, 代码需要可扩展性么? 不重要.一顿操作猛如虎, 简单的说, 就是“猛快糙”.
一个成熟的公司, 还是拿写代码来说,写代码的时候要考虑到各种各样的情况, 比如以后别人接手你的代码,比人能看懂么? 这个问题可以抽象到什么程度?
想起一个伦敦的同事, 偶尔会在群里分享范畴论, 这玩意就是数学领域的知识, 也就是他会尝试去了解数学领域的知识, 在我看来不太实用, 因为大多数开发者是做工程的, 不是做科学的. 如果这个同事去创业公司干活, 估计会很不适应.

总结

一个人或者一个组织很难同时做到快和好.
一个系统追求的是“成本/收益”最大化,也某些场合可以理解为期望值最大化。
或者如果想做到快和好, 就要去合理的定义快和好, 这是一种平衡, 可以用三适原则里的适度来解释. 就拿一个组织来说, 可以尝试着问如下问题:

  • 代码能跑起来是不是意味着好?
  • 框架能用是不是意味着好? 如果能用, 那框架好用么?用起来舒服吗?
  • 一项任务完成之后, 时间有记录么? 平均时间是多少?

这些问题如何能被正确的回答, 每个组织内部就会对好和快有一种感性和直觉的认识.