05丨责任的边界:程序员的职责范围仅仅只是被安排的任务吗?

我们要知道,在现代社会,责任一般是和钱挂钩的。

我举一个例子。现在很多ERP软件都提供SaaS的服务。一个公司如果要使用这个SaaS服务,即便免费的额度已经够用,大多也会选择付费。为什么呢?其实花钱就是为了买个对方的责任。不付钱,看似节省,但如果真的出了问题,比如数据丢失、数据泄露等,那么对方是没有责任或者义务帮你修复的,但花钱就不一样了,一旦出现数据安全、数据稳定相关的问题,服务提供商都是要担责的。

那么同理,我们参加工作,和公司签了合同,有了工资。工资的背后,就是“责任”二字。

任何拿了钱的事情,都要负责——这是一个最基本的社会规则。

程序员需要对哪些事情负责

看到这里,你可能会有疑问,这还用说吗,我对自己的工作负责不就好了?可是我们的工作边界在哪里?“工作”仅仅指的是在公司内的工作职责吗?

首先,我认为,身为程序员,我们的工作边界及其范围包括3个部分,分别是个人的基本能力、工作内容以及工作时间。

对自己的基本能力负责

首先,程序员要对自己的基本能力负责,基本能力主要是技术能力和熟悉公司系统的能力。

持续精进技术能力

技术能力就是工作中用到的技术,是我们看家的本事。公司毕竟不是学校,没有教学的义务。既然拿了工资,就要学会相应的技术,完成安排的工作。

我在工作中也遇到过一些人,很多基本技能都不会,自己还没有任何补短板的意识和动作。安排工作的时候,直接甩出一句:我不会。理直气壮,令人惊叹。久而久之,大家对这个人的印象就是——没有工作能力。

当然,很多时候,并不是所有的技术需求都来得那么强烈,也不是所有的技术每个人都熟。我们在实际工作中,也难免会遇到自己不会的问题。这个时候可以向别人请教,但是千万不要觉得请教完就算完了,我们还要意识到自己为什么不会,想办法补齐这块的知识和技能。

如果一个事情不会做,那么基本上就相当于“违约”了。

但如果公司安排确实不合理,工作岗位不能发挥自己的能力优势,这种情况下又该怎么办呢?我的建议是,首先还是考虑发挥自己的优势,再抽时间补短板。态度要积极,不能摆出一副“我不会我有理”的态度。但如果新的工作全是短板,技术不熟悉,业务不熟悉等等,那么不妨和经理和HR聊聊转岗的可能性。

除了补短板之外,我们更可能遇到跟随公司做技术转型,学习新技术。如果是一些重要的公司层面的技术转型,有些公司可能会安排培训,或者给出一定的激励措施。当然,如果公司没有相应的政策,那么自己也是有责任把技术学起来,胜任新的工作的。

其实公司技术升级,也是给自己的技能升级的好机会。我一直强调的一点是,学的东西一定要在实际工作中使用,因为这样最能够激发学习的积极性,也最能验证自己学的成果。公司决定转型采用的技术,也大都会比现在使用的技术更优秀。很多工作久了的同学会抱怨说工作中用不到新技术,如果遇到公司技术转型升级,赶紧抓住机会努力一把,给自己的技术也升级一下。

就我个人的例子来说,我学会Hadoop、HBase、Hive、Spark、Scala和JS等等很多技术,都是抓住公司新的项目要用到新技术的机会,“强迫”自己学下来的。有些项目公司会留一部分学习的时间,大部分情况下全靠自己挤时间学。一边学,一边通过公司项目的实际操作来考验学习成果,过程非常的充实,学得也牢固。

所以公司技术升级,对我们个人来说,其实是一个非常难得的机会,如果你有遇到过,那么请一定要抓牢它。

熟悉公司的内部系统

很多公司都有自己的内部系统,熟练掌握和使用这些系统,也是我们程序员的责任。

在有些程序员看来,公司内部的系统不能算技术,因为这些东西不是通用的,就算学了对以后找工作也没什么用处,所以一般对内部系统的学习积极性并不高,甚至有些排斥。

