什么是架构?

通常情况下,人们对架构的认知仅限于在软件工程中的定义:架构主要指软件系统的结构设计,比如常见的SOLID准则、DDD架构。一个良好的软件架构可以帮助团队更有效地进行软件开发,降低维护成本,提高系统的可扩展性和可维护性。这里的架构定义有更多元化的理解:架构不仅是对软件开发设计和流程规范的定义,也包含了参与架构设计的人员、以及项目过程中和架构有关的活动,都可以称为架构。


明确目标:在开始新事物时,可能需要面对各种各样的选择和挑战。在这种情况下,明确具体的目标并非易事。

  • 可实现:目标需要具有可实现性,过高或过低的目标都可能导致挫败感和疲惫。要在充分评估自己能力、资源和环境的基础上,设定合理的目标。
  • 具体、明确:目标应该具体、明确,易于衡量,以便对自己的进展进行有效跟踪和调整。将目标细化为若干小目标,有助于更好地管理和实现目标。
  • 有弹性:目标制定过程需要有一定弹性,能够应对不确定性和变化。当遇到挫折或不可预测的因素时,可以适时调整目标,以保持积极的心态和动力。
  • 持续关注和调整:目标制定并非一劳永逸,需要根据实际情况进行持续关注和调整。通过定期评估进展、学习经验教训,可以保持目标与现实的一致性,并提高实现目标的可能性。


上面4条是指导原则,实际情况更为复杂,比如技术人员通常以技术驱动去探索目标,但是它不一定适合商业活动

这些原则说起来比较简单:确保长期目标不动摇,临时方案做取舍。做下来就会有犯难的时候:如果临时方案做得多了容易形成包袱,影响长期收益,最终会使定制的目标打折扣。阶段目标保障和长期收益并不是完全对立的,实际工作中也会存在需要做取舍的情况,当阶段目标和长期收益出现矛盾时,需要架构人员争取资源或做好取舍。纵使做完决定选择阶段目标临时放弃长期收益时,这也只是一个短期的决定,并不能代表将来,也就是说在时机成熟的时候(例如上下游在自身的演进中做了理想态的改造),那么作为部门自身也需要时刻关注并及时跟进。


最近在学习郭东白的架构课,本篇文章主要是结合自身实际的经历阐述架构师定位、架构活动如何保障企业、组织实现商业价值,以及从员工层面的执行、管理角度分析各层次的定位、方向,通过这些思考总结沉淀,帮助我们在工作中更好地做技术落地和业务支撑。