代码之外,也有解决方案
软件只是达到目的的手段这基本和上一条表达的是同一个意思。软件只是手段,只是解决方案,而不是目的。我们要意识到我们的工作始终是在交付价值(用户价值、商业价值),而且要内化这一点。这样,我们看待问题的视角就会不同,就会建立更全面的视角,从而会发现更多的解决问题的方案,也可能发现那个最适合的“工具”,可能不是软件。
站在更高的视角看待问题,软件不是目的
有时必须停止磨刀,直接开始每个人工作习惯不同。有的人会单刀直入,直接开始编码。而有些人则喜欢先做研究分析,并陷入其中。经验告诉我们,走极端总是不好的。代码极具特殊性,让我们可以先从一个小而丑的实现开始,逐步迭代到更好的解决方案。而常常在开始动手后,很多问题就自然而然地冒出来了,就会对问题有更深的了解。所以,写代码,我们可以稍作规划,即刻开始,逐步迭代。
逐步迭代到更好
设计不能脱离技术长时间没有编写代码,将不了解整个代码生态系统,不知道哪些是可能的,哪些又是好用的,除了解决最简单的问题外,不能为所有问题给出最为合理的解决方案。所以,架构师也需要跟上开发生态,不写代码的架构师,不是好架构师,不了解技术的产品经理,不是好产品经理。
技术是核心要素
每个系统最终都会很糟糕,我们要做的就是克服它大家一定听过熵增原理吧,在没有外部能量让其有序的情况下,封闭系统会越来越趋向于混乱。“世界上只有两种语言:人们抱怨的语言和没有人使用的语言”。软件系统也是这样,侯门一入深似海,业务在发展,不会有一直“正确”的架构,永远有需要偿还的技术债务,永远不会有设计完美的界面,而测试速度也总是跟不上需要。但这不是我们让事情放任自流的借口,而是告诉我们,没有最好,只有更好,不要过度追求优雅和完美,而是通过努力持续改进,来建设一个“宜居”的系统,让团队成员在其中工作,并持续地交付价值。