找到您的能力圈—作为一名软件架构师,如何做好
作为软件架构师,您是需求和实施之间的链接。 做出具有坚实基础的决策是一项持续的挑战,要使未来的功能适合现有的生态系统,并使其与SOLID,DRY,YAGNI等良好的软件原则保持一致,这是一个持续的挑战。
构建软件需要不断的改进工作。 新型技术每天都在冒泡,很难让您随时了解最新情况。 就像著名的苏格拉底所说的那样,学到的知识越多,对所学知识的了解就越少。 我作为软件架构师大约3-4年的经验(按标题,而不是您亲自问我;)教会了我将自己划分为特定领域的知识,而不是一眼望去似乎令人毛骨悚然的所有内容。
能力圈
最近,我读到了一篇名为“能力圈”的文章 。 能力圈来自最好的投资者之一沃伦·巴菲特(Warren Buffet),是与个人技能或专业知识相匹配的学科领域。 此原则源自在您有深入了解的领域内进行投资。
我之所以提到该原则,是因为它引起了我的关注,是因为这种原则不仅适用于财务决策,而且实际上适用于所有事物。 包括软件开发,我已经应用了它。
更有经验的你,你意识到你不能样样顺利 。 我认为这不是什么新鲜事或壮观的事,但缩小并评估自己以及您的表现很重要。 您如何专注于对您重要的事情? 我很想听听!
能力圈的应用
去年10月,我借此机会作为一家全球银行的建筑师/开发商加入了金融行业。 我以前曾在相似的职位工作过,但在另一个行业工作,所以这对我,业务和公司规模而言都是全新的。
我以前的工作和公司在许多技术领域都处于领先地位,但是很少有那些具有挑战性的项目使我们的技术人员能够充分使用我们的工具箱。 那就是我离开的原因之一。 无论如何,这不是重点。 :)
关键是,在签署这份新工作时,我知道将会遇到很多挑战,例如:
- 在软件领域内定义愿景和标准
- 设定编码标准和最佳实践
这些挑战非常广泛,需要做出许多决定。 您如何确保可以完成这些任务? 我知道我可以从以前的工作中为我们积累的经验中获益,但是某种系统会很棒。
为什么不看看如何在我的情况下使用“能力范围”原则。
好的,这是圆圈的外观:
但我认为这样更准确:
将您知道的内容分为舒适区域和不在舒适区域之外的内容。
舒适的
- 好吧,首先,我主要专注于后端开发,尤其是.NET平台。
- 我主张测试(TDD),一直在努力应用干净的代码和良好的软件原理等。因此,在我的能力圈内,我可以添加此内容。
- 我在配置构建管道和持续部署方面经验丰富。
- 我也很擅长交流,并且口头上将技术术语传递给非技术人员。 因此,传达这些东西应该是可行的。
不舒服
- 关于网络,VIP,堡垒,防火墙规则,DMZ以及所有这些呢? 不,我在那里不太舒服。
- 核心银行解决方案? 没有。
- UX和前端
- 那么银行监管和法律呢? 不,不是,真的不寒而栗...
好的,就是这样。 我现在将我所知道的与我所不知道的进行了划分。 这大致是一个概述和示例,仅是为了提示您如何拆分。 现实中的清单要长得多且复杂。
通过做这个小练习,我可以回顾上面提到的两个挑战并回答这个问题:
我如何定义软件领域内的愿景和标准,并根据我所知道的知识和在哪里可以做出贡献来设置编码标准和最佳实践 ?
如果我牢记自己的自信区带去看待挑战的观点,那么我做出良好决策的可能性就会比我开始专注于圈子以外的方面时增加。
在圈子之外,您确实知道自己不是专家,请其他人帮助您并接受。 让他们成为教您的专家。 这将帮助您扩大圈子,并希望您可以扩大其他人的圈子。 那是我所追求的哲学之一。 它使我能够专注于自己所擅长的领域。
请注意,这与您要学习的内容无关,而是一种使您专注于自己知道可以擅长的领域的方法。
作为软件架构师,您如何保持专注?