郑晔
https://time.geekbang.org/column/intro/148
找到一个合适(适合自己)的平台,坚持Coding, 坚持思考,十年后,便会与众不同。
郑晔:我个人对于软件开发的理解是,从产生一个想法,到这个想法得到验证的全过程。很多人说起敏捷,更多地想到的是,TDD、CI、结对等技术实践。但实际上,这些实践只是开发过程的一部分,而不是全景。我理解所谓的“敏捷”,就是相关人员,不仅仅是开发团队,通过持续改进,不断缩短这个过程。这个名字到底是不是敏捷,我现在并不纠结。在我看来,在软件开发过程中,最重要的是快速反馈。当你做一件事的时候,怎么样才能尽快地知道做的是对的:我们用TDD的方式验证代码的正确性用CI验证自己开发的代码对于团队的影响用迭代的方式快速地实现一部分需求放到相关人那里去验证用持续交付的做法把实现尽早放到产品环境中去验证用精益创业的理念把想法放到用户那里去验证
本质复杂度(Essential Complexity)和偶然复杂度(Accident Complexity)。
简单来说,本质复杂度就是解决一个问题时,无论怎么做都必须要做的事,而偶然复杂度是因为选用的做事方法不当,而导致要多做的事。
软件开发也不例外,如果你不曾在做软件这件事上有过学习和思考,形成一套高效的工作方法,只是凭直觉行事,在真实世界中往往会举步维艰。