作者:之道前端
在你的职业生涯中,是否产生过这些困惑?
一直在做业务需求,感觉自己一点技术提升都没有
每天加班累死累活,需求都按时上线,没有发生重大事故,为啥每次考核都是 B (符合预期、一般绩效)?
一直在做业务需求,根本没有内容拿去答辩
为什么他的晋升速度这么快?
为什么他总是拿好绩效?
如何应对 35 岁职业危机?
如果现在你还有这些困惑的话,那你一定还没进入程序员职场的良性循环,或者你还没意识到自己已经进入了良性循环,需要怎样加固这个循环。
顺便吆喝一句,技术大厂,前后端测试捞人
那么,什么是职场循环呢?
职场循环
绝大部分的职场工作都是重复并枯燥无味的。
士兵日复一日地训练;
婚庆公司策划了太多千篇一律的婚礼;
达芬奇画了多少幅鸡蛋?
你看,不管是需要创意的策划工作,还是需要天马行空的艺术,一样要做非常多重复的工作。
对于我们程序员来说,也是一样的,开发需求,然后提测;接着开发新需求,然后提测...这就是我们程序员职场的循环。
这个职场循环是个客观事实,我们无法打破它。因此,除非你跳出这个循环,比如创业自己当老板。
否则,你需要认识它,研究它,并利用它。
正常循环
下面这个图可以很好地体现程序员职场循环。
我们的需求是一个接着一个的。如果你不是这样子的话,那说明你非常幸福,工作不会很紧张。但在目前的降本增效市场大环境下,这样的好工作已经不多见了。
从上图中也可以看出,我们的大部分工作时间都消耗在需求开发、bugfix 和需求发布上,再加上万恶的日常值班。
把它们组合在一起,就形成了程序员职场的正常循环,如下图所示:
业务需求工作评估时间 = 业务需求实际投入时间 + 值班/bugfix/需求发布投入时间。
这个等式是我们程序员工作最基本的时间等式。如果这 3 者刚好达到平衡,就是我们最正常的循环。
恶性循环
很多人会忽略第 3 个元素:值班/bugfix/需求发布投入时间,从而让这个等式失衡,变成:
业务需求工作评估时间 < 业务需求实际投入时间 + 值班/bugfix/需求发布投入时间。
结果,就是我们的工作会进入恶性循环。
由于实际投入的时间大于计划的排期,因此,为了不让需求延期,我们只能通过加班来赶进度。但是,加班会带来 2 个问题:
经常熬夜加班,会影响我们后续的工作状态
赶工出来的代码质量是无法保证的,导致我们的项目代码的维护性越来越差
虽然我们连续加班了 3 天,终于按期提测需求了,但是下一个需求又来了,我们根本没有时间停下来思考,加班的原因和问题在哪里,我们就要继续做新需求的工作评估和排期。
我们只能按照之前的经验去评估,得出跟之前差不多的工作量。
但是,由于加班带来的工作状态问题和项目代码维护性差的问题,嗯,就是我们常说的屎山代码问题,我们实际的开发时间越来越长,同时由于代码质量问题,也给我们带来更多的 bug 和 bugfix 耗时。
另一方面,随着项目代码的质量越来越差,同时由于我们没有时间去关注值班和需求发布的提效问题,这部分问题占用我们的时间也越来越多。
这样一来,新需求的进度就更加有问题了,那怎么办呢?还是加班呗...
如此,恶性循环达成了。
如果你遇到这种情况,需要采取以下行动:
首先,你要意识到现在的状态是有问题的。绝大多数人都没有意识到这是有问题的。他们思考的问题是:我天天加班,工作累死累活,把需求按时提测、上线,为什么还是一般绩效?
如果你已经认识到这个恶性循环,那解决办法就很明显了:
适当延长我们的需求工作排期,俗称加 buffer
提升我们的研发效率和质量。
前者是短期解决方案,可以快速调整自己的状态,先让自己慢下来,喘一口气。但在某些情况下,我们不太好实现这个方案,比如被压排期,这是很常见的。那我们就要利用更多的空余时间关注第 2 个解决方案。
后者才是长期的解决方案,也是让我们进入良性循环的关键。
良性循环
想要让我们的工作效率提升,主要是从以下 3 个方面着手:
提升研发效率,可以缩短新需求开发时间
提升研发质量,让我们的代码更不容易出问题,这样可以减少 bug 数量和需求发布可能出现的问题数量,从而减少这些问题的时间投入
提升问题排查效率,bugfix、值班问题、需求发布问题,这些事项的工作效率都非常依赖问题排查能力
当我们的工作效率提升之后,在原有工作排期不变的情况下,我们可以节省下一些空余时间。我们可以利用这些空余时间,做以下事情:
学习&实践新技术
回顾我们的代码、方案设计、项目,总结经验,拓展学习
研究自己的个人研发环境和流程,解决研发摩擦点,进一步提升研发效率
完善排查问题的能力建设
...
我们通过节省下来的空余时间,不断成长自己的技术能力,提升自己的工作效率。这样,我们做后续的需求时,就可以实现地更快,代码的质量也更高,项目的可维护性就更高,更加不容易出问题,排查问题的效率也更高。我们就会节省下更多的空余时间,继续提升自己的技术能力。
如此,你就进入了良性循环。
晋升发展良性循环
在进入了正常的良性循环一段时间之后,你需要进一步扩展,进入新的、更大的良性循环。先来看看这个循环长什么样子:
当我们的研发效率、研发质量提升上来之后,会慢慢发现,这样日复一日地做业务需求,对自己的技术成长已经微乎其微了。
这时候,我们就可以开始把更多时间投入到:
业务优化事项
技术项目
团队研发流程优化项目
...
是的,我们可以做更多的项目,输出更多的产出。而这些产出可以帮助我们拿到更好的绩效,同时,最重要的是,它们可以给领导塑造更好的印象:这家伙能力上来了,做事又靠谱,可以承担更多的大项目了。
这时,领导就会有意识地给我们安排更复杂的项目,更加核心的大需求。我们就有更多的机会和场景提升自己的技术能力,并总结经验。随着我们的技术能力的进一步提升,我们的工作效率就越来越快,就有更多的时间投入到项目中,做出更多的产出,获得更好的绩效。
这样,晋升也就顺理成章了。
而另外一边,图中第 7 步到第 1 步有一个箭头,同时第 1 步【安排的业务需求工作量】标绿。这里是要说明,当领导开始给我们安排核心的业务需求和技术项目时,相应地,以前的日常业务需求的安排就会变少。我们的时间和精力就会转移到对自己的成长更有价值的事情上面去,从而进入另外一个良性循环。
副业发展良性循环
如果说,公司内能够投入的事情比较有限,或者你觉得公司内的事情价值有限的话,那完全可以利用空余时间去建立自己的副业发展良性循环。
这是跟主业的循环并行的一个循环。
当副业起来之后,会产生更多的收入,有了这些收入,我们就有了更多的底气和内心的笃定,从而可以把这些收入想办法转换成更多的资源投资到自己身上,比如再教育、培训、参加研讨会、结交更多的朋友等等,这些都能提升自己的视野,带来更多的成长机会。随着我们的能力持续提升,我们的工作效率就越高,从而有更多的时间、精力、经验投入到自己的副业中,并把副业运营地越来越好,带来更多的收入,甚至让副业的收入高于主业。
当然,这个循环是非常难进入的,可一旦进入了,就能启动你的副业飞轮。
最后
让我们回到最开头提到的问题:
一直在做业务需求,感觉自己一点技术提升都没有
是不是处在恶性循环,一直在做无意义加班?
是不是处在正常循环,还不知道要想办法进入良性循环?
每天加班累死累活,需求都按时上线,没有发生重大事故,为啥每次考核都是 B (符合预期、一般绩效)?
这是明显的恶性循环的表现,要想办法扭转,并进入良性循
一直在做业务需求,根本没有内容拿去答辩
要想办法进入晋升发展良性循环
为什么他的晋升速度这么快?
人家已经进入晋升发展的良性循环了
为什么他总是拿好绩效?
人家已经进入晋升发展的良性循环了
如何应对 35 岁职业危机?
要想办法进入副业发展良性循环
据我观察,大部分的程序员还处于正常循环,甚至有部分还在恶性循环中苦苦挣扎,希望这篇文章能够帮助到你。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。