在热剧《狂飙》中,高启强熟读《孙子兵法》,而且活学活用,《孙子兵法》帮助他白手起家。《孙子兵法》里有一个方法论叫“胜兵先胜而后求战,败兵先战而后求胜”,意思是打胜仗的部队在还没开战之前就已经赢了,而打败仗的部队会先去打仗,然后在战斗过程中去争取胜利。
这个听起来很难理解,但是结合到工程师的工作日常中就很好理解了。所谓胜兵先胜,这个方法论非常适用于程序员的项目开发,如果说我们能在项目开发之前,先把技术方案做好,那其实就相当于我们在没写代码之前已经开发完了。
举个例子,如果我们要开发类似慕课网的网站。我们需要先把慕课网的主要功能先列出来,然后是整个网站的架构设计,然后根据架构,在进行详细设计,详细设计的时候我们甚至可以具体到某个页面的按钮的颜色、大小、事件这些细节。当我们设计了一个详细的方案,每个环节经过推敲都没有技术上的block。然后我们再根据详细方案去定我们的项目排期,按照方案去进行开发。我相信开发的过程会非常的轻松,而且不会有任何延期的风险。
不过理想总是很丰满,现实总是很骨感。大部分的情况下,很多开发团队不会给负责开发的同学专门的时间去设计技术方案并且评审方案,或者不会强调技术方案,或者时间充裕,但是开发者本身不愿意写技术方案,这就是《孙子兵法》里面说的“败兵先战而后求胜”。
这种情况,对于小需求来说问题不大,不过对于复杂需求,或者偏技术创新性的项目来说问题就比较明显。可能做着做着,发现技术实现上可能有大问题,原来心里想的方案执行不下去了。这就会存在很大风险,因为deadline已经定了,各相关部门都等着你的项目上线呢,时间已经过半,可问题你没有及早发现并上报,那会儿你会压力山大,最终你上报了风险,重新认真考虑技术方案,然后加班加点,最终延期勉强上线了。你的信誉肯定会因为延期受到损失,严重的甚至会影响到公司的利益。
所以我觉得,写技术方案是工程师必备的一个技能,即使公司不专门给你时间,但是你也可以在开发前,给自己预留一些写技术方案的时间。方案写好以后,可以找一些比你高阶的工程师,帮你review一下方案,可能会让你发现一些你之前没有考虑到的点。方案确定好了以后,就可以轻松的按照排期来写代码了。《孙子兵法》不仅能帮助高启强,也能让工程师们轻松写代码。
共同学习,写下你的评论
评论加载中...
作者其他优质文章