1、大量高风险的决策机会
是的,每个人的成长都需要机会,架构师也是如此。只不过架构师需要的是大量高风险的架构决策机会。
在面临不确定情况时做决策的机会。架构师的成长,就是在更大的领域范围、更高的难度和更大的不确定性下做决策的过程。
- 比如说程序员,就是在代码层面做结构化的决策。
- 兼职架构师,就是在一个领域内做横向问题的架构决策。
- 跨域架构师,就是面对复杂的团队冲突,在多个领域间做全局最优的架构决策。
- 总架构师,就是面对技术发展的不确定性,从公司层面出发,顶住来自业务方的压力,作出长期最优的架构决策。
- CTO,就是面对竞争环境的高度不确定性,从贵公司层面出发,面对成本压力和团队内部压力,作出最利于企业长期生存的技术决策。
可以看到,从程序员到 CTO,架构决策的领域范围越来越大,挑战越来越大,不确定性也越来越高,意味着决策的风险也越来越大。
因为对于作出的每一次决策,无论正确还是错误,都会提升未来正确决策的概率。
一个机会密度大的公司,会有很多做高风险架构决策的机会。而一个本来就没什么决策机会的公司,哪怕你再资深,也很难拿到架构决策的机会。
机会密度大小与公司的大小无关。有的公司很小,但却有不少机会。有的公司很大,但分到每个人头上却没什么机会。
一个公司中架构机会的密度与以下几个因素有关:
1、赛道的竞争激烈程度:在一个竞争激烈的赛道上,短时间内会有大量新技术和新模式涌入,变化迅速。而在一个硝烟散尽的赛道上,技术的迭代将会逐渐停止。
2、公司的成长阶段:一个处于成长期的公司中会有非常多的机会,而一个已经开始老化的公司不但没有好的机会,甚至会非常糟糕。
3、公司的技术空间:在大多数公司和行业里,技术都是靠提升效率来创造价值。一个人均交易额越大的公司或部门,技术的投入相对来说增值越多,机会就比较大。但是这种提升机会是逐渐收缩的,越到后期机会越少。
4、部门内软件系统的成熟度:软件也是有生命周期的。如果是一个刚刚诞生的软件,到处都有决策机会。但是一个已经要老去的系统,不但没有决策机会,甚至会反过来霸占原本属于新生软件的机会。这类软件和它们背后的利益群体,已经成为孔老夫子讲的“老而不死是为贼”这样的祸害了。
总结下来,在一个激烈竞争赛道中的成长型的中小公司,往往有大量高风险的架构决策机会。也就是说,如果真的想要修炼自己的软件架构能力,这类公司才是你的道场!
2、对架构师友善的环境
在竞争激烈赛道上的中小公司,其实有着大量的架构决策机会。但每个公司的环境,对架构师来说并不都是友善的。对架构师友善的环境,需要做到如下三项:相对宽裕的决策时间;对架构师意见的尊重;对错误决策有足够的包容度。
1)相对宽裕的决策时间。在一个竞争激烈的行业里,任何公司都没有宽裕的决策时间。而架构师需要的,就是尽可能多的决策时间。
怎么获取呢?公司高层在讨论核心业务的规划时,要邀请架构师参与,让他们提前知道公司面临的挑战和即将到来的模式转型。而不是在公司完成最终决策之后,通知架构师第二天就要给出设计方案。这其实需要公司有个相对透明的文化,任何业务产品和设计的讨论,都要把对应的软件架构师邀请进来。
2)对架构师意见的尊重。有不少公司在做业务决策时,要求架构师绝对服从,积极拥抱变化,勇于挑战。在业务目标、实施时间和技术可行性等方面,完全不接受架构师或者技术管理者的输入。
让架构师和技术团队作为决策的参与者,并在决策过程中充分尊重他们的判断。不要每天拿“既要也要还要”来说事儿。
3)对错误的包容度。任何高风险的决策,必然有错误的可能性存在。但是有些公司非常惧怕风险,会通过各种惩罚性措施来防止意外事件的发生,而且还配置有严格的追责流程。
放弃或改变考核、处罚机制和追责制度。学习亚马逊建立“Bias for Action”的文化,也就是鼓励试错的企业文化。 当然,这对公司高层的决心有着非常高的要求。
3、正确的目标
架构师在不同的成长阶段需要有不同的目标。无论目标是什么,我们都先假定这些目标是正确的。
从决策最高层到一线经理,都会出现设错目标的可能。目标设错的原因有很多,比如顶层决策者能力不足,没有看对方向;中层决策者由于自私,而将目标转移到最大化自己团队利益的方向上;一线管理者因为信息缺失导致判断失误,等等。
设错目标并不可怕,但如果一家公司缺乏有效的纠错机制,那将是非常可怕的事情。如果在这样的组织里做架构师,很难学习到“如何通过优化软件架构来帮助公司提升生存优势”的方法。因为在最开始,你就没有拿到过正确的目标。换句话说,往机器学习系统里灌注的训练数据是错误的,无论怎么训练,都无法训练出正确的模型!
其实这种目标管理的环境也不难鉴别。这样的目标在定义中就公开透明,鼓励全员参与;在决策中尊重数据和事实输入,有确定的 KPI 和数据结果来衡量产出;在最终的复盘中,不忌讳失败,会认真反思分析。
这些充分条件就是外部给予的成长环境。有了这样的成长环境,就能成长为一名好的架构师。而这些必要条件是你自身具备的能力,如果不具备,就无法做好一个架构师。
充分条件保证了成长的有效性,必要条件保障了成长的速度。如果能同时满足充分条件和必要条件,就能获得更多高质量成长的机会,从而在架构师这个岗位上快速且有效的成长。