1.1 软件业人才结构
1.1.1 金字塔型,还是橄榄型?
有人说,软件业当前的人才结构是橄榄型(中间大两头小),需求量最大的“软件蓝领”短缺问题最为凸显,这极大地制约着软件业的发展,因此要花大力气培养大量的初级软件程序员等“蓝领工人”。
但业内更多人认为,软件业当前的人才结构是金字塔型,高手和专家型人才的总量不足才是“制约发展”的要害,因此一方面软件工程师应争取提升技能、升级转型,另一方面企业和产业应加强高级技能培训、高级人才培养。
软件业的人才结构,到底是金字塔型,还是橄榄型?
本书认为,一旦区分开“学历结构”和“能力结构”,问题就不言自明了(如图1-1所示):
图1-1 人才结构的两个视角
· 学历结构 = 橄榄型。“中级学历”最多。有资料称,软件从业者中研究生、本科与专科的比例大致是1:7:2。
· 能力结构 = 金字塔型。“初级人才”最多。工作3年以上的软件工程师,就一跃成为“有经验的中级人才”了吗?显然不一定。
· 有学历 ≠ 有能力。每个开发者真正追求的是,成为软件业“人才能力结构”的顶级人才或中级人才。
1.1.2 从程序员向架构师转型
人才能力的金字塔结构,注定了软件产业的竞争从根本上是人才的竞争。具体到软件企业而言,一个软企发展的好坏,极大地取决于如下人才因素:
· 员工素质。
· 人才结构。
· 员工职业技能的纵深积累。
· 员工职业技能的适时更新。
借用《华为研发》一书中的说法,“机会、人才、技术和产品是公司成长的主要牵动力。机会牵引人才,人才牵引技术,技术牵引产品,产品牵引更大的机会。在这四种牵动力中,人才所掌握的知识处于最核心的地位。”
然而,纯粹靠从外部“招人”,不现实。何况,软件企业、软企的竞争对手和软件产业环境,都处在动态发展之中。因此,软件企业应该:
· 定期分析和掌握本公司的员工能力状况、人才结构状况;
· 员工专项技能的渐进提升(例如架构技能、设计重构技能);
· 研发骨干整体技能的跨越转型(例如高级工程师向架构师、系统工程师和技术经理的转型)。
对于本书的主题“软件架构设计能力的提升”而言,架构设计能力是实践性很强的一系列技能,从事过几年开发工作是掌握架构设计各项技能的必要基础。因此可以说,“从程序员向架构师转型”不仅是软件开发者个人发展的道路之一,也是企业获得设计人才的合适途径。