13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

头衔很重要!程序员必须要搭建自己的“工作阶梯”

编者按:初创企业在早期一般都是人人身兼数职,倡导扁平化的管理,并不怎么看重头衔。但是随着组织的扩大,初期的这种管理模式会引起诸多问题。身兼软件工程师、经理与创始人角色的Chuck Groom从个人经验出发,分析了设定工作阶梯的好处,并提出了他的建议。无论是创业公司管理人员还是软件工程师都可以参考一下。

额济纳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

软件公司应该审慎地考虑工程岗位职级的设置,制定好一个工作阶梯,向员工解释清楚对其的希望,不同角色之间的区别,以及职业发展的领域。

在本文中,我将讨论为什么制定工作阶梯可以帮助到每个人;好的工作阶梯应该是什么样的;我对软件工程师职级是如何思考的;最后我还会提供一些建议。尽管本文的受众是管理层,但工程师看了之后也应该能从公司的角度去思考而获得一些洞察。

注意,本文仅讨论独立贡献者(IC)的工程发展路径。其他并行的发展路径(管理、产品)包括转岗均不在本文讨论之列。这些话题都值得讨论,但不在本文范畴之内。

是的,工作“阶梯”的想法有点奇怪

工作“阶梯”这种说法暗示了所处行业的高度结构化、非常稳定的,有着抵达某个有意义的终点的长期路径,就像成为合作伙伴那样。但是现代的职业流动性更强发展方向更加多样。员工往往每几年就要变动一下工作。

不要把职业阶梯看成是长远的人生规划。这样你会把太多关注放在阶梯顶部(“我究竟应该怎么过我的一生?”),但这是你下一步的关注重点。阶梯就是个工具,让你设定好对未来几年的期望。

假设你没有工作阶梯

新公司或者团队往往对头衔或者角色没有很好的定义。实际上,这他们也许反而会引以为豪;你应该听说过“我们是一家扁平化的组织”,“头衔并不重要。”尽管大家的薪水可能很不一样,但大家普遍感觉这是英才管理的模式。

好吧,如果没有工作阶梯地球也照转的话,为什么要自找麻烦改变这些呢?我们可以看一些例子。

当设定好职级时每个人都是胜利者

工作阶梯对员工和公司都有帮助。

公司原则

工作阶梯传达的是那些技能和特质重要。这些必须与公司的使命与价值观一致——你希望大家把解决问题的文化聚焦到最终客户、解决冲突以及做出艰难决定上。出现在公司原则和使命的语句应该纳入到工作阶梯里面,也应该用到员工反馈里面。Amazon的领导力原则就是很好的例子。

好的工作阶梯应该包括哪些要素?

制订得当的工作阶梯应该做到:

反模式包括:

我针对软件工程师制订的工作阶梯

我倾向于按照所有权和责任范围而不是既定的技能程度制订工作阶梯。我之所以偏好这种模式是因为它跟任务分解和分配方式匹配得很好,而且不同层级之间也有着明显的不同。

当然,技能仍然非常重要。所有软件工程师都必须能够写代码并且在团队环节下解决客户问题。我发现的一些基本特质包括:

不过话又说回来,这些能力之间其实也没有明显的“阶梯函数”级的差异,你随便拿出一项技能就能够说“啊哈!这意味着你是2级而不是3级水平!”我的工作阶梯假设的是这些特质重要,但避免特别的指引。

唯一的例外是4级(及以上水平)工程师;这个层级及以上需要非常深厚和特殊特殊的技术和架构性经验。

1级

初级工程师可以给公司带来很多的原始活力和潜能。他们做你交给他们的工作——往往是很多的工作。不过他们需要帮助,要有预先的项目计划,要把任务分解成特定的工作细项。团队领导需要经常检查一下,确保他们没有偏离方向。

我更愿意给他们的头衔时“软件工程师”(把“初级”去掉),因为没人希望被叫做“初级”。在内部你可以叫他们1级工程师,这并没有冒犯之意。

我发现1级工程师的面试是最难安排的,因为候选人的技能水平都差不多。主动性和批判性思维是最重要的,但这些特征很难在1、2小时内就判断出来。2年内没法晋升到2级的1级工程师就让他们走吧。

2级

2级工程师可以负责某个重大的软件很大一部分。你可以信任这些人,他们可以把松散定义的请求做对——分解负责任务,做出合理决策,而且在定期检查间相当独立地自主工作。沟通和批判性思维是必须的技能。

这些人应该叫做“软件工程师”还是“资深软件工程师”呢?我持中立态度,但倾向于2、3级工程师的名片和LinkedIn上面都用“资深软件工程师”的头衔,而内部就按层级称呼他们。

尽管有的2级工程师可以当好几年,但最终他们应该能证明自己可以承担更多的责任并晋升到3级,否则的话就离开组织。

3级

3级工程师对整个产品(比如整个应用或者整套服务)负责。除了交付可靠、可维护的软件以外,他们还了解公司动态和好的流程是什么样的。

