软件架构师的素质

    作者:课课家教育更新于: 2019-03-14 08:56:25

      软件架构师是软件开发中最重要的人,离开了架构,软件开发就像一艘没有舵的航船,没有人知道会驶向何方。使用了有缺陷的架构,软件开发就会成为吞噬人力的黑洞。如果一个软件开发组织希望通过合理的成本持续地递交成功的产品,那么首要的工作是选择正确的软件架构师。

      软件架构师应该具备哪些素质呢?在我看来,应该主要包括以下几点。

      1.诚实

      知道的,就是知道的;不知道的,就是不知道的;知道不多,或者不知道,学习之后就知道了。这就是软件开发中的诚实。

      在职场中打拼而获得的生存技巧,不能帮助你成为一名成功的软件架构师。假装知道、回避交流,或者看上去的诚实,也许可以长期维护你的权威形象,同时,也阻碍了你获得更多的知识。

      在我的职业生涯中,遇见过很多不称职的软件架构师:他们善于在交流的过程中,不断地变换自己的想法;或者,通过质疑对方,来转移大家对自己错误见解的关注;或者,技巧性地避重就轻。

      不喜欢落下文字,是这些人的典型特征。

      2.想像力

      软件架构师应该具备很强的形象思维能力。

      软件设计中的创意灵感基本上来自想象(而不是逻辑推理)。在现实生活中,有很多循规蹈矩的人,他们不愿意想象,他们喜欢一成不变的架构,他们喜欢夸大未知的风险,他们对任何改变都会做出排斥的反应。

      我经常看到这样的场景:当现有架构无法解决现实问题时,很多软件架构师没有一丁点想象的冲动;他们宁愿采用最保守的方式来应付,而不论这种方式是否合理。

      架构,是软件的生命、活力和新鲜血液,是生命的需要。在一味保守的思想下,架构将成为一具僵尸,失去生命的意义。

      我认为,对想象和创造没有兴趣的人,不会成为一个好的架构师。

      3.生活经验

      生活经验,可以提供想象的素材;想象,可以建立隐喻;隐喻,可以帮助我们对现实世界进行抽象。

      在抽象的过程中,生活经验发挥着巨大的作用。的确,有一些具有天赋的人,可以在较少的生活体验下设计出漂亮的架构。但是,在大多数的情况下,丰富的生活经验是想象的源泉和创造的基础。

      4.逻辑思维

      尽管软件架构设计中的创造大多来源于形象思维,但是在对细节的想象过程中,逻辑思维仍然起着重要的作用。

      软件架构师应该是个思路清晰的人。当他们向团队成员(或涉众)推广设计成果时,如果没有严格推理的表达,听众是无法理解和接受的。

      5.理想主义者

      技术领域不是职场。职场上的成功,不能代表技术上的成就。

      软件架构师应该是个理想主义者。在以自己为主刀医生的架构设计过程中要追求自己设计思想上的完整,不向非技术性的建议妥协。

      理想主义者,不代表用超出客观限制的投入来实现个人的技术理想。比方说,我们需要考虑项目周期、人力以及第三方的商业产品等外部因素,对于架构设计的影响。

      我们应该不畏惧变化,不因循守旧;相反,在软件架构设计过程中,我们要坚持理想、勇于创新。

      6.兼容并蓄

      软件架构师要坦率地面对自己的知识局限,勇于聆听和采纳任何有价值的建议。兼容并蓄的前提是,透彻理解外来贡献的内容,并确保外来贡献与自己设计思想没有冲突。

      我很少见到具有这种精神的软件架构师。很多软件架构师,他们即便悄悄采纳了别人的想法,也不愿意把感谢送给贡献者。

      7.反思精神

      软件架构师,应该具备反思精神。

      对于软件系统来说,通常没有所谓最好的架构。我们应该深入反思、寻找缺陷、酝酿改变、追求完美,这样才能实现技术能力上的提升。其中,反思,是提升能力的根本动力。

      

课课家教育

未登录