代码中的善意
软件开发从根本上说是关于人的学科。虽然很容易将编程视为纯粹的技术活动,但事实上软件系统是由人编写、阅读和修改的。代码最接近人类思想的原始表达形式,但它本身并不具备人性特征——正是开发者赋予了软件价值。
人性化沟通的价值
在开发社区中对他人刻薄毫无价值。粗暴地指责同事的错误行为无济于事,真正有效的是确保软件设计原则得到应用,帮助团队构建易于阅读、理解和维护的系统。这并不需要通过伤害他人来实现。
代码审查的两种方式
假设有人编写了有问题的代码,以下是两种反馈方式:
攻击性方式:
"难以置信你觉得这是个好主意。你读过软件设计方面的书吗?显然你不该这么做。"
建设性方式:
"这段代码难以理解,而且看起来有重复代码。能否重构使其更清晰?"
关键区别在于:评论代码而非开发者本人,同时保持专业礼貌。
软件工程的人际维度
阻止糟糕代码提交的根本原因与人息息相关——无论是为了最终用户还是需要阅读代码的其他开发者。创建可维护的系统完全是为了持续有效地帮助用户。
虽然阅读和使用代码的是许多人,而代码审查对象只是其中一人,但没有必要为了系统质量而牺牲善意。为什么要创建让人害怕犯错的环境,而不是让他们为做对事情感到高兴?
超越代码审查
这不仅仅关乎代码审查。其他软件工程师也有发言权,无论你是否同意,都应该倾听他们的意见,礼貌地回应,并以建设性的方式沟通自己的想法。
有时人们会生气,需要相互理解。你自己也会生气,那时你也会希望队友能够理解。
现实与平衡
这并非说"每个人总是对的"或"永远不要指出错误"。世界上有很多错误的事情,软件工程中也有很多需要拒绝的不良实践。但即使面对能力不足的同事,粗鲁对待他们也毫无效果——他们不需要你的仇恨,而是需要你的理解和帮助。
大多数同事可能都是聪明、善意的个体,只是偶尔犯错——就像你自己一样。给予他们怀疑的好处,与他们合作,保持善意,从而打造更好的软件。
文章后续包含读者评论与作者回应,进一步探讨了在实际工作环境中实践善意沟通的挑战与方法。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码