但能够熟练使用内部系统,也是拿工资后要承担的一部分责任。公司内部系统的价值在于,它们一般都是和公司的整个框架集成好的,比如公司内部的SOA框架或者微服务框架,都是和公司内部的监控系统等等集成好的,即使这个框架再“不好”,公司内部的项目还是要使用,这样我们才能够在宏观上建立对公司内部所有服务进行的理解,从而更好地利用自己的技术,不至于“盲人摸象”。

撇开硬性工作要求不谈,事实上,有些公司的内部系统,做得还是很优秀的,甚至于让人离职之后还很怀念。积极学习公司内部相关的系统,也是自己在这个公司的收获之一。以后如果有机会在别的公司从事相关系统的开发设计工作,也可以借鉴学习。

你看,这同样也可以提高我们工作的基本能力。

对安排的工作负责

说完我们个人的基本能力之后,接下来,就是我们非常熟悉的内容了,工作责任。无论什么职业,都要对安排的工作负责。

程序员这门职业的特殊性在于,工作本身的具体内容和难度,会随着被安排的工作内容的改变而改变。从对工作负责的角度来说,我们大部分人会付出比当时预想的更多的时间,才让自己能够按时完成工作。

当然,这里并不是鼓励加班,只不过是一个小建议,如果你有额外的付出,那么到时候可以将自己做的计划外的事情说出来,这样一方面让大家认可你做的工作,另一方面,也是能够让大家对这类事情的工作量估计更合理。

当然还有另一种情况是,事情超出了自己的能力范围,比如一件事情的复杂度远超过之前的估计,在规定的时间内,自己确实无法完成。那么这个时候,正确的态度不是硬着头皮上,而是将情况理清楚,早点找经理或者负责人,让他们知道事情的进度和之前没有预想到的难度,把事情重新安排一下。毕竟,谁也不能承担“到了deadline事情还没有做完”的风险。

从管理者的角度来看,一个事情安排得不合理,就应该早发现,早计划,重新安排资源。毕竟大家的目的是把事情做完,而不是冒着事情可能做不完的风险去压榨一个人。

当然,还有一种情况就是,给自己安排的事情实在太多了,自己没有时间完成。这时候,一方面要自己思考事情的优先级,这点我们之前也讲过,另一方面要及时和经理沟通,建议将优先级低的向后推,或者找别人来帮忙。总而言之,不要在最后给经理“惊喜”。

很多新人可能很难把握这样一个度,什么叫“偷懒耍滑”,什么叫努力负责呢?在工作经验不丰富,技术能力也相对薄弱的情况下,怎么才能知道事情有没有“失控”呢?

我的建议是,当遇到自己吃不准的事情,可以多问问组内资格老的同事,如果老同事说问题不大,那么自己也更有底气。如果老同事说这个问题自己也没有遇到过,那就得找经理聊聊下一步的安排了。

对工作时间负责

很多软件公司,其实都是弹性工作制。毕竟程序员这个工种要求一直在线,有时候出了问题,随时随地掏出笔记本就得开干。既然没有一个明确的“下班”时间,那么很多公司也就不规定硬性的上下班时间了。

这里说的“对时间负责”,也是因公司而异的。我的建议是,一定要在“实际上班”时间之前到,避免有人找你却找不到的情况。比如说,大部分人都是在九点半之前到公司,那么你也尽量在这个时间左右到公司,不要延迟太久。

还有就是如果有会议,一定要准时参加。如果临时有事无法参加,要及时和大家同步。

对时间负责的背后,其实不止是为了保证工作时间。毕竟我们程序员都知道,坐在座位上并不代表就在工作,没在座位上也不代表没有在工作。这里想强调的一点是,程序员的工作不只是写代码,还有很大一部分是交流沟通,保证基本的工作时间,才能更多的和大家交流。

总结

随着级别的升高,程序员的工作也更丰富,从不同的角度来看,也会有不同的责任。比如我现在担任组里的技术主管,除了要做好安排的工作之外,还要协助组里的同事完成工作,同时要思考如何推进系统的技术升级,以更好地满足用户的需求。对于级别更高的同事来说,还有更具有挑战性的责任。付得起责任,才对得起自己那份工资。

俗话说:受人之禄,忠人之事。责任是一点点增加的,负责任的态度和习惯,也是从平时工作中的一件件事情中养成的。当你养成这样一种习惯之后,你会收获一个别人对你的金字评价:这个人,负责,靠谱。

如果你承担的责任更重了,那么距离你加薪升职还会远吗?

思考题

这里给你留一个思考题吧。你觉得程序员还有那些基本的责任?就文中的内容而言,你觉得你是一个负责任的程序员吗?

欢迎你在评论区与我分享你的思考,也欢迎把这篇文章分享给你的朋友或者同事,一起交流一下。

精选留言

  • X丶楓

    2020-05-28 00:21:10

    现在入职了一家新公司,框架,业务代码,全是新的东西,看了一脸懵逼,公司又要求尽快掌握,
    作者回复

    不会很难的,静下心来学吧。别把这个事儿当成额外的负担,而是当成自己的份内事儿,学起来就没那么别扭了。

    话说,既然去了新公司,还怕学点新东西么?去新公司不就是为了学点新东西么(顺便升职加薪啥的

    2020-05-28 10:00:49

  • YANG

    2020-05-29 07:03:33

    扩大责任边界,也是促进扩大能力的一种方式。
    作者回复

    ✅,穷(能力一般)则独善其身(顾好自己的事情),达(能力强)则兼济天下(扩大自己的负责范围)

    2020-05-29 09:45:16

  • Geek_hfbm3l

    2020-05-27 13:50:15

    老师问下:

    如果你有额外的付出,那么到时候可以将自己做的计划外的事情说出来,这样一方面让大家认可你做的工作,另一方面,也是能够让大家对这类事情的工作量估计更合理。

    这个 “将自己做的计划外的事情说出来” 具体怎么操作呢?
    作者回复


    说说自己的建议。

    说分对内说和对外说。对外说,要从最开始的需求就开始,如果你想做点什么额外的东西,先和对方交流,确定自己做的东西是对方需要的。然后,如果做出来了,可以给对方发邮件,搞个会议来分享等让对方知道执行的结果。

    对内就简单很多,现在大家都是敏捷开发,每天都有站立会,可以在会上将自己的进度跟大家同步就好。如果不是敏捷开发,那么也可以在组内常规交流的会议上说说。

    2020-05-27 16:02:39

  • Newbie

    2020-05-27 09:40:12

    小组内非常重视有风险提前报,可以及时和外部同步进展。避免实际跟预期不符。刚开始工作时候怕做不完被批评死撑最后也没搞定,其实是不对的。
    作者回复

    ✅,透过这个事情,可以进一步理解背后的逻辑。大家的最终的目的是为了把事情在规定的时间内搞定,而不是一定要某个人完成。

    2020-05-27 10:34:59

  • 6点无痛早起学习的和尚

    2020-05-28 01:39:24

    自己的代码写完要自测,这是一种责任,也是一种好的习惯,也能避免QA对你的代码吐槽,频繁的修改bug,也能给同事一个好的形象:代码靠谱
    作者回复

    ✅,好印象 = 更有可能得到好机会,也等于可以获取更高的升职加薪机会。

    2020-05-28 09:57:20

  • 叶小鍵

    2020-06-26 23:40:33

    拿钱办事这个是职业责任,而你是否专业在于:
    1-基本能力: 本职学能与进阶能力
    2-工作内容: 這份工作對你來說是什麼?它可以做到什麼?它應該可以做到什麼事。
    3-工作时间: 掌握时间。不单单是只听办事,而是想着办事。
    作者回复

    全面✅

    2020-06-27 10:07:22

  • 有学识的兔子

    2020-05-30 18:02:10

    从工作能力,工作内容和工作时间来说,勉强算一个合格的员工。
    在看到工作存在某方面不足的时候,经过深思熟虑后,提出问题给出可行的建议,优化工作效率和愉悦感。
    作者回复

    能力 + 主观能动性 + 交流 👍

    2020-05-30 21:00:03

  • 我来也

    2020-05-27 14:23:07

    除了线上运维,可能还需要有随时on call的心态.
    特别是小公司,没有on call值班安排时,其实是随时都可能被call的.
    作者回复

    对的,oncall基本上是工作内容的标配了

    2020-05-27 17:59:35

  • Middleware

    2020-05-27 08:06:56

    一定要勇于承担责任,绝不能说我不会
    作者回复

    如果不是啥大问题,尽量不要说不会,自己抽空学。

    如果实在是没信心,我觉得可以说我现在不会,毕竟不能因为自己一时的能力影响项目进度。

    但是不能说我不会,也不学。

    2020-05-27 09:17:27

  • 6点无痛早起学习的和尚

    2021-08-07 15:42:04

    二次回读,二次留言,
    根据这篇责任的边界延伸一个想法,当我们在职场不被老板重任的时候,我们需要做些什么?
    1. 首先思考不被老板重任,是否是自己的产出不足,事做的不够好?其实就是对工作内容是否负责?
    2. 如果自己是对工作内容负责的完成,但是依然不被老板重任,那我们在完成工作内容的情况下,也要注重自己的个人基本能力成长。
    3. 如果以上情况下都做的比较长,依然不被老板重任,首先需要跟老板进行沟通,如果沟通无效之后,是否就需要出去看看新的机会了(可能这里并不适合你),因为你的个人基本能力也在成长,自己也有信心去看看更好的机会。
    作者回复

    有时候就是风格不合适。如果确定是风格不合适,那就快刀斩乱麻。

    很多时候风格原因不是努力能填补的。比如有的经理/公司喜欢又快又糙,有的喜欢想清楚,有长远规划。这都没错,要么自己适应这种风格,要么新招更好的机会。尝试改变外部环境不是上策。

    在前者的公司做详细的规划设计,别人会觉得你在务虚,不想干活,磨洋工。在后者快速出活,别人会觉得你在制造垃圾和技术债。

    2021-08-07 22:34:21

  • 2020-10-21 18:40:59

    趁著公司有新項目要做,從前端轉後端,只是後端跟新業務都是沒接觸的領域,做著有種從零開始的感覺
    作者回复


    在公司内转方向还是相对安全的。开始什么都不会没啥,大家都是这么过来的。

    2020-10-22 10:07:08

  • Sdylan

    2020-07-09 07:17:00

    最好不要设责任边界,扩大责任边界倒逼着自己不断学习,不断成为一个靠谱的人。
    作者回复

    社会逼人进步,进步让人靠谱

    2020-07-09 10:34:42

  • 为梦终醒

    2020-07-05 21:01:13

    “对工作时间负责”

    开会开到绝望怎么办?只要一天不开会都觉得少点什么,然后该完成的工作还是需要完成。
    不是说不交流,只是觉得会议太多影响开发效率。
    好了不说了,我要去开会了🤣
    作者回复

    会议太多确实是个问题哈哈哈哈哈。从我的经验来看,如果是讨论沟通不足,也就是开的会效果不够好不够多,后期还是要补回来的,所以开会是省不了的。

    开会确实影响开发效率,所以应该注重开会的效率。比如之前文中提到的,要注意开完会写个会议纪要,这才是开会的成果。否则会就白开了,没准下次还要就相同的问题继续讨论一次。。。

    2020-07-06 10:17:50

  • FelixFly

    2020-05-28 13:19:52

    公司的业务要熟悉掌握,不是中间件(或者技术研发方向)的程序员,都应该以公司的业务优先,然后才是技术上的提升,技术上的提升是必然的,这是作为程序员的看家本领。对工作负责,这个就需要良好的沟通。
    作者回复

    ✅ ✅,术业有专攻,对于做中间件的程序员来说,业务就是中间件的功能和逻辑。对于做公司业务开发的程序员来说,业务就是公司的业务。从这个角度说,都得先好好沟通,深入理解业务,才能做好产品。

    其实对于中间件来说,更需要深入理解业务,因为中间件的业务不像是公司业务那么直接,更需要深入理解,反复反复反反复复的琢磨,换位思考,站在业务开发的同学角度理解各种痛点和问题,否则做出来中间件不能解决大家的问题,那就白做了。

    2020-05-28 23:14:29

  • ecanfly

    2020-05-27 10:05:32

    另外还有线上运维的责任,不能写完代码,提测完感觉就交代过去了。

    其实我们还需要关注这个功能实际运行,推广的程度怎么样,用户评价怎么样,线上异常情况多不多
    作者回复

    👍,这里说的是最基本的责任。做到你说的这些才能叫hold住

    2020-05-27 13:44:40

  • 6点无痛早起学习的和尚

    2024-05-08 14:10:08

    三刷了,20 年一刷,21 年二刷,现在 24 年我又来了
    - 对安排的工作负责:最近在做一个事,某个需求需要给 QA 提供一些测试小工具,需要 rd 的开发,我就会把工具开发完,写个文档丢到需求群里艾特 QA,群里有 +1 老板
    - 对自己的基本能力负责:最近公司要做代码扫描的拦截,我来负责就需要学习一些新的东西了,比如 pmd 这些diy、部署等等
    - 对工作时间负责:最近工作很忙,之前大家都是 9 点下班,现在都卷到 12 点,但我依然 9 点下班,到家有时候看别人艾特我,如果着急我就加班处理一下,不着急我就第二天早起起来处理,我的原则就是,如果这件事跟别人强有关,我9点走了依然处理,但不强相关,我不喜欢熬夜加班,就早起起来加班干工作的事
    作者回复

    还有一点就是对老板负责,老板要满意才好

    2024-05-11 18:20:09

  • 磉盘

    2021-05-31 10:06:51

    工作内容倒逼技能提升,技能的进阶需要投入一定的时间。

    作者回复

    其实这种倒逼是投入产出比最高的。因为学了马上能找到使用场景,得到学习的正反馈。

    2021-06-01 10:06:39

  • 源以南

    2020-11-10 09:35:13

    责任感和思考是工作的一部分,员工的工作有边界,但是个人的责任和思考不应该设限。这一点在阿里的工作就很明显,大家找事情来做。虽然不完全认同,但也是一种责任和思考的提现。
    作者回复


    嗯呐,很多公司都是员工找事情做,自己思考,寻求突破。

    2020-11-10 14:09:19

  • 老艮额

    2020-11-05 19:47:30

    付得起责任,才对得起那份工资!你的工资涨了,不是因为你的岗位更值钱了,而是因为你的能力匹配了更值钱的岗位
    作者回复

    2020-11-06 14:41:50

  • J.Smile

    2020-08-03 09:17:21

    想说点题外话——一开始讨厌的人能否再建立不错的关系?
    ——————————————————
    高中时,曾特别讨厌一个同学,学习成绩好,聪明但太嘚瑟,语言刻薄。偶然的机会坐了同桌,一开始也讨厌,有摩擦,但后来竟然成了最好的朋友之一。反思自己,为什么讨厌一个人?原因可能是以他人的语言或者行为,将别人评判为一个道德低下、不知与人为善的人。所以,敬而远之。
    这种思维方式竟然带入了职场中,最可怕的是当听说之前经理的一些坏话时,先入为主的对经理没了好感。当然,你对别人的态度,别人也一定可以感觉到,最后也没得不到经理的重视。
    所有的关系,归根结底是双方维持的结果,但前提就是接纳对方(这里就不用信任这个高大上的词了)。
    不知道老师对此有没有一些好的想法💡分享一下🙂
    作者回复


    我觉得生活中和工作中还是不一样的。生活中嘛,只要不违法犯纪,不违背公序良俗,爱喜欢谁讨厌谁都随便。

    工作中还是要秉承做人留一线,日后好相见,打人不打脸,给个台阶下。毕竟大家在一起工作,没必要掺杂太多个人因素,好听点,大家志同道合,不好听,大家就是凑在一起打工的,为了点工资而已。

    大家没必要太亲密,也不能闹的太僵,你也不知道谁那天会成为你不得不合作的对象。

    至于别人说什么,好话也好,坏话也好,随便听听,别当真。对方有对方的利益视角,套用到你的利益视角不一定适用。

    如果一个经理很罩着自己的手下,那么手下自然对他评价很好,但是别的组的人可能因此被他撕过,自然不会有好评价。

    如果经理为人还算公正,该加薪的都加薪了,表现不好的没给加薪,那么得到加薪的,也不大会到处说经理多好多好,毕竟这个加薪也算是应得的。但是没得到加薪的,光脚不怕穿鞋的,可能就到处说经理怎么滴怎么滴,不公平什么的。

    在公司,没人能给别人客观的评价,公司到处都是利益关系,讨好一部分人,就很容易得罪另外一部分人。对于别人说的另外的同事的评价,听则听之,莫当真。

    2020-08-03 21:00:35