东张西望

行动优先

本文受到该视频的启发。

我们往往会因怀疑自己采取的方案是否是最佳实践而感到困惑,我们到处寻找资料,发现许各种说法,互相矛盾也是常用的事。作者的解决方案直接了当—— shoot-first mentality,先行动起来。他建议采取大胆的勇敢的决定,先尝试,在行动中发现问题,然后想办法解决。失败让你快速成长,会让你习惯成长中不适感,而这会让你变得更强大。

行动优先,不要害怕失败。行动优先会导致你失败,而这种失败会让你真正记住它们。

关于上一份工作的失败

我的第一份工作找得有点着急,不太慎重地挑了一家创业公司入职,现在我虽然称这份工作是失败的,但并不意味着它没有价值。如果不是这段体验,也不会让我对下一份工作这样慎重。如果不是在那里,我不会意识到创业公司需要的各种问题:如何组建自己的团队,一个团队最重要的是什么等等,所以说环境会强迫你思考这些问题。而意识到这些问题的存在本身就是一种成长。在工作中也会打破我过去的幻想,我以为自己会在空闲时间钻研技术,实际每天下班后根本就没有想动的欲望。另外我在这里也验证了一些基本原则(例如诚实)的重要性,以及亲眼目睹了违背了这些原则的危害。

当然每个人的经历都是独特的,很难说我在体验中得到的教训对别人有什么用处。因为往往我们对失败的认识并不深刻。而在阅读书籍的过程中,人们往往提及的都是最佳实践,而不会去谈失败经验。而知道为什么会失败往往是最珍贵的。王垠称那些缺少失败经验的知识为死知识,芒格则长期实践着收集错误判例和反过来想这两个思考方式。

测试驱动开发循环中的 FAILED

软件开发中,测试驱动开发被看作是一种邪教,这种开发方法要求开发者必须先写代码的测试,再去写代码实现。

有一段时间我对之嗤之以鼻,以为它只是一种靠炒作概念卖书的人想出来的新的花招,现在回想起来,虽然不能完全否定其过度吹捧的嫌疑,但也确有可取之处。

在行动之前给自己设定一个小的、清晰的具体的(写测试用例)预期,然后立刻采取行动(写实现),写完实现后立刻对比预期和行动的结果(执行测试),如果不满足预期,就修改实现。 整个过程是:预期-行动-检查 的循环。而检查这个过程如果扩展来说又有人称之为复盘。

在一些小项目中我应用了该方法,可以确定在编写小规模的项目中测试是相当有效的。

在实现这个方法的过程中,最多看到的测试结果是 FAILED 和 ERROR。可以说测试驱动开发就是主动创建 FAILED 和消灭它的过程。无论是创建还是消灭了 FAILED 都让我一种自己在前进的实感。

那么我想说什么

#反省