software-engineering-soft-parts
https://addyosmani.com/blog/software-engineering-soft-parts/
软技能——非专业技术知识。
作者分享一些自己在 Google Chrome 工作 10 年以来的软技能。反思自己 10 年来的经验教训,并希望能够读者带来启发。
> 成为好的工程师需要经验。每个项目,甚至是很小的那些,都是一个向你的工具箱添加新技术和工具的机会。从一个项目中学习到的工具,能够应用到另一个项目中,如果能够这样解决问题,就能传递更多价值。经历过的项目不会白费的。 {.is-success}
- 掌握技术能够提高生产效率。
- **批判性思考是使用认知技能独立思考的能力**,它能帮助我们做出合理的决定。投资这项技能,使得我们的思路更加清晰。
- 掌握基础并不断应用它们来获得新技能。
- 通过学习基础获得技能组合和工具,然后忽略基础得到成长。
- 对宏观和微观的基本原理有很好的理解可以帮助你做出更好的决定。
- 从用户体验开始,然后回溯到所需要的技术。
- 最好的软件是由那些对用户有同情心的工程师构建的。
- 选择适合你的用例,而不是本月的流行。
- 利用新项目学习新技术。
- 保持好奇,从不停止学习。
- 在学习的时候记笔记。这样做使得你更理解学习的内容。当你试着向其他人解释的时候,你对这些知识的理解会增加。没有人读也没关系。你只是把这些内容写下来就对自己有很多好处。
- 承认自己不知道某件事是很难但值得做的一件事。
- 承认自己犯错也是很了不起的一件事。
- 做一个 caretaker,而不是owner。
- Consider if being a jack of all trades and a master of one is right for you.
- 当学习某一新的编程语言时,关注用它做一些能够带给我成就感的一些东西。
- 为手头具体的问题写代码,但是努力让代码能够解决更为普遍的问题。
- 编写代码,为其他开发人员解决复杂的问题,但通过清晰的界面公开功能。
- 在旧系统中处理遗留代码时,要了解应该保留的代码和应该删除的代码之间的区别。
- 尝试,创新,快速失败,更好地解决问题。
- 定义”已完成”的内容可以节省时间,因为它可以帮助您估计所需的工作量,为开发制定计划,并避免以后进行不必要的修改。
- 一个单一的大型发布可以分为一系列风险较低、易于理解的发布。
- 在调试时,您应该尝试系统地、严格地解决问题,以解决所有测试条件。
- 设计文档不应该是事后的想法,而应该是软件工程过程不可分割的一部分。
- 协调设计文档的评审,并将设计与原始文档进行比较,以验证所有相关约束都得到了解决。
- 谦逊,清晰的沟通,尊重他人。善良不需要付出任何代价,但其影响是无价的。有些人可能会说,良好的沟通需要精力和深思熟虑。应该有更多的能量来激发同情心。
- 使用与听众相关的语言、概念和详细程度。
- 对他人友好是一种超能力——运用它。
- 大方地赞美那些做出杰出工作的人。
- 拒绝比承诺过多更好。
- 你不可能取悦所有人——在说”是”和”不是”的时候要非常小心。
- 承认不了解某事,并对积极寻求帮助,甚至是比自己经验少的初级工程师。
- 利用会议和问答环节提出正确的问题,交流知识并通知团队。
- 为你的观点大声辩护,但是每次你有新的证据反驳他们的时候也要回顾一下。
- 在一次非正式会议之后,一封友好的电子邮件有助于重申讨论中的要点或承诺。
- 知道什么时候保持安静,观察游戏中的动态。
- 在不确定的情况下,不要不做决定或不采取行动。
- 领导者拓宽了自己的视野,从战略的角度思考问题,并为他人制定了路线图。
- 教你的队伍钓鱼。不要总是为他们解决问题,而是温和地引导他们发展自己解决问题的技能。
- 在评估具有挑战性的问题时,你以身作则,并在有人提出解决方案时提出相关问题。
- 承认犯错误、不知道答案或寻求指导都是可以的,这有助于克服冒名顶替综合症。
- 通过及时提供信息来保护你的学员,这样他们就不会陷入完全错误的境地,而是通过自己做事来掌握。
- 确保指导关系是高级工程师职责的一部分,当有人进入其他团队、职位或组织时也能帮助保留关键领域知识。
- 导师可以为你提供建议,但你是唯一一个可以采取主动和行动的任何建议,以管理你的职业生涯和成长。
- 信任可以使团队成员团结起来,朝着共同的目标努力,而官僚主义会使他们产生分歧。
- 了解变更对业务的影响。
- 对业务-软件等式的洞察力和敏锐性增加了工作的影响。
- 为深度工作优化你的日历。
- 避免破坏你的工作时间。
- 超负荷工作不是好的职业道德的一部分。
- 不断尝试超越自己的标准是不现实的。
- 时间是有限的。与其试图寻找更多的时间,不如消除不必要的任务。
- 你没必要知道所有的事情。
- 最好是积极主动地从疲惫中拯救自己,学会说不,知道什么时候停止,并计划你的时间包括工作之间的休息。
- 鼓励你和你的团队休息、度假和休假。