[心得] 为什么我们提出改变,常常不被上层同意?

楼主: UniFish (贡贡老杯)   2020-09-12 12:37:45
好读 Medium 版:https://tinyurl.com/y6o59mx6
前阵子有几个同事离职,参加了几场欢送会,因为老板不在场,同事们不免俗地
讨论起在工作中的甘苦谈,抒发一下情绪。抒发情绪是好的,好让我们把情绪说
出来,获得同侪的认同感,明天可以打起精神面对接下来的工作。
原本我只是想趁机去吃吃喝喝,不过谈的话题让我有些感触。像是老板的决策让
他们很难作事。或是自己提出重要的对公司好的改变,没有被接受。或是产品各
版本开发流程常常出现状况之类的。
我有感触的是在我过去工作的历程,我也和他们一样在其中会有些疑惑和抱怨,
我回想起当时我的感觉和现在的差异,用一句话形容,应该就是“视野不同”吧。
工程师的视野
在以前当工程师,面对的只是需求、眼前的萤幕、文件和Stackoverflow,我不
知道需求怎么来的,只知道需求很奇怪,时程很奇怪,做出来的功能也很奇怪,
不免会抱怨一番。现在回想起来,是因为当时我的世界太单纯了,
能忠实反应我写的bug的编译器、书本里Best Practice和Stackoverflow的解决方案,
只要不合于我世界中的正确答案,我都标上“奇怪”二字,并提出如何解决这个奇怪,
来符合我脑中的正确答案。
当时的我认为这才是对的,而主管应该要回应我,然后改变现况。但是事与愿违。
当时带我的资深工程师说“我知道你提的东西很难做到,但又不想一直在泼你冷水”,
我不懂什么叫很难做到,我当时只知道你们是不想做。
PM的视野
我在当PM的时候,着重在如何让我们产品贴近用户族群习惯,因为是在外国工作,
台湾的习惯和当地的很不一样,像是金流就需求大调整,行销的手法也和台湾不一样,
首先就先打通当地金流,那么我提出一套建立在现有金流机制上最基本的变更,
来符合当地习惯。(当然这是我当初自认为的最基本)不过也没有被接受,
反应是变动太大,不可能进行。当时我也不懂什么叫很难做到,我当时只知道
你们是不想做。
技术总监的视野
当技术总监和之前的经验很不一样,老板会开始和你聊营收、成本,我可以明显
的感受到以前没感受过的压力。我仍然知道正确答案该怎么做,假设要花六个月
才能完成一个会赚钱的功能,但是公司资金只能撑五个月,那么该怎么办?
当然最直接的就是叫老板去生钱出来,不过技术总监就是该在现有的资源下要
产出最大效益的东西来,所以我就必须把六个月的功能拆成四个月可以完成,
有些功能放到后面去做,有些功能先作一半,程式脏一点、丑一点没关系。
当我把规格定出来后,感觉一股熟悉感,啊干这不是我以前我觉得奇怪需求和
奇怪时程的味道吗?
不过我有做了几件和以前主管做不一样的事情:
1. 偷渡一项工程师对系统想要优化的改变。
2. 和老板讨论这个功能做完上线后维运期我们要作一些体质调整的事。
3. 老实说明公司的状况和做这个决定的来龙去脉
尤其是第三点,以前的主管可能没有耐心说明这个需求整个故事背景,然后只给
工程师片段的资讯,然后工程师就拿着片段的资讯去猜公司到底在想什么,
然后日积月累造成极大的徧差。
提出改变建议不被接受
听着同事在聚餐中的分享,回想到我以前我会抱怨只是因为我的想法没有被接受,
但是我也没有接受老板的想法,只是屈服罢了。不过我们经验不同,视野也不同,
想要解决事情的重要顺序一样也会不同。以前的我只是提出问题,想要对方可以
解决我的问题,但是同样的老板也提出他的问题。我不断用不同的角度去切入,
凸显我的问题的重要性,老板也同样用其他角度切入来凸显他的问题。
那么我们只是在申明自己立场而已,并没有沟通。
设身处地想成本的事才能找出好解法
我在想要做的改变时,我都会想着:这间公司一个月成本支出要XXX万,要养XX个员工。
那么我提出的做法会不会给这间公司造成很大的负担?
有人可能会说这是老板要担心的事情,为什么我们要想这个。
没错,实际负担起公司的是老板,那些成本也是不从我口袋支出。不过如果我要
让事情能顺利进行,我就不应该提一个等同于盖世界奇观的计划。当我想着成本
支出的事情时,我就会刻意的把规模缩小,让人力和时程有办法应付日常营运和
开发,又不会增加太多成本并把计划排个优先级,先瞄准痛点,就会让所有人
都有感。
从无到有建置一个专案不难,但是在现有专案中,在人力、时间、成本、效益找到
最平衡的做法,才是真正考验工程师的功力。
以前的我,只是在意我的意见有没有被接受,我有没有被认同,最核心的点是自己
无法认同自己的价值,才会追求别人的认同。现在的我是知道自己的能力和能耐,
认同自己是一个很不错的人,于是就不会把别人的认同看得那么重,我才能专注在
“如何把事情做好”。
看到这边如果你也有些感触的话,不妨也问问自己“我有认同我自己吗?”
以推行写测试为例
今年我在公司推行测试计划和程式的重构。由于过往PM们有不好的经验,所以一
开始就受到阻碍。
我就从自己做起,估的时程和以往一样,并不会因为写测试而增加时间,
并为内部写下Unit Test & Feature Test文件和实际案例。然后开内部讲座
指导工程师如何写测试,并说明和PM回报预估时程不能加上测试,只是把原本自己
做的人工测试,把重要的改为自动测试。反复人工测试的时间,拿来写自动测试
其实很划算。
五月份的时候每周分享测试心得和自己写的案例,到九月份的时候每个人的专案
都已经有基本的测试了。
在这个过程中,我也和老板说明测试的重要性,每一点都直击痛点。
1. 人员流动接手专案比较不容易改A坏B,负责专案的工程师请长假也不用太担心
2. 测试所需程式的结构会顺便统一,人员流动接手专案上手会变快
3. 接大型案子难度降低
然后在下半年的考核标准加上写测试这一项。这过程中PM感觉不到时程因测试而
变胖,专案也开始可以在内部轮调了,每个案子至少有两人接触过,人员调度
也变轻松了。
以推行程式重构为例
我接手 SurveyCake 后端的专案,过去曾经有重构一部份,仍然留下许多legacy code,
刚好这次后端开发时程超前,于是我们可以做重构的事情。我是这样做的。
我去访问了各部门,最常找后端工程师协助的事是什么事,大概一个月会有几次,
一次平均会花多少时间。一问之下发现一个月会让一个工程师有4-6个人天在处理
某件杂事。就叫它A功能好了,假设一个人的一天成本是N元,工程师耗的是6N,
PM、业务、客服三人所耗的心力不同,粗估一个月2N好了,也就是A功能让公司
一个月要支出8N的成本在上面。
光这样提出来,大家就有“嗯嗯,是应该要处理了”的感觉,所以我推这个功能
的重构没有任何阻力。
再来是最近老板想要减少测试所花的人力,所以我们嗅到好机会,提出
Test Covarage改善计划,首先第一步就是把还没有办法写测试的项目,
都改为可以写测试的结构,主要是进Laravel框架。
刚好前阵子有银行业找上门,他们的规范是资料要留在台湾,那么就使用GCP建置,
但我们原本的程式很多都是直接串AWS,但是只要进Laravel框架,我们就很好扩展
成AWS & GCP双栖。所以提出重构的第一波计划就瞄准了痛点:
1. 为了测试而调整,减少内部QA时程,开发周期缩短
2. 让A功能一个用8N的成本降低50%以上
3. 可很好扩展到GCP上,业务更好卖
对于内部工程师,也说明了重构可分“可以顺便做的”和“不可顺便做的”,
可以顺便做的我们在开发时就顺便做,但不需要太完整,有时候太完整会把扩展性
变很低,大概70%整理过,30%Legacy为黄金比例来做,一点一点补起来。
不可顺便做的顺便做的重构就会用上面的那些角度切入,排入正式计划。
其他还没有重构到的,没关系,我们可以等待下次的时机。
心得
回想起过去提出测试和重构,理由是“这样我们比较好写程式”,这只是主要是
为自己的方便,不见得其他人也方便,也可能会造成他人的麻烦。
我所作的,只是把其他的人顾虑的点纳进来,从中找出一条生存之道,
能达到我想要达到的事。其他还没做到的事,就要等到天时地利人和都俱足时,
再去进行就好。
剩下的时间就悠哉过我的小生活就好,人生不是只有工作嘛!
作者: lonelytea (霸气逼人)   2020-09-12 12:45:00
作者: sylviami   2020-09-12 13:07:00
推推
作者: taikobo (勉强になるなぁ...)   2020-09-12 13:11:00
推角色不同,看事情的角度也不同
作者: geniusturtle (小龟)   2020-09-12 13:20:00
推 沟通很重要
作者: jny2117   2020-09-12 13:29:00
推推 好棒
作者: tay2510 (Tay)   2020-09-12 13:49:00
推分享
作者: unmolk (UJ)   2020-09-12 14:08:00
推好文
作者: mirtac (mirtac)   2020-09-12 14:16:00
作者: x246libra (楓)   2020-09-12 14:17:00
追求正确做法,可以被你说成眼光狭隘,是自己世界太简单还是换公司最快,通常这种公司没在管品质的,能动就好
作者: TAKADO (朕没给的你不能抢)   2020-09-12 15:26:00
最正规/最正确的做法有时候不一定是最佳解啦,有时候还是得在现实条件前妥协,尤其是专案类型的公司。
作者: frank910138 (frank)   2020-09-12 15:32:00
作者: B0988698088 (废文少女小円♥)   2020-09-12 15:45:00
最近怎么常有medium的来刷流量
作者: superpandal   2020-09-12 17:38:00
专案类型的公司的确是这种 公司都没什么话语权更不要说自己 真的好缺十之八九都被人占走了
作者: st903202xp (YoYoYo)   2020-09-12 18:07:00
作者: lance70176 (十三夜)   2020-09-12 18:20:00
做过一阵子类似思路 给推
作者: alihue (wanda wanda)   2020-09-12 18:45:00
不是 medium 的错,是 ptt 太难写文章reddit programming也都是贴文章链结难道你要在 ptt 贴 code snippet 吗?
作者: leo5916267 (小叶)   2020-09-12 19:00:00
最佳解应该要在归纳需求时就想好最佳需求描述,不然不可能实作出来
作者: wulouise (在线上!=在电脑前)   2020-09-12 19:44:00
你贴gitpage上来别人也会说是来骗星星的xd习惯就好
作者: rayway30419 (RayWay)   2020-09-12 20:26:00
有沟通能力的技术人员才有办法做这件事很多技术本位的人根本懒得去花力气说服别人
作者: airtsubasa (伪学姊)   2020-09-12 21:36:00
当你的同事是比你资深n年且等著退休的人,要推什么都无法
作者: s001582000 (仁傑)   2020-09-12 22:12:00
碰到无能主管除了换公司还能怎办 把他斗下来吗
作者: lazarus1121 (...)   2020-09-12 22:13:00
职场没这么复杂,主管口中的视野高度讲白话就是,不要让我被上面定我这两年把好几十支程式和table都翻掉了,我只跟主管说,不会有异常,BU不会抱怨,就算出问题也有备份主管只跟我说,专案不要delay就好,也没在挡的
作者: triplee (none)   2020-09-12 23:01:00
推楼上 有时候反而就是这么简单
作者: michealx (神富)   2020-09-13 00:17:00
默默捡垃圾是一种浪漫
作者: alongalone (沿着孤单的路)   2020-09-13 02:09:00
感觉有点废文. 那怎么不是想办法让大家拿到的资讯依样
作者: mickey94378 (Holy)   2020-09-13 02:33:00
推好文
作者: superpandal   2020-09-13 03:48:00
有时间要翻掉没问题 但本文有前提的 除非是好公司或者有强烈的认同感 否则个人是不情愿这样做的基本上你就是要多花精力在这上面拿到的资讯一样基本上只是理想 如果是工程师那更不可达成搂术业有专攻
作者: airtsubasa (伪学姊)   2020-09-13 07:11:00
翻掉了…业务轮调交接时,接你的人会感谢吗?
作者: KKFN (John)   2020-09-13 07:37:00
最怕的是你以为自己重构的好棒棒结果根本是烂Code。
作者: tsai1618 (tsai1618)   2020-09-13 09:47:00
作者: dias3839 (若若的郭芙)   2020-09-13 09:48:00
作者: lazarus1121 (...)   2020-09-13 11:48:00
如果能做出公式解把意大利面换掉,应该不会雷到哪去怕的是重构后还是一样死,新需求一来又开始违建我反而觉得开发者的高眼界,是在开发时就想到未来扩充需求的可能性
作者: JasperChang (PeterChou)   2020-09-13 12:11:00
悠哉过小生活?重构纳入kpi年终有变多吗?
作者: sky40280 (FallLeaf)   2020-09-13 13:06:00
作者: kika65 (Allen)   2020-09-13 14:03:00
推好文
作者: superpandal   2020-09-13 15:49:00
有能力重构的应该不至于太烂 只是成本要自行吸收别人确实也不会多给一毛钱
作者: peter9s3b   2020-09-13 19:43:00
老板要给时间啊!老板只懂你未来一个月没产出,跳脚说不行,也没法重构练功啦
作者: jeff8611 (码农中的霸主还是码农)   2020-09-14 00:42:00
推鱼大
作者: KeGun (Mozet)   2020-09-14 11:12:00
推推
作者: jlhc (H)   2020-09-14 12:22:00
有分享还是给推, 但写的很多其实没啥内容...能引起讨论我觉得还是好事, 但你这些其实根本就是不透明如果你是其中一角色又能有权利改变 拜托把透明化跟沟通做好什么叫做视野不同 视野还不是人给的...
作者: skizard ( )   2020-09-14 12:44:00
楼上说的对 要让开发知道大家在同一条船上把人当可有可无 只给部分资讯 当然做出来的不符合所需
作者: GoGoJoe (gogojoe)   2020-09-14 16:15:00
功高盖主,动嘴皮子的工作给你做,了,叫主管吃素吗?要不等一阵子让他以自创名义重提,要不就一开始以引导方式让主管领悟,总之要把发想的风采归主管。
作者: shooter555 (shooter)   2020-09-14 18:11:00
要求上层改变等同赏他们巴掌让他们没面子
作者: lastpost (坚持)   2020-09-14 23:25:00
工程师跟老板之间有沟通的机会吗
作者: h1234567882 (阿ㄏㄏ)   2020-09-15 00:16:00
很好的文章,还是有酸酸,实在是不大懂....就思考的层次上,原 Po 完全走出自我的思考领域,并设身处地为其他单位、老板着想,光这件事情就是许多人做不到的,想到要处理这么复杂、多的单位与人,以同级数的技术总监们可能连想都不敢想。感觉大大又不断的往上升级了呢!
作者: azzc1031 (azzc1031)   2020-09-15 01:12:00
这篇不错
作者: viper9709 (阿达)   2020-09-15 01:44:00
看的出来原po是不错的主管,可惜这种人不多...
作者: blackdiz   2020-09-15 07:37:00
感觉其实这问题一直以来处理方法都差不多,跟交往一样,遇到还能沟通的就相互包容多替彼此的立场设想,遇到无法沟通的就只能忍耐或走人,如此罢了。
作者: fowei (小维)   2020-09-15 16:45:00
其实当你由工程师升到主管.没有换个位置换个脑袋就不对了而且是换脑袋后.懂得怎么把之前的感受转换成工程师语言这也是为什么专业技术者上来的主管比较好带人不过作者写的很棒. 愈往上升. 愈要懂得估算成本就是
作者: odahawk (羊皮狼)   2020-09-15 16:56:00
无论什么样的企划,你都得转换为成本和收益才能说服老板
作者: freshlemon (清新柠檬水)   2020-09-15 20:58:00
先推!统整一下,提出变革的角度可以从老板的角度出发,做这件事情对公司有什么利益,而不是以自己的角度觉得这样比较好做事
作者: sagiters (GagAsLife)   2020-09-15 23:02:00
谢谢大大分享,很有用~~
作者: lnyan (囧rz)   2020-09-16 10:03:00
推用心分享好文
作者: cotbel   2020-09-17 18:45:00
很用心分享,很多面向过去没想到,用力推
作者: cory8249 (Cory)   2020-09-25 00:40:00
作者: HZYSoft (PCMan)   2020-10-05 22:23:00
大推,这篇写得超好!
作者: peiigreen   2020-10-06 21:51:00
推好文

Links booklink

Contact Us: admin [ a t ] ucptt.com