资深工程师往往还要额外戴一顶“技术领导”的帽子。这意味着他们要承担(吃力不讨好的)项目管理和流程监督的工作。他们要保证列车准点运行。注意,技术领导并没有直接上级也没有老板,他们完全是靠责任感来做事。

4级(及以上)

4级工程师是能够评估系统级平台决定设定长期的公司级技术战略的架构师。他们往往有两种角色,既是某功能团队的独立贡献者,也是跟CTO合作的架构审核人员。你的架构师应该是谦逊的,外向的;他们是你工作上的拉拉队。

其他工作阶梯

当然,这里设定工作阶梯只是其中的一种,你可以跟其他出色的博客比较一下。这里就有一些:

以下这些领域你会看到不同的观点:

相关建议

什么时候需要建立工程工作阶梯?

要我说等到你有5到10位软件工程师并且开始考虑找人当全职经理时,就应该开始考虑明确工作角色和职业路径了。

谁来编写工作阶梯?

让一个委员会从头开始编写一份好的工作阶梯是很难的。我建议先找一位工程经理写好草稿,然后交给工程管理团队进行讨论和研讨。另一个办法是让所有的过程经理各写一份草稿,然后碰头比较一下,再由委员会合并。

头衔很重要

即便有人真诚地告诉你“头衔不重要,”其真正含义也只是说“目前这个时候头衔不重要。”随着公司的发展,职级设定是不可避免的;头衔可以用来作为职级的代表,要求要有相应的薪水和职业选项。当你换工作时,招聘和工资薪酬也要以你的上一份工作作为参考。

永远都要确保写清楚你的头衔和角色。

工资跟职级绑定,用股权激励表现

要当成你要把它贴办公室门口一样管理工资

— M. W. Mantle,《知人善用,Managing the Unmanageable》

雇主应该基于行业可比数据针对每一个职级都建立一个薪水范围。基于基本工资水平,或者用大幅加薪来奖励一流表现者的确会限制他们招聘到明星求职者的能力,但这是保证预算在控制范围并避免不公平的唯一可靠办法。

予以一次性股权授予并设定未来的最短生效期是比较好的做法,比方说授予2年期权每年行权就是奖励特别出色员工的一种手段。这向关键员工表明即便你不能给予大幅加薪,但你仍然非常重视他们的贡献并且希望他们留下来继续一起奋斗。

提拔看能力而不是资历

提拔一般不是奖励其过去的表现。相反,管理层提拔的是那些展现出解决下一级的更大更棘手问题潜能的人。

 — Ray Weiss,《技术生涯导航员( The Technical Career Navigator)》

提拔那些已经胜任下一级别职能的人。如果一位2级工程师想要获得晋升,他们应该展现出可以做3级工作的能力。作为经理你的工作是提供项目给他们,让他们获得初步经验(并且在他们不大胜任的情况下保证项目的软着陆)。

不要让大家以为晋升只是时间的函数,或者对能力不够的人打开晋升大门。

不必要求计算机科学学位

就1-3级工程师而言,我并没有发现正规教育是成功的可靠预测指标。我就见过好几个表现出色的人是自学成才的,或者是参加了6个月的职业编码学习后过来的。我不再要求应聘者具备CS本科学位,而且面试的时候也不再问一些偏重算法的问题了。

4级(首席)工程师角色是例外;这个角色在算法、系统、架构等等方面需要有可靠的学术基础。

第三方适用工作阶梯吗?

不;他们是受雇方。你对他们的评估不在于他们的能力水平,而在于他们是否完成了特定项目。

实习生适用吗?

再次强调,实习生不在工作阶梯范畴,因为你没有当全职来雇佣他们。对于实习生我的原则是这样的:

  1. 你开展实习生计划的原因是想从中物色好的苗子次年招聘为1级工程师。(当然也有其他一些好处,但这是主要原因)

  2. 因此,仅招聘那些准备毕业并且次年要就业的那些实习生。避免大二学生和毕业生,因为这些人未必会留下来。

  3. 招聘实习生的条件是:这个人明年能否达到我们初级工程师的招聘门槛?避免招那些态度冷淡的人;好的学生表现的确非常突出。我通常会挑选那些已经写过不少代码而且讨论起来总是很兴奋的人,比方说在Github上有业余项目的那些。

最后思考

员工希望了解自己在组织里面的位置。有一个职业的里程碑,把期望和目标都写得清清楚楚会让每个人的工作都变得更加容易。

编写工作阶梯的时候,关键要:

制定了工作阶梯后你也可以在今后调整角色和评估标准;但是一定不能违反公平性原则。每个人都必须坚持一致的标准,否则你的士气和生产力就要崩溃。一份好的工作阶梯能够创造出公平的职场竞争环境,为比赛设定好规则。


网站栏目:头衔很重要!程序员必须要搭建自己的“工作阶梯”
网站路径:http://cdbrznjsb.com/article/ccepsed.html

其他资讯

让你的专属顾问为你服务