本文作者Zac Gery是一名软件开发者、架构师。在本文,他认为一个优秀的程序员应该像CEO那样去思考,并不是说去做CEO做的事情,只是要在态度、热情、责任等方面像CEO一样,为项目开发着想,为公司利益考虑。(以下是编译内容)
基本上每一个开发者每天都要做出很多决定,不管你是新手、高手、领导还是架构师。对于所有需要完成的,都按优先顺序排好,逐一解决:先调查哪一个bug?怎样修复议题?如何采用合理的规划路径来处理棘手问题等等。尽管某些需要作出决定的事情看上去微不足道,但它们仍然具有不同程度的影响力。当有太多的竞争性需求要得到解决的时候,首要任务是做出一个相对简单、但聪明的决定。
这个代码需要分解/重构吗?这应该是一个配置选项吗?这段代码应该被集中起来吗?也许像这样的问题就是开发者每天需要面对的问题;尽管这些问题可以被忽略,但是解决这些小问题的重要性和修复一个高优先级生产问题的重要性毫无差别。除去这些做决定的时间,用在构建架构、代码测试、产品发布和特性维护的时间又有多少呢?这个估计没人能说出确切的数字,哪怕是概数。不过,要是你能像CEO一样去思考问题、作出决策、领导团队的话,这应该是一个很不错的工作诀窍。不如花点时间努力构思一下:“如果让我来做公司的CEO,我可能会....”
这种思维方式可以比作是决策过程里的一个灯塔。不过要注意的是,像CEO一样思考在一开始并不是那么简单就能做到的。精神上的角色转换要代替态度上的角色转换。许多开发者都试图将CEO的心态附加到自己现在的思维过程里,这对工作的有效性和决策的最终制定都有很大的负面影响。事实上,绝大多数的CEO对编程技术知之甚少,仅限于基础理解。同时,在很多公司里,编程技术是重头戏,也是更大的难题之一。CEO的思维空间里只有全局观:时间、金钱、、管理、价值观。
难道说,软件开发对公司业务并不重要?恰恰相反,当投资的时间和金钱能够得到充分满足的时候,它就可以保证软件开发能得到特别的关注。一旦决策当中出现哪怕是一个小的微妙错误,都有可能改变项目进度方向,将产品的发布计划延迟数周或者是数月。太多的重构、过度的配置和不必要的复杂逻辑都是导致坏结果的很好的例子:即使是一个小小的决策,也有可能产生意想不到的效果。所以说,开发者要像CEO一样去编码,不但可以锻炼自己的思维全局观,还能为以后更好的发展奠定基础。
作为一个开发者,你觉得应该站在CEO的角度来编码吗?但不管怎么说,为公司的发展做出贡献的人想必一定会得到相应的回报。亦可说能为个人将来的发展带来好处。 (编译/薛梁 校审/付江)
原文:DZone