`

开发人员如何成为架构师

阅读更多

    很多架构师都是从好的开发人员逐步过渡而来的,但并非每个好的开发人员都希望成为架构师,而且他们并不是都适合做架构师。无论您是打算进行职业转型的开发人员,还是寻找能承担体系结构设计责任的合适人选的经理,都务必对此转型过程有个清楚的了解。本文将讨论从实现专家到架构师的过渡过程。
    在寻找优秀的指挥的时候,您首先要找的是一名优秀的音乐演奏家。但并非每个音乐演奏家都能成为优秀的指挥。架构师的专业发展方面也与此类似。越来越多的 IT 组织开始认识到良好软件体系结构的重要性,架构师职业正迅速发展为 IT 内一个独立的门类。由于要从相当小的候选范围内招募架构师,因此这就给管理带来了一些新挑战。即使人力资源部门找到了候选者,针对经验进行的筛选也比其他门类更为严格。跨越这些障碍的最快方式是要认识到,大部分好的架构师同时也是好的开发人员,因此寻找架构师人才时可能首先应该从普通开发人员中找起。招聘人员在对候选者(内部或外部)进行详细审查时,应该考虑这个观点。不过,对此资源进行挑选可能比较麻烦,因为只有极少的优秀开发人员具有成为架构师的特征或愿望。
    本文列出了开发人员成为架构师要进行的工作。我将从可能考虑进行此转型的开发人员和评估进行此转型的开发人员的经理这两个方面来探讨这一问题。我还将提供一系列在做出这些决策时要考虑的因素。

个人特征
    软件开发团队和管理层之间的联系始终是 IT 中的一个关键所在。二者都倾向于以完全不同的方式考虑给定的问题。大部分相关技术都是讨论项目经理应如何跟踪和解释开发人员的进度和问题。但沟通不足的情况仍然非常普遍,而且这是项目失败的首要原因。好的架构师是解决这个问题的最有效办法。架构师的主要责任是提供开发人员和项目经理之间的共用沟通媒体。他们负责让业务规则及需求与工程实践及限制相适应,以确保成功。以下是成功架构师的一些主要特征。
    愿意并有能力进行沟通:在开发人员中发现架构师的最有价值标准是有效的沟通。您需要技术娴熟、经验丰富的开发人员,这样的人员需要有就项目中的业务相关问题进行沟通的经历。架构师经常必须对理解方面的差距进行预计,然后才能有所贡献。他们必须愿意克服困难来确保技术和业务观点的融合。他们并不必对意见交换工作进行计划和协调;这仍然主要是项目经理的工作。他们的任务是确定表述系统设计时的最佳工具和构件,以促进有效的意见交换。他们必须能够判断当前方法显得不足而需要采用新方法的情况。写作技能也非常重要,还需要具有制作草图的技能或使用制图软件的能力。
    具有处理谈判细节方面的经验:架构师经常需要负责讨论系统开发的技术折衷方案。优先级的冲突可能会带来实践限制、风险规避或可能导致在各个不同业务组之间需求不同。优秀的架构师能够有效地评估技术可能性,并能在不损失项目的主要价值的前提下制订开发计划来处理各种利害关系和限制。这与前面讨论的沟通技能紧密相关,但同时也要体现架构师的技术能力。好的架构师候选者应该是经常帮助对有争议的讨论进行引导的人,能够使讨论得出新的想法,而不会使其在一个位置停滞不前。
    自觉主动;积极解决设计问题:架构师的日常工作目标经常并不明确。很多开发人员直接参考功能规范来列出任务清单。架构师通常则是向这些开发人员提供所需结构的人员,以便尽可能提高工作效率。好的候选者不仅进行沟通方面的工作,而且也会预计各种设计问题并加以解决——通常在没有任何具体指示的情况下自觉进行。无论所分配的职责如何,积极参与项目的开发人员都有机会从一起工作的人员中脱颖而出。
    抽象思维和分析:架构师必须能够理解表述模糊的概念并将其变成相关各方能够理解的项目构件。他们必须能够理解抽象概念,并以具体的语言对其进行沟通。开发人员中好的候选者经常要求或自己主动解释开发生命周期中容易混淆的问题。他们能迅速评估各种想法并将其纳入后续工作的操作建议中。
    开发人员经常具有很强的数学能力,而好的架构师则倾向于表现出更强的口头表达能力。管理人员经常说开发人员具有“工程意识”,而这是一个用于评估架构师的非常有意义的方面。架构师应该具有很强的解决技术问题的能力,但还必须能够准确获知更为全面的人员如何与技术交互的信息。这要求具有某种形式的抽象思维(而不再是代码的细节),这种思维能力可能较难形成。
    有些人认为,某种级别的正式教育是成为优秀开发人员的必备条件之一,我并不同意这种精英论。我遇到了很多高中就辍学的优秀开发人员。不过,对于体系结构设计工作,我的个人经验以及我对所需能力的认识都让我相信,好的架构师通常至少获得了一个有挑战性的学士学位。

跟踪生命周期
    好的架构师通常有在具备定义良好的软件开发生命周期(Software Development Life Cycle,SDLC)的组织工作的经验。架构师必须理解在其所属专业内最重要的操作过程。这并不意味着需要有其他前提,例如,并不需要高能力成熟度模型(Capability Maturity Model,CMM)级别的工作经验。好的架构师可能来自使用 SDLC 的多个小型迭代的极限编程(Extreme Programming,XP)方法的组织。务必注意各种传统软件开发操作,如 Michael A. Jackson 的方法:Jackson 结构编程(Jackson Structured Programming,JSP)和 Jackson 系统开发(Jackson System Development,JSD)。Jackson 的研究对架构师职业发展的意义就像 Donald Knuth 的研究对程序员一样重要。架构师可以偏爱任何经典的、经过时间考验的软件系统开发方法。
    SDLC 也可以成为评估架构师合适人选的有用机制。每个 SDLC 阶段都具有能提供相关线索的特征。SDLC 包含很多小的变体,但在此部分,我将使用几乎所有方法的公共基础部分。下面的列表详细说明了 SDLC 的各个阶段,并列出了好的架构师候选者在每个阶段表现出来的特征。
    分析:在分析期间,好的架构师会考虑非技术影响,以便了解需求和将在其中进行开发的环境。架构师可为风险评估任务带来广泛的软件经验供参考。寻找具有丰富经验的开发人员,以帮助业务部门理解技术人员正确解释需求所需的信息。寻找在开发的早期阶段能够预计可能遇到的问题的开发人员。
    设计:在高级设计期间,好的架构师会收集问题空间的各个抽象元素,并就其进行沟通,以便开发团队草拟将要开发的系统的相关图表。架构师负责将需求谨慎地映射到所得到的系统体系结构的功能。在详细设计期间,他们所扮演的角色并不是核心角色,但为了根据整个系统的规则对特定模块的元素进行审查,仍然需要他们。寻找善于让团队能够预计设计决策对最终系统的影响的开发人员。寻找善于确定一些最佳构件来促进与技术和非技术受众沟通设计问题的开发人员。
    实现:在实现期间,架构师对项目进行引导,以确保其符合系统体系结构。他们在一线评估技术更改请求,并确定如何对设计进行调整,以最好地处理此类请求。架构师还要密切了解开发人员的进度,特别要跟踪系统中模块间的集成点的状态。寻找经常对讨论进行引导来连接多个子系统的开发人员。寻找项目经理可以依赖其快速地进行与更改和出现的问题相关的风险评估的开发人员。
    测试:架构师对系统集成和用户接受度测试进行指导,并负责评估进度的正确沟通的持续测试结果。寻找理解错误模式且善于将测试复查结果转换为行动计划的开发人员。
    维护:在维护期间,架构师将发起关于系统集成的讨论。无论处理 IT 基础设施问题,还是确保部门之间的技术合作,架构师都必须完全理解应用程序,必须快速学习姊妹应用程序的体系结构,而且必须就集成点和风险进行有效沟通。寻找具有系统集成经验且表现出快速掌握全貌的能力的开发人员。系统集成是一项独特的任务。
 
架构师培养建议
    有些组织能比其他组织更有效地进行架构师培养。如果充分考虑到招聘此类新专业人才的困难,努力促成能鼓励开发人员发展为架构师的环境是非常明智的策略。但务必避免对不愿意或不适合走这条路的开发人员进行处罚。组织应该为开发人员制订多条发展路线,包括那些愿意继续担任开发人员的人。对架构师而言,资深开发人员不可或缺。他们可以实现系统中最关键的模块。通过对其他开发人员进行代码检查和测试支持,他们可帮助确保总体软件质量,而如果质量不能保证,即使最好的体系结构也毫无用处。
    组织应制订个人评估程序,以鼓励开发人员考虑其职业目标,其中要包含体系结构设计的选项。应该鼓励经理在其下属中寻找体系结构设计人才。应该实现指导计划,让架构师与希望成为架构师的开发人员协作工作。应该鼓励开发人员通过参加各种协会、撰写文章和参加会议,从而参与到专业领域中来。通过这样参与进来,可帮助开发人员从新的角度理解系统,并帮助他们更好地就其认识进行沟通。这样还能培养可提高效率的重要创新想法。

<!--start RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--end RESERVED FOR FUTURE USE INCLUDE FILES-->
分享到:
评论

相关推荐

    架构师成长之路,架构师成长指南

    此外,架构师还需要具备良好的沟通能力,能够与项目经理、开发人员、测试人员以及业务分析师等不同角色进行有效的协作。 二、技术知识体系 成为一名合格的架构师,需要掌握广泛的技术知识。这包括但不限于:编程...

    成为架构师的基本要素

    - 对于想要成为架构师的开发人员来说,应该不断拓展自己的视野,不仅仅是关注技术细节,还要学习如何更好地与团队合作、如何理解业务需求。 2. **从实现专家到架构师**: - 实现专家通常拥有深厚的领域知识和技术...

    软件架构师-架构资料.zip

    《软件架构师:构建高效系统的关键》 在信息化社会中,软件架构师的角色日益凸显,他们不仅是...这些资料将帮助学习者全面了解软件架构师的工作内容,提升他们的专业素养,为成为一名合格的软件架构师打下坚实的基础。

    高级系统架构师经典案例分享

    最后,系统架构师必须具备优秀的沟通和团队协作能力,因为他们需要协调开发人员、测试人员和业务人员的工作。这部分内容可能会探讨如何编写清晰的架构文档,以及如何有效传达设计决策。 总的来说,“高级系统架构师...

    系统架构设计程序员向架构师转型之路

    在IT行业中,从一名程序员成功转型为架构师是许多技术人员的职业发展目标。系统架构设计程序员向架构师转型之路是一项艰巨但充满挑战的任务,涉及到技术深度、广度、沟通能力以及业务理解等多个方面。以下是对这一...

    架构师成长之路

    1. 沟通能力:架构师需要与业务人员、开发人员、运维人员等多个角色进行有效沟通。 2. 领导力:领导团队解决问题,推动技术决策的执行。 3. 学习能力:快速学习新技术,适应不断变化的技术环境。 五、成长路径 从...

    系统架构师总结

    从开发人员成长为架构师,需要时间和经验积累,通过不断总结自己的实践,深入行业应用,才能形成自己的架构思想。短期的培训难以造就一名合格的架构师,厂商的培训更多是为了推广产品,而非专业人才培养。 在计算机...

    JRules6面向架构师和开发人员.rar

    **JRules6面向架构师和开发人员:深入理解与应用** 在IT行业中,规则引擎是一种强大的工具,它允许业务规则与应用程序逻辑分离,使企业能够更灵活地管理和更新其业务策略。IBM JRules是一款业界知名的规则引擎,...

    IT架构师学习资料

    - **与其他IBM专业人士的关系**:IT架构师通常需要与其他IBM专业人士如项目经理、开发人员和销售人员紧密合作,以确保项目成功实施。 - **IT架构师从事的工作角色**:主要包括解决方案架构师、企业架构师、技术顾问...

    j2EE架构师手册+J2EE OA 项目开发日记

    《J2EE架构师手册》和《J2EE OA项目开发日记》是两份非常重要的IT资源,专门针对Java企业级应用开发领域的高级技术人员,尤其是对J2EE架构师而言。这两份资料深入探讨了J2EE技术栈,以及在实际OA(办公自动化)项目...

    如何成为信息系统架构师

    成为信息系统架构师的路径通常从开发人员或IT专业人员开始,通过积累经验并深化专业知识,逐渐晋升到更高级的架构职位。过程中,可以参考如微软的MSF(Microsoft Solutions Framework)和MOF(Microsoft Operations ...

    通往架构师的必经之路(必读!)

    "通往架构师的必经之路"是一个重要的主题,旨在帮助有志于成为架构师的专业人士理解这一职业路径,并提供必要的知识和技能。 首先,我们要明确软件架构的重要性。软件架构是软件开发过程中的蓝图,它定义了系统的...

    软件架构师职业解读

    软件架构师,这一职业在IT行业中扮演着至关重要的角色,它是连接技术和业务的桥梁,是软件开发过程中的领航者。...通过深入学习和实践,你可以逐步成为一名优秀的软件架构师,引领技术创新,驱动业务成功。

    系统架构师学习笔记

    #### 四、从开发人员到架构师的转变 - 成为一名优秀的系统架构师需要不断积累经验、总结架构模式,并深入了解所处行业的特点和发展趋势。 #### 五、信息化的概念与发展 - **信息的定义**:信息是对客观事物变化和...

    IT程序员如何成为架构师共1页.pdf.zip

    首先,技术能力是成为架构师的基础。这不仅意味着精通至少一种编程语言,还需要深入理解计算机科学基础,如数据结构、算法、操作系统原理和网络通信。此外,对数据库管理、并发处理、性能优化以及安全性等领域的掌握...

    起步系统架构师,系统架构师笔记

    #### 四、从开发人员到架构师的成长之路 - **个人能力提升**: - 总结个人经验,形成自己的架构模式。 - 不断深入学习,提高专业素养。 - **行业积累**: - 在实践中不断积累经验,总结行业的通用规律。 - ...

    系统架构师是怎样炼成的

    总体来说,成为一名优秀的系统架构师需要多方面的知识和技能,它不仅要求深厚的编程和软件开发基础,还需要有良好的设计原则、项目管理能力和沟通协作技巧。随着技术的不断进步,架构师还需要不断学习新技术、新方法...

    从入职到架构师,嵌入式软件成长之路(2021-3-31).pdf

    根据文件标题《从入职到架构师——嵌入式软件成长之路》以及描述,我们可以提炼出几个关键的知识点和经验教训,这些内容对于嵌入式软件行业的新入职者、资深开发人员,以及那些希望成为技术架构师的开发者们来说都是...

Global site tag (gtag.js) - Google Analytics