2019年初,由于公司裁员,我成为了公司里的唯一一个互联网程序员,即负责与线上商城有关的所有维护和开发事宜。这样的一段经历,在我看来,比较有趣,因为我一直想尝试,看看自己是否有能力做到一个人维护开发一个系统。事后证明,我也的确做到了一部分,至于为什么说只有一部分,听我慢慢道来。
工作
由于只有我一个人,我的工作包括了前端开发,后端开发,运维,以及与业务人员沟通需求等事项。对当时的我来说,已经在这家公司从事了两年开发工作,其实前端开发和后端开发已经轻车熟路,相比之下,我对运维这一块很陌生,也想借此机会,了解一下。这样,我也就能够对整个互联网产品的开发维护有个全面的了解了。我当时是有这样的考虑的,但是后来发现,其实更多时候,我其实是把这个项目以前从未接触过的边边角角的业务和技术都拎出来晒了晒,以至于,后来很多问题,我都不得不通过看代码,了解其业务实现。也让我对这个系统的后端服务有了更加全面的了解。
开发
我有两个月的时间,来开发一个服务。也就是我之前提到的https://www.jianshu.com/p/bd2090b7140e ,没有人监督,我自己也不急,考虑问题也考虑得很全面,另外,基本上每天的工作状态处于半天开发,半天维护的状态。因此从时间跨度上来看,开发了很长的时间。这两个月,现在想来其实是蛮享受的,我也挑战了一把独立开发,我曾经以为我自己没有能力独立开发,但是后来发现,通过一步一步走,也是能够做到的。
维护
除了开发之外,每天还有一项任务就是系统的维护。我在最初做这件事情的时候,经常会忘记。因此,就在我自己的手机日历上加了提醒,每个工作日的早上九点半,查看系统的任务队列处理情况以及日志报错情况。这个日历提醒直到最近,才被我去掉。有时候,因为有一些任务队列的错误,每天都要花费一些时间来处理这些事情。也因为这些错误,又总是能够发现系统代码上的一些问题,这样也就能够及时改正。
我印象很深,又一个任务队列的任务,
技术上
技术上,以前从来没有动过的自有后台框架,由于要了解其部署过程,也有了一些深入的了解。
这五个月的时间,其实还是学到了很多。但更多的并不是单纯的理论知识。更多的是,如何跟周遭的形形色色的人打交道,业务人员,需要对接的技术人员,不懂技术的领导,别的业务部门的领导等等。当然除此之外,还有,我前面提到的对整个互联网线上服务的全方面的了解和认知。
我其实是身心俱疲的,在这几个月的时间里,我看着身边熟悉的同事一个个离开,公司的经营不景气,于是开始裁员。虽然是裁员,可是也裁不到我这里,毕竟我已经是那个only one了 。然而,对于其他的业务部门的同事来说,他们肩上的担子更重了。离职了很多人,离职的交接工作很匆忙,于是原本早就教给过这些人的系统使用,又要重新再教一遍,对我来讲,实在是不情愿。当然,偶尔也会情愿,比如写了很久的代码,已经累了的时候,如果恰好有个业务部门的同事过来问问题,我就当是休息休息,耐心给她解答了。
但是,毕竟身兼数任,我明显感觉自己做的太多。却每一件都做得不足够好。
不再一个人
一个人的状态持续了两个半月的时间,之后,由于公司的“战略”,需要“紧急”开发一个项目,我经过了评估,认为我自己一个人无法在规定的时限内,完成开发。于是就有了大概半个多月的招聘,我也当了一把面试官,面试了五六个人选,最后入职的那位同事,也是通过我的面试才进入这家公司的。
然而,人手虽然多了,但是却感觉工作量,较之前两个月有了大幅的增长,在前两个月,我没有加过班,但是自从这位新同事入职之后,我们也会因为赶工期而加班,这并不是一个好事,尤其是当我正与女朋友热恋的时候。也就是在这个时候,我辞职的意念越来越强烈。
疲惫
公司处在“危险期”,于是又给人一种乱弹琴的感觉。有一次,我“有幸”参与了一场公司老总都参与的会议。会议的主要内容是谈论某个项目是否有价值做,以及怎么做的问题。在这次会议上,我明显感受到了老板的强势。虽然,偶尔也有人提出不同的看法,但是大致上,还是老板说啥,下属们听啥。老板明明是做实体经济起家的人,却在o2o上指手画脚,很多的想法,给人的感觉甚至是自己想到了一个点子,于是拼命地群策群力,给这个点子找出几个值得做的理由。而不是,因为有那么几个合理的理由,而去做这样一个事情。
我从来也不看好这个项目,做起来也当然觉得无聊。我细数了一下,在此之前,做过的很多项目或功能都已经荒废掉,没人用了。我开始质疑我自己的工作,我的付出最后得到了什么。当然,我最质疑的其实是这个公司的运营策略和方针。牺牲了那么多的人力物力财力,最后却统统成了空耗,白白浪费掉了。
那个项目进入测试阶段,我提出了离职。而在提出之后不久,却突然被告知,公司大领导决定,上面的项目暂时搁浅,集中精力去做另外一个新的项目。而那个新的项目,又是一个充满槽点的项目。这个公司里,没有人懂互联网。就像是以前看过的那个段子,人人都是产品经理,人人都想设计互联网产品,但是哪里是那么容易的。这个公司大老板,给我一种强烈的外行领导内行的感觉。其实在我看来,外行不是不能领导内行,问题在于外行应该给予内行足够的空间,而不是四处指手画脚。就像是以前听到的一个说法,领导的作用是用人,让人做事。而不是指手画脚,当提线木偶的提线人。从这个案例,我觉得我有些懂得为何传统行业做不好互联网了。如果都是外行领导内行,的确会很困难。
我想起了19年年初的那场年会,年会的节目并不精彩,看得人昏昏欲睡。但又因为这官僚的作风,不能离开年会的现场,只能够继续看着这鸡肋的年会。在年会即将结束的时候,大boss上台,跟公司的中层领导们一起合唱李克勤的《红日》,并且口中说着一日公司不上市,一年的年会结束就要唱《红日》,要把《红日》唱到公司上市。她的话,让我毛骨悚然,让我之后每次听到《红日》,就想起这位董明珠式的女boss。
一个公司如果长期陷入内耗之中,我不认为它会走得长远。当然,它可以因为财大气粗,不断地去试错。但是这个试错的过程,对于员工来讲,是会很疲惫的。如果有足够的物质精神奖励,当然还好,否则,有能力的员工当然会选择飞走了呀。
离职
在我离职前,仅仅是因为觉得续费腾讯云,需要在公司的帐目上走一个流程,略显繁琐,加之,公司的战略从不再重视自有商城的研发和维护,于是经过几个中层领导的讨论,决定不再为腾讯云续费。原本为微商城和app做的静态资源云托管,也就不能再继续用了。这也就意味着,我在最早的一个人开发系统的两个月内所作的工作又白费了。对于公司而言当然是白费了,对于我个人而言,当然还是增长了一些技术知识和经验的。而如果再仔细想想,由于我在这家单位的过去两年所做的主要工作就是移动端自有商城的开发和维护,则我过去两年的工作,也都被所谓的“公司战略”抹杀了。当然,如果我继续留在这家公司,也是能够有所作为的,只不过那个工作就是与第三方商城的对接及相关业务,这的确对我没什么挑战性,我也不打算如此。对我来说,老的项目宣告结束,但毕竟学到了很多知识。有些放到了脑子里,有的放到了文字里,总之,都有收获。
总结
一个人来维护开发一个系统可以吗?当然可以,但是我开发维护的是前人们用七八年时间积累下来的代码量数万行的项目,其实维护起来也并不容易。虽然也有一些文档,但文档上讲的比较概括,之前的领导推崇代码即文档,于是有些业务逻辑经常要去看代码实现,才能知道,业务实现。另外,还要和形形色色的人打交道,当我意识到我有能力应付这些人之后,就不想再打交道了。同理,当我知道,我自己有能力一个人开发维护这个系统之后,我就不想再继续了。为什么呢?因为觉得很累,而且性价比很低。