工作近十年了,[软件工程师] 一直是我职业 title 的中心词,只是前面的修饰语在不断变化,从初级、中级、高级到资深。
其实 [软件工程师] 是一个很泛化的定义,工作现实中软件工程师是被具体分工的,形成了具体定义的工程师。定义
软件工程师是下面这些具体工程师的总体概括:
- 开发工程师
- 测试工程师
- UI工程师(又称设计师)
- 产品工程师(虽然现在多称产品经理,但实际的工作内容更偏向工程师性质)
- 运维工程师
也许还有些其他分工的具体工程师定义,这里就不一一列举了。
我只是偶然发现所有这些具体分工的工程师都可以归类到几个不同的属性上,那么这些属性又是什么?属性
玩过游戏的人都了解,游戏角色一般有两种主要属性:攻击属性和防御属性。
一般为了游戏平衡性而言,不同角色有的会偏向攻击属性、有的偏向防御属性,这在组队游戏中特别明显。 而软件开发本身就是一个组队活动,因此各类分工的工程师也体现出了这两种属性。以上具体分工的工程师中,运维工程师和专职维护线上系统的开发工程师更偏向于防御属性,其他则是偏向攻击属性。
攻防属性的区分是和上述工程师工作性质的自然联想,防御就是守住阵地(维护已有系统),攻击则是开辟新的战场(新产品、新系统)。 在团队中还有一些其他角色,如:项目经理、架构师等,这类角色的工作属性会更复杂一些。 项目经理协调资源、控制进度,若是在开辟新战场的项目中则像是萧何一类角色。 架构师则像是将军,刘邦项羽中原争霸,将军不止一个,但萧何却只有一个,所以一个大项目,项目经理就一个,架构师却不止一个。 不同专注领域的架构师充当了不同类型将军角色,有擅长打冲锋的,有擅长打阵地,各有不同,此时架构师的角色属性为攻击型。系统业务量快速增长,老系统变得不再稳定,维护升级困难,然后启动架构升级,此类项目中的架构师和开发工程师都属于防御型。
而项目经理在这两类项目中既不属于攻也不属于防,而是另一类型:加成属性。 在游戏中也有类似的角色,这类角色帮助提升团队的群体属性,例如攻击光环、群体回血之类的。 管理角色的最大价值就在于群体的加成属性,当然这类加成属性可以是正的也可以是负的,取决于管理本身的带来效果。发展
《冰与火之歌》里有一道长城(The Wall),绵延 300 英里,它将近有 700 英尺那么高。
十年差不多也会碰到职业发展的一道长城,如果十年还没碰到那么很可能说明你没有一直沿着大致相同的方向在走。从工程师到架构师,继续加强攻击属性,提升技术锋利度,进入技术专家领域。
锋利意味着更窄更尖,从众行到独行。 防御属性的提升突破需要足够生命周期的产品、足够规模的系统,和攻击属性一样最终殊途同归。 而加成属性的提升看上去的路径是从工程师到培训师到技术顾问,被加成项目、团队或公司的成功是自己品牌力,影响力的最好背书。无论从哪个方向去攀登长城,最终成功翻越的经验正如《冰与火之歌》所说 “别低头看下面”。
而能否翻越长城可能也是我下一个十年的最大挑战。下面是我自己开的一个微信公众号 [瞬息之间],除了写技术的文章、还有产品的、行业和人生的思考,希望能和更多走在这条路上同行者交流,有兴趣可关注一下,谢谢。