头图

作者:之道前端

在你的职业生涯中,是否产生过这些困惑?

一直在做业务需求,感觉自己一点技术提升都没有
每天加班累死累活,需求都按时上线,没有发生重大事故,为啥每次考核都是 B (符合预期、一般绩效)?
一直在做业务需求,根本没有内容拿去答辩
为什么他的晋升速度这么快?
为什么他总是拿好绩效?
如何应对 35 岁职业危机?

如果现在你还有这些困惑的话,那你一定还没进入程序员职场的良性循环,或者你还没意识到自己已经进入了良性循环,需要怎样加固这个循环。

顺便吆喝一句,技术大厂,前后端测试捞人

那么,什么是职场循环呢?

职场循环
绝大部分的职场工作都是重复并枯燥无味的。
士兵日复一日地训练;
婚庆公司策划了太多千篇一律的婚礼;
达芬奇画了多少幅鸡蛋?
你看,不管是需要创意的策划工作,还是需要天马行空的艺术,一样要做非常多重复的工作。
对于我们程序员来说,也是一样的,开发需求,然后提测;接着开发新需求,然后提测...这就是我们程序员职场的循环。
这个职场循环是个客观事实,我们无法打破它。因此,除非你跳出这个循环,比如创业自己当老板。

否则,你需要认识它,研究它,并利用它。

正常循环

下面这个图可以很好地体现程序员职场循环。

我们的需求是一个接着一个的。如果你不是这样子的话,那说明你非常幸福,工作不会很紧张。但在目前的降本增效市场大环境下,这样的好工作已经不多见了。

从上图中也可以看出,我们的大部分工作时间都消耗在需求开发、bugfix 和需求发布上,再加上万恶的日常值班。

把它们组合在一起,就形成了程序员职场的正常循环,如下图所示:

业务需求工作评估时间 = 业务需求实际投入时间 + 值班/bugfix/需求发布投入时间。

这个等式是我们程序员工作最基本的时间等式。如果这 3 者刚好达到平衡,就是我们最正常的循环。

恶性循环

很多人会忽略第 3 个元素:值班/bugfix/需求发布投入时间,从而让这个等式失衡,变成:

业务需求工作评估时间 < 业务需求实际投入时间 + 值班/bugfix/需求发布投入时间。

结果,就是我们的工作会进入恶性循环。

由于实际投入的时间大于计划的排期,因此,为了不让需求延期,我们只能通过加班来赶进度。但是,加班会带来 2 个问题:

经常熬夜加班,会影响我们后续的工作状态
赶工出来的代码质量是无法保证的,导致我们的项目代码的维护性越来越差

虽然我们连续加班了 3 天,终于按期提测需求了,但是下一个需求又来了,我们根本没有时间停下来思考,加班的原因和问题在哪里,我们就要继续做新需求的工作评估和排期。
我们只能按照之前的经验去评估,得出跟之前差不多的工作量。
但是,由于加班带来的工作状态问题和项目代码维护性差的问题,嗯,就是我们常说的屎山代码问题,我们实际的开发时间越来越长,同时由于代码质量问题,也给我们带来更多的 bug 和 bugfix 耗时。

另一方面,随着项目代码的质量越来越差,同时由于我们没有时间去关注值班和需求发布的提效问题,这部分问题占用我们的时间也越来越多。
这样一来,新需求的进度就更加有问题了,那怎么办呢?还是加班呗...
如此,恶性循环达成了。

如果你遇到这种情况,需要采取以下行动:

首先,你要意识到现在的状态是有问题的。绝大多数人都没有意识到这是有问题的。他们思考的问题是:我天天加班,工作累死累活,把需求按时提测、上线,为什么还是一般绩效?
如果你已经认识到这个恶性循环,那解决办法就很明显了:

    适当延长我们的需求工作排期,俗称加 buffer
    提升我们的研发效率和质量。

前者是短期解决方案,可以快速调整自己的状态,先让自己慢下来,喘一口气。但在某些情况下,我们不太好实现这个方案,比如被压排期,这是很常见的。那我们就要利用更多的空余时间关注第 2 个解决方案。

后者才是长期的解决方案,也是让我们进入良性循环的关键。

良性循环

想要让我们的工作效率提升,主要是从以下 3 个方面着手:

