避免问题比解决问题更快

没有比自以为聪明的人更愚蠢的人了,没有人比怀疑自己是傻瓜的人更聪明。—— 玛格丽特德瓦卢瓦
大多数开发人员在编写代码方面都很聪明,在许多情况下,聪明既是一种优势,也是一种劣势。
常识、有智慧的经验可以帮助开发人员避免问题而不是解决问题。知道何时接触代码以及何时拒绝需求。
知道什么时候保持沉默,什么时候战斗,什么时候逃跑和躲藏,让智慧的(高级)开发人员比聪明的(初级)开发人员更有优势。
聪明和智慧有什么区别
- 初级开发人员接受简单的需求并创建复杂的代码
- 高级开发人员接受复杂的需求并创建简单的代码
总的来说,高级开发人员是智慧的,初级开发人员是聪明的。初级开发人员和高级开发人员之间的区别在于经验、知识和技能。
经验就是区别。一旦开发人员犯了错误,他们通过在未来犯同样的错误来避免它。这让他们有机会犯新的错误,但随着时间的推移,开发人员知道如何避免更多的错误。
软件开发中的错误很难预见,因为后果和痛苦是在遥远的未来。简单的错误会提供快速反馈,您可以快速找到并修复它。
棘手的错误类似于对值进行硬编码,最初似乎没有任何缺点。之后,你需要做一个完整的发布来改变这些值,你可以多次为这个决定付出代价。
避免问题不解决它们
聪明的人解决问题。智慧的人会避免它。—— 阿尔伯特·爱因斯坦
所有开发人员都想编写代码。这是他们擅长的,也是他们喜欢做的。高级开发人员学习的技能是何时编写代码,何时澄清和识别何时根本不需要编写代码。
初级开发人员就像一个拿着金锤子的人,每个人的需求和问题都像是一个写代码的机会。
编写代码应该是最后的选择,因为每行代码一旦创建就成为开发团队的责任。创建代码后,必须对其进行维护并增加代码库的复杂性。
从短期来看,代码是一个很好的解决方案,但从长远来看,它需要更长的时间,增加复杂性并增加维护开销。
编写更少的代码更有效,这将减少失败的机会。高级开发人员知道您在必须且已验证需求时编写代码。
智慧的开发人员通过仅包含必须具备的要求而忽略最好具备的要求来减少创建的代码。
可以通过更改业务流程而不是编写代码来实现需求。不要将所有事情都自动化,有时手动选择是最好的选择。
何时创建代码
你必须知道什么时候拿牌,什么时候弃牌,什么时候走开,什么时候跑。—— 肯尼罗杰斯
智慧的(高级)开发人员知道何时编写代码,何时验证、检查而不是创建代码。初级开发人员擅长编写代码,他们希望尽可能多地使用这些技能。
这突出了输出的差异,但初级(聪明的)开发人员和高级(智慧的)开发人员之间存在更大的差异,并且知道何时编写代码。
简单
初级开发人员希望立即创建代码,通常是在他们理解业务为何需要代码以及代码需要做什么之前。
高级开发人员寻找假设并验证需求。如果代码做错了,那么您创建的代码再好也无济于事。
通过编写具有经过验证的需求的代码,您可以更快地创建软件。代码有很多开销,例如更新的依赖代码、相关代码、文档、测试、构建。有时,开发人员通过较慢地开始并创建正确的软件来加快速度。
该听的时候说
第一个原则是你不能骗自己,你是最容易骗的人。—— 理查德·P·费曼
木匠测量两次,砍一次木头。开发人员很少这么小心。
智慧的(高级)开发人员明白他们是创建软件的专家,而用户是他们业务中的专家。创建软件是业务专家和技术专家之间的协作。
初级开发人员忘记并倾听了一些需求,停止倾听并转向创建技术解决方案。高级开发人员专注于业务目标和流程,因此他们可以理解软件的用途。只有了解了企业、团队和个人角色的目的,您才能创建软件来帮助他们。
当初级开发人员充分阅读需求以自己的理解开发并创建它时,就会发生常见错误。后来,当不合适的业务代码和异常出现时,初级开发人员不得不不断地修改代码来修复一个又一个的错误。
一开始看起来进展很快,慢慢地一个bug一个bug落后了。一位优秀的高级开发人员只创建一次代码,它就会在环境中运行。
高级开发人员知道什么时候该问问题,什么时候该听,什么时候该说。
沉默是从生活的许多苦难中吸取的教训。—— 塞内卡
做你的工作
软件开发需要一个团队来完成,而这需要每个人都做好自己的工作。
乐于助人是一把双刃剑,短期可以帮助别人,但长期会伤害自己。你做别人的工作越多,你自己做的时间就越少。
智慧的开发人员会确保处理项目区域的人员完成这项工作。
开发人员需要保护他们的时间,并将责任和决策推给处理这些事情的人。
初级开发人员被卷入做其他人的工作,陷入困境并没有时间做他们的工作。如果你这样做足够多,并且你继续工作更长时间并且正在走向倦怠。
符合现实
昨天我很聪明,所以我想改变世界。今天我很聪明,所以我正在改变自己。—— 鲁米
事情会出错,问题会发生,计划会出错,设计会改变。你无法对抗现实。适应环境并随之改变。
初级开发人员与现实作斗争,高级开发人员与现实保持一致。
您无法阻止麻烦、错误和问题,但您可以为它们做好准备并确保它们不会以灾难告终。技术灾难不应让开发人员措手不及。
聪明人和智慧人的区别真的不值得计较。
如果你喜欢我的文章,点赞,关注,转发!
网友评论