谷歌工作十年,我总结了这些工程师必备软技能( 二 )


设计文档的重要性 
设计文档不应该是事后的想法,而应该是软件工程过程中的一个组成部分 。
 
设计文档可以帮助你从同行或者对接团队中获得共识,来自他人的反馈能使你找出差距并改善设计 。设计文档还能帮助未来新加入团队的工程师更好的理解当前系统 。
拒绝的力量 
说“不”比过度承诺更好 。在涉及更多工作的情况下,我们大多数人都不善于说“不” 。一方面是大家没有意识到“不”是一种选择,一方面是我们喜欢这种挑战 。然而,过度承诺是一种责任,而且可能会造成项目延误 。让对方知道你已经在做什么,并提供一个合理的估计(需要多长时间)是一种尊重的表现 。
技术债务 
Titus Winters 将技术债务定义为“我们今天拥有的代码和系统与我们希望拥有的代码和系统之间的差异”,某些类型的债务比其他类型的影响更大 。有些债务可能是由于没有及早发现的错误(疏忽),有些是由于事后了解到的情况,有些是由于技术系统环境的变化(背景) 。
 
坚持优先处理技术债务有时是很难的,因为你不可能总是量化那些没有表现出来的错误或没有发生的故障 。如何防止债务积累?除了构建新功能外,技术主管还应定期在 Sprint 周期中投入时间进行清理和偿还债务 。审稿人应该意识到推动短期速度实际上可能会导致进一步的问题 。经理和主管应该注意批准与现有项目重叠的新项目,除非你确定权衡是值得的(例如,解决现有系统的债务与建立新的东西相比不值得) 。最后,监控项目的健康状况非常重要 。
工作与生活的平衡 
过度工作并不是良好职业道德的一部分,你永远不可能比世界上的每个人都更努力 。许多公司将过度劳累的员工作为“标准”,错误地认为这是良好的职业道德 。成功来自许多因素,不仅仅是过度劳累 。
 
时间管理上,优化自己的日历,留出时间,专注于深度工作 。深度工作是无干扰、高度集中的工作,可以在短时间内创造大量价值 。同时,一个人的时间是有限的,与其试图寻求更多的时间,不如消除不必要的任务 。
 
最后,你的健康和家庭至关重要,它会促进整体幸福感,精疲力竭也会影响到你的工作,也会使你的团队精疲力尽 。保持良好的工作和生活平衡对于各个级别的工程师来说都至关重要 。
 
原文链接:
https://addyosmani.com/blog/software-engineering-soft-parts




推荐阅读