提升研发效率,可以缩短新需求开发时间
提升研发质量,让我们的代码更不容易出问题,这样可以减少 bug 数量和需求发布可能出现的问题数量,从而减少这些问题的时间投入
提升问题排查效率,bugfix、值班问题、需求发布问题,这些事项的工作效率都非常依赖问题排查能力

当我们的工作效率提升之后,在原有工作排期不变的情况下,我们可以节省下一些空余时间。我们可以利用这些空余时间,做以下事情:

学习&实践新技术
回顾我们的代码、方案设计、项目,总结经验,拓展学习
研究自己的个人研发环境和流程,解决研发摩擦点,进一步提升研发效率
完善排查问题的能力建设
...

我们通过节省下来的空余时间,不断成长自己的技术能力,提升自己的工作效率。这样,我们做后续的需求时,就可以实现地更快,代码的质量也更高,项目的可维护性就更高,更加不容易出问题,排查问题的效率也更高。我们就会节省下更多的空余时间,继续提升自己的技术能力。

如此,你就进入了良性循环。

晋升发展良性循环

在进入了正常的良性循环一段时间之后,你需要进一步扩展,进入新的、更大的良性循环。先来看看这个循环长什么样子:

当我们的研发效率、研发质量提升上来之后,会慢慢发现,这样日复一日地做业务需求,对自己的技术成长已经微乎其微了。

这时候,我们就可以开始把更多时间投入到:

业务优化事项
技术项目
团队研发流程优化项目
...

是的,我们可以做更多的项目,输出更多的产出。而这些产出可以帮助我们拿到更好的绩效,同时,最重要的是,它们可以给领导塑造更好的印象:这家伙能力上来了,做事又靠谱,可以承担更多的大项目了。

这时,领导就会有意识地给我们安排更复杂的项目,更加核心的大需求。我们就有更多的机会和场景提升自己的技术能力,并总结经验。随着我们的技术能力的进一步提升,我们的工作效率就越来越快,就有更多的时间投入到项目中,做出更多的产出,获得更好的绩效。

这样,晋升也就顺理成章了。

而另外一边,图中第 7 步到第 1 步有一个箭头,同时第 1 步【安排的业务需求工作量】标绿。这里是要说明,当领导开始给我们安排核心的业务需求和技术项目时,相应地,以前的日常业务需求的安排就会变少。我们的时间和精力就会转移到对自己的成长更有价值的事情上面去,从而进入另外一个良性循环。

副业发展良性循环

如果说,公司内能够投入的事情比较有限,或者你觉得公司内的事情价值有限的话,那完全可以利用空余时间去建立自己的副业发展良性循环。

这是跟主业的循环并行的一个循环。

当副业起来之后,会产生更多的收入,有了这些收入,我们就有了更多的底气和内心的笃定,从而可以把这些收入想办法转换成更多的资源投资到自己身上,比如再教育、培训、参加研讨会、结交更多的朋友等等,这些都能提升自己的视野,带来更多的成长机会。随着我们的能力持续提升,我们的工作效率就越高,从而有更多的时间、精力、经验投入到自己的副业中,并把副业运营地越来越好,带来更多的收入,甚至让副业的收入高于主业。

当然,这个循环是非常难进入的,可一旦进入了,就能启动你的副业飞轮。

最后

让我们回到最开头提到的问题:

一直在做业务需求,感觉自己一点技术提升都没有

    是不是处在恶性循环,一直在做无意义加班?
    是不是处在正常循环,还不知道要想办法进入良性循环?


每天加班累死累活,需求都按时上线,没有发生重大事故,为啥每次考核都是 B (符合预期、一般绩效)?

    这是明显的恶性循环的表现,要想办法扭转,并进入良性循

一直在做业务需求,根本没有内容拿去答辩

    要想办法进入晋升发展良性循环

为什么他的晋升速度这么快?

    人家已经进入晋升发展的良性循环了

为什么他总是拿好绩效?

    人家已经进入晋升发展的良性循环了

如何应对 35 岁职业危机?

    要想办法进入副业发展良性循环

据我观察,大部分的程序员还处于正常循环,甚至有部分还在恶性循环中苦苦挣扎,希望这篇文章能够帮助到你。


幸福的闹钟
34 声望10 粉丝