在成为架构师之前,试着先培养这4点能力
几乎每个程序员都有一个架构梦,而在成为架构师之前,清晰地理解架构的各个方面非常重要,包括业务架构、技术选型和细节实现等。基于我自己的研发经历,分享下自己对架构的认知,希望能为你带来一些新的思考。
定义问题是关键
爱因斯坦曾说:“提出问题比解决问题更重要。”定义问题是个脑力活,而解决问题则更像是体力活。很多人习惯于看到一个问题就立刻“上手”,从概率上来讲,这很可能会让我们陷入“解决问题的黑洞”,即你不停地在解决问题,但最终却未能有效改善局面。因此,当面对困难或情况时,首先要做的是定义问题,明确你要解决的是什么问题、解决后能带来哪些好处,以及如何验证问题被解决了。
接下来是定义结构。比如,分析问题的关键点并对应找到解决方案,如何在其中权衡利弊,以及最终的解决效果如何从局部扩展到整体。一个团队可以不知疲倦地埋头苦干,但未必能取得显著成果。大多数情况下,人们只是罗列出面对的问题,但并未对这些问题做一个全局分析和梳理。事实上,最难的部分往往就在于“找到问题”。
问题的本质并不复杂
在项目进行中,可能会遇到一些产品需求。很多时候,团队在评估后会觉得实现难度较大,原因可能是现有系统无法支持,修改成本高,且存在不确定的技术风险。然而,面对这种情况,通常不会简单地通过增加人力或延长工期来解决问题。更多时候,我们会寻求一些捷径或替代方案,哪怕这些方案在技术实现上可能稍显复杂或不够完美。
在这种情况下,多维度地思考问题可能会带来新的视角。例如,这个需求具体要解决用户的哪些痛点?是否只有一种解决方案?它可能会产生哪些成本和潜在风险?当前进行的其他项目与这个需求是否有联系?是否有其他团队已经遇到并解决过类似的问题?通过转换思路、提出更多问题,往往能为我们提供不同的解答与解决路径。
达成目标
在工作中,无论是小到确定一个 API 契约、中到上线新功能、还是大到争取一次晋升,所有的目标其实都有一套成功的路径可循。通过识别短板、制定计划、抵抗挫折、不断练习并根据反馈进行调整,任何问题都能得到有效解决。《债务危机》一书中提炼出了五步成功法:设定目标 -> 找出阻碍目标的障碍 -> 诊断问题并制定应对计划 -> 列出任务清单 -> 坚决执行,这为复杂问题的解决提供了清晰的思路。
与此同时,著名数学家波利亚在他的经典著作《怎样解题》中总结了另一种四步方法,更贴合技术研发的思维方式:深刻理解问题 -> 制定总结 -> 耐心执行 -> 逐步构建解决方案。这一过程强调对问题的全面把握与耐心的执行,这与技术开发中的渐进式优化思路相吻合。
著名数学家波利亚在他的经典著作《怎样解题》中提出了四步解题法,这种方法从研发的角度来看可能更贴近实际:深入理解问题 -> 总结思路 -> 耐心执行 -> 构建解决方案。
持续学习
最重要的是要保持持续学习的习惯。在快速变化的时代,学习和自我提升是程序员和研发人员的核心竞争力。正如饿了么创始人汪渊所说:“最重要的是选择,而最难的是坚持。” 坚持学习,持续提升自己的能力,才是应对变化的关键武器。
最根本的是持续学习。在快速发展的时代,保持学习和提升能力是研发人员最大的优势。正如汪渊所言:“最重要的是选择,最困难的是坚持。” 学习不仅是短期的救命稻草,更是长久发展的动力源泉。坚持学习并不断提升自己,才能在变化中立于不败之地。