今天来聊聊关于《注重时效的哲学》第二部分,在软件开发阶段,我们常常需要辩证的看待一系列问题,充分去理解当前的工作语境,试图去思考如何让自己设计的软件程序变得更好。但有时候越想接近完美,常常却涉及到各种权衡,于是就设计“足够好的软件”展开发散性的思考。当然,我们需要拥有广泛的知识和经验基础作为前提条件,学习是一个持续不断的过程,在“你的知识资产”中,开始讨论一些策略,定期为你的知识资产投资,开足马力把握每一次学习的机会。学会批判的思考,批判地分析你读到的和听到的。最后,我们每天需要花费大量的时间与他人打交道,在“交流”这一部分告诉我们做到高效的沟通是有迹可循的。
足够好的软件对于足够好的软件,我们首先要思考为什么是足够好,而不是完美?短语“足够好”并非意味着代码有缺陷或不规范。我们要理解所有系统都必须满足其用户的需求,才可以取得成功。作为开发者,我们当然可以在很多层面去试图让自己设计的软件变得更加可维护和可扩展。换个角度来说,足够好是站在什么样的立场上的表达?面向的对象是谁?对于足够好的软件,谁提出的体验建议上更有意义?某些时候,我们一直在·宣扬产品功能的丰富多样,是否应该考虑给用户以机会,让他们参与决定你所制作的东西何时已足够好呢。
让质量成为需求问题,我们很多时候站在开发者的角度去构想用户可能需要这些功能,用户可能更关心这些信息。但实际上并不全是,我们常常会处在需要进行权衡的情形中,为了达到预先设定的里程碑,我们不断削减需求,仅仅是为了在最后期限顺利交付。但是这个时候产生的软件质量问题却常常忽略了。对于里程碑的设定,一定要清晰明确和可度量,我们可以分批交付软件版本,虽然起初不够好,但是这个时候给用户某样东西,让他们及早使用起来,或许他们的反馈会把我们引向更好的解决方案中去。
有时候编程就像是绘画,我们从构建一个空白的画布和某些基本材料开始,通过知识、艺术和技艺的结合去确定用前者做些什么,不断的实现和修正自己的构想。我们常常会扔掉画布,重新开始,如果这个时候不懂得何时止步,所有的辛苦劳作都会遭到破坏。没有完美的东西,要懂得何时止步,不要因为过度修饰和过于求精而毁损完好的程序,它也许不完美,但是不用担心,它不可能完美。
你的知识资产我们喜欢把程序员所知道的关于计算技术和他们所工作的应用领域的全部事实、以及他们的所有经验视为他们的知识资产。书中说管理知识资产和管理金融资产非常相似,那么如何经营好自己的资产呢?那么很重要的一点就是定期投资,就像金融投资一样,即使投资量很小,但是养成一个好习惯以后,这个总量就会有一个质的变化。
其次就是多元化,技术的革新很快,今天的热门技术明天就可能变得近乎无用,或至少是不在抢手了。前端技术JQ那个辉煌的年代,如今看来暗淡了不少,随着前沿框架如雨后春笋般出来,那些曾经风靡一时的技术,都会慢慢淡出开发者的实现。所以知识资产的多元化显得尤为重要。换句话说,我们掌握的技术越多,就越能进行更好的调整,赶上变化。我们需要知道目前所用的特定技术的各种特性,应对技术的革新,我们就会有多元化的选择。
对于知识资产的增加,我们一定要有清晰的规划和目标。文中给了一些有用的建议。
每年至少学习一种新语言。不同语言会以不同的方式解决相同的问题,通过学习若干不同的方法,可以帮助我们扩宽自己的思维,避免墨守成规。每季度阅读一本技术书籍。一旦养成习惯,就一个月读一本书。慢慢地拓宽涉猎范围,阅读一些与你的项目无关的书籍。阅读非技术书籍。跳出固有的思维模式,换一种角度去思考问题。上课。推荐中国大学MOCC,这里有很多精品课程值得学习和思考。参加本地用户组织。可以加入一些感兴趣的社群,和他人分享自己的学习心得。试验不同的环境。如果平时在MAC环境下使用IDE编程,我们可以尝试体验下使用VIM/TXT跟上潮流。阅读一些前沿热门的技术文章,看看最近都有哪些是值得