【译文】软件工程中的软技能
内容提要
文章讨论了管理者和软件工程师之间的脱节问题,强调了工程师需要用非技术语言解释问题并提供实际数字和合理理由来说明重构的重要性,同时强调了沟通和解决问题的能力对于个人成长的重要性。
延伸解读
用业务语言量化技术问题
文章指出,工程师常因技术术语无法让管理者理解重构的必要性。有效的方式是用实际数字说明问题,例如预订模块去年造成11个中度错误和2个严重错误,损失超过47500美元和43000美元,并收到197份用户报告。通过量化业务损失和用户体验影响,重构从技术需求转变为业务需求,管理者才能评估投入产出。
从抱怨转向主动解决
抱怨只能提供暂时缓解,无法解决实际问题。文章强调,工程师应保持逻辑和客观,主动寻找解决方案,而不是期望他人理解自己的问题。如果问题并非个人能独立解决,寻求帮助也是合理的。关键在于采取行动,避免成为只传播负面情绪的人,这样才能在职业中建立积极关系。
沟通能力决定问题解决效果
软件工程师最终解决的是人类问题,而非计算机问题。如果与客户、团队和经理脱节,就无法理解真正需要解决的问题。文章建议关注实际问题,避免沉溺于技术细节,并认为理解和实践领域驱动设计(DDD)和测试驱动开发(TDD)有助于此。有效沟通是解决问题的前提,也是公司寻找问题解决者的重要标准。
建设性自我批评促进成长
文章提倡建设性自我批评,关注可改变的行为而非无法改变的全局问题,并优先考虑结果而非感受。例如,开发的功能可能没有价值,代码审查可能阻碍他人,脾气暴躁可能影响合作。通过换位思考,从他人角度理解情况,可以形成有效反馈,帮助个人在技术技能之外培养沟通和解决问题的能力。
Q&A
为什么软件工程师和管理者之间经常出现沟通脱节?
因为工程师往往拘泥于技术术语,如“重构”或“技术债务”,而管理者关注的是市场份额、用户需求和业务运作,不关心技术实现细节。工程师未能用非技术语言解释问题,导致管理者难以理解。
工程师如何向管理者有效说明重构的必要性?
工程师应该用实际数字和业务影响来说明,例如:重构预订模块可以避免去年造成11个中度错误和2个严重错误,损失超过47500美元和43000美元,并收到197份用户报告。重构计划两个月内完成,今年可节省约65000美元,明年类似,同时改善用户体验,让团队能投入新功能开发。
为什么说抱怨解决不了问题?应该怎么做?
抱怨只能提供暂时的缓解,不能解决实际问题,还会传播负面情绪。应该保持逻辑性和客观性,主动寻找解决方案,寻求帮助,并尝试理解他人和业务。
软技能对软件工程师的职业发展有什么重要性?
软技能如沟通和解决问题的能力对于创造美好的职业生涯和人脉关系非常宝贵。如果无法解释自己,就没有人能理解你和你的问题。有效沟通是解决人类问题的关键,能帮助工程师关注实际问题而非技术细节,从而更好地与客户、团队和经理协作。
如何提高表达思想的能力?
可以通过多读多写来组织想法,使其清晰明了。写作是一种很好的放松方式,在白纸上解释自己有助于向别人解释自己,让你明白自己的声音并找到改进方法。要以结果为导向,简化概念,抽象化思考。
什么是建设性的自我批评?它如何帮助个人成长?
建设性的自我批评是关注可以改变的行为,而不是全局性的、无法改变的问题,并优先考虑结果而非感受。它从他人角度理解情况,给自己空间和理解,帮助形成反馈,从而促进个人成长。