05丨责任的边界:程序员的职责范围仅仅只是被安排的任务吗?
我们要知道,在现代社会,责任一般是和钱挂钩的。
我举一个例子。现在很多ERP软件都提供SaaS的服务。一个公司如果要使用这个SaaS服务,即便免费的额度已经够用,大多也会选择付费。为什么呢?其实花钱就是为了买个对方的责任。不付钱,看似节省,但如果真的出了问题,比如数据丢失、数据泄露等,那么对方是没有责任或者义务帮你修复的,但花钱就不一样了,一旦出现数据安全、数据稳定相关的问题,服务提供商都是要担责的。
那么同理,我们参加工作,和公司签了合同,有了工资。工资的背后,就是“责任”二字。
任何拿了钱的事情,都要负责——这是一个最基本的社会规则。
程序员需要对哪些事情负责
看到这里,你可能会有疑问,这还用说吗,我对自己的工作负责不就好了?可是我们的工作边界在哪里?“工作”仅仅指的是在公司内的工作职责吗?
首先,我认为,身为程序员,我们的工作边界及其范围包括3个部分,分别是个人的基本能力、工作内容以及工作时间。
对自己的基本能力负责
首先,程序员要对自己的基本能力负责,基本能力主要是技术能力和熟悉公司系统的能力。
持续精进技术能力
技术能力就是工作中用到的技术,是我们看家的本事。公司毕竟不是学校,没有教学的义务。既然拿了工资,就要学会相应的技术,完成安排的工作。
我在工作中也遇到过一些人,很多基本技能都不会,自己还没有任何补短板的意识和动作。安排工作的时候,直接甩出一句:我不会。理直气壮,令人惊叹。久而久之,大家对这个人的印象就是——没有工作能力。
当然,很多时候,并不是所有的技术需求都来得那么强烈,也不是所有的技术每个人都熟。我们在实际工作中,也难免会遇到自己不会的问题。这个时候可以向别人请教,但是千万不要觉得请教完就算完了,我们还要意识到自己为什么不会,想办法补齐这块的知识和技能。
如果一个事情不会做,那么基本上就相当于“违约”了。
但如果公司安排确实不合理,工作岗位不能发挥自己的能力优势,这种情况下又该怎么办呢?我的建议是,首先还是考虑发挥自己的优势,再抽时间补短板。态度要积极,不能摆出一副“我不会我有理”的态度。但如果新的工作全是短板,技术不熟悉,业务不熟悉等等,那么不妨和经理和HR聊聊转岗的可能性。
除了补短板之外,我们更可能遇到跟随公司做技术转型,学习新技术。如果是一些重要的公司层面的技术转型,有些公司可能会安排培训,或者给出一定的激励措施。当然,如果公司没有相应的政策,那么自己也是有责任把技术学起来,胜任新的工作的。
其实公司技术升级,也是给自己的技能升级的好机会。我一直强调的一点是,学的东西一定要在实际工作中使用,因为这样最能够激发学习的积极性,也最能验证自己学的成果。公司决定转型采用的技术,也大都会比现在使用的技术更优秀。很多工作久了的同学会抱怨说工作中用不到新技术,如果遇到公司技术转型升级,赶紧抓住机会努力一把,给自己的技术也升级一下。
就我个人的例子来说,我学会Hadoop、HBase、Hive、Spark、Scala和JS等等很多技术,都是抓住公司新的项目要用到新技术的机会,“强迫”自己学下来的。有些项目公司会留一部分学习的时间,大部分情况下全靠自己挤时间学。一边学,一边通过公司项目的实际操作来考验学习成果,过程非常的充实,学得也牢固。
所以公司技术升级,对我们个人来说,其实是一个非常难得的机会,如果你有遇到过,那么请一定要抓牢它。
熟悉公司的内部系统
很多公司都有自己的内部系统,熟练掌握和使用这些系统,也是我们程序员的责任。
在有些程序员看来,公司内部的系统不能算技术,因为这些东西不是通用的,就算学了对以后找工作也没什么用处,所以一般对内部系统的学习积极性并不高,甚至有些排斥。
但能够熟练使用内部系统,也是拿工资后要承担的一部分责任。公司内部系统的价值在于,它们一般都是和公司的整个框架集成好的,比如公司内部的SOA框架或者微服务框架,都是和公司内部的监控系统等等集成好的,即使这个框架再“不好”,公司内部的项目还是要使用,这样我们才能够在宏观上建立对公司内部所有服务进行的理解,从而更好地利用自己的技术,不至于“盲人摸象”。
撇开硬性工作要求不谈,事实上,有些公司的内部系统,做得还是很优秀的,甚至于让人离职之后还很怀念。积极学习公司内部相关的系统,也是自己在这个公司的收获之一。以后如果有机会在别的公司从事相关系统的开发设计工作,也可以借鉴学习。
你看,这同样也可以提高我们工作的基本能力。
对安排的工作负责
说完我们个人的基本能力之后,接下来,就是我们非常熟悉的内容了,工作责任。无论什么职业,都要对安排的工作负责。
程序员这门职业的特殊性在于,工作本身的具体内容和难度,会随着被安排的工作内容的改变而改变。从对工作负责的角度来说,我们大部分人会付出比当时预想的更多的时间,才让自己能够按时完成工作。
当然,这里并不是鼓励加班,只不过是一个小建议,如果你有额外的付出,那么到时候可以将自己做的计划外的事情说出来,这样一方面让大家认可你做的工作,另一方面,也是能够让大家对这类事情的工作量估计更合理。
当然还有另一种情况是,事情超出了自己的能力范围,比如一件事情的复杂度远超过之前的估计,在规定的时间内,自己确实无法完成。那么这个时候,正确的态度不是硬着头皮上,而是将情况理清楚,早点找经理或者负责人,让他们知道事情的进度和之前没有预想到的难度,把事情重新安排一下。毕竟,谁也不能承担“到了deadline事情还没有做完”的风险。
从管理者的角度来看,一个事情安排得不合理,就应该早发现,早计划,重新安排资源。毕竟大家的目的是把事情做完,而不是冒着事情可能做不完的风险去压榨一个人。
当然,还有一种情况就是,给自己安排的事情实在太多了,自己没有时间完成。这时候,一方面要自己思考事情的优先级,这点我们之前也讲过,另一方面要及时和经理沟通,建议将优先级低的向后推,或者找别人来帮忙。总而言之,不要在最后给经理“惊喜”。
很多新人可能很难把握这样一个度,什么叫“偷懒耍滑”,什么叫努力负责呢?在工作经验不丰富,技术能力也相对薄弱的情况下,怎么才能知道事情有没有“失控”呢?
我的建议是,当遇到自己吃不准的事情,可以多问问组内资格老的同事,如果老同事说问题不大,那么自己也更有底气。如果老同事说这个问题自己也没有遇到过,那就得找经理聊聊下一步的安排了。
对工作时间负责
很多软件公司,其实都是弹性工作制。毕竟程序员这个工种要求一直在线,有时候出了问题,随时随地掏出笔记本就得开干。既然没有一个明确的“下班”时间,那么很多公司也就不规定硬性的上下班时间了。
这里说的“对时间负责”,也是因公司而异的。我的建议是,一定要在“实际上班”时间之前到,避免有人找你却找不到的情况。比如说,大部分人都是在九点半之前到公司,那么你也尽量在这个时间左右到公司,不要延迟太久。
还有就是如果有会议,一定要准时参加。如果临时有事无法参加,要及时和大家同步。
对时间负责的背后,其实不止是为了保证工作时间。毕竟我们程序员都知道,坐在座位上并不代表就在工作,没在座位上也不代表没有在工作。这里想强调的一点是,程序员的工作不只是写代码,还有很大一部分是交流沟通,保证基本的工作时间,才能更多的和大家交流。
总结
随着级别的升高,程序员的工作也更丰富,从不同的角度来看,也会有不同的责任。比如我现在担任组里的技术主管,除了要做好安排的工作之外,还要协助组里的同事完成工作,同时要思考如何推进系统的技术升级,以更好地满足用户的需求。对于级别更高的同事来说,还有更具有挑战性的责任。付得起责任,才对得起自己那份工资。
俗话说:受人之禄,忠人之事。责任是一点点增加的,负责任的态度和习惯,也是从平时工作中的一件件事情中养成的。当你养成这样一种习惯之后,你会收获一个别人对你的金字评价:这个人,负责,靠谱。
如果你承担的责任更重了,那么距离你加薪升职还会远吗?
思考题
这里给你留一个思考题吧。你觉得程序员还有那些基本的责任?就文中的内容而言,你觉得你是一个负责任的程序员吗?
欢迎你在评论区与我分享你的思考,也欢迎把这篇文章分享给你的朋友或者同事,一起交流一下。
- X丶楓 👍(12) 💬(3)
现在入职了一家新公司,框架,业务代码,全是新的东西,看了一脸懵逼,公司又要求尽快掌握,
2020-05-28 - YANG 👍(8) 💬(2)
扩大责任边界,也是促进扩大能力的一种方式。
2020-05-29 - Geek_hfbm3l 👍(5) 💬(1)
老师问下: 如果你有额外的付出,那么到时候可以将自己做的计划外的事情说出来,这样一方面让大家认可你做的工作,另一方面,也是能够让大家对这类事情的工作量估计更合理。 这个 “将自己做的计划外的事情说出来” 具体怎么操作呢?
2020-05-27 - Newbie 👍(4) 💬(1)
小组内非常重视有风险提前报,可以及时和外部同步进展。避免实际跟预期不符。刚开始工作时候怕做不完被批评死撑最后也没搞定,其实是不对的。
2020-05-27 - 6点无痛早起学习的和尚 👍(3) 💬(1)
自己的代码写完要自测,这是一种责任,也是一种好的习惯,也能避免QA对你的代码吐槽,频繁的修改bug,也能给同事一个好的形象:代码靠谱
2020-05-28 - 叶小鍵 👍(2) 💬(1)
拿钱办事这个是职业责任,而你是否专业在于: 1-基本能力: 本职学能与进阶能力 2-工作内容: 這份工作對你來說是什麼?它可以做到什麼?它應該可以做到什麼事。 3-工作时间: 掌握时间。不单单是只听办事,而是想着办事。
2020-06-26 - 有学识的兔子 👍(2) 💬(1)
从工作能力,工作内容和工作时间来说,勉强算一个合格的员工。 在看到工作存在某方面不足的时候,经过深思熟虑后,提出问题给出可行的建议,优化工作效率和愉悦感。
2020-05-30 - 我来也 👍(2) 💬(3)
除了线上运维,可能还需要有随时on call的心态. 特别是小公司,没有on call值班安排时,其实是随时都可能被call的.
2020-05-27 - Middleware 👍(2) 💬(3)
一定要勇于承担责任,绝不能说我不会
2020-05-27 - 6点无痛早起学习的和尚 👍(1) 💬(1)
二次回读,二次留言, 根据这篇责任的边界延伸一个想法,当我们在职场不被老板重任的时候,我们需要做些什么? 1. 首先思考不被老板重任,是否是自己的产出不足,事做的不够好?其实就是对工作内容是否负责? 2. 如果自己是对工作内容负责的完成,但是依然不被老板重任,那我们在完成工作内容的情况下,也要注重自己的个人基本能力成长。 3. 如果以上情况下都做的比较长,依然不被老板重任,首先需要跟老板进行沟通,如果沟通无效之后,是否就需要出去看看新的机会了(可能这里并不适合你),因为你的个人基本能力也在成长,自己也有信心去看看更好的机会。
2021-08-07 - 鐘 👍(1) 💬(1)
趁著公司有新項目要做,從前端轉後端,只是後端跟新業務都是沒接觸的領域,做著有種從零開始的感覺
2020-10-21 - Sdylan 👍(1) 💬(1)
最好不要设责任边界,扩大责任边界倒逼着自己不断学习,不断成为一个靠谱的人。
2020-07-09 - 为梦终醒 👍(1) 💬(1)
“对工作时间负责” 开会开到绝望怎么办?只要一天不开会都觉得少点什么,然后该完成的工作还是需要完成。 不是说不交流,只是觉得会议太多影响开发效率。 好了不说了,我要去开会了🤣
2020-07-05 - FelixFly 👍(1) 💬(1)
公司的业务要熟悉掌握,不是中间件(或者技术研发方向)的程序员,都应该以公司的业务优先,然后才是技术上的提升,技术上的提升是必然的,这是作为程序员的看家本领。对工作负责,这个就需要良好的沟通。
2020-05-28 - ecanfly 👍(1) 💬(1)
另外还有线上运维的责任,不能写完代码,提测完感觉就交代过去了。 其实我们还需要关注这个功能实际运行,推广的程度怎么样,用户评价怎么样,线上异常情况多不多
2020-05-27