前言
比如一个项目需要8个人包括安卓,iOS ,设计师,前端和小程序,后端,测试。5个月开发时间。但项目经理或者产品经理只给3个月,而且人手还不够,招人也很慢。问他们原因,他们说客户只接受3个月,大领导也觉得合理,还天天催什么时候上线,导致程序员天天加班。3个月完不成,就要背锅,说研发速度慢,问题3个月本来就不合理。如果反驳,他们就会说那iOS和小程序怎么就比你快。
你是不是工作经常就是这种状态,很压抑,很绝望,负面情绪很重,感觉自己生来就是被压榨被剥削的。
你我皆是牛马
牛耕地累了,会挣脱套索逃离,马跑累了,会抵抗死活不动,牛马工作累了,会问,怎么样才能心平气和安心工作?
到底为啥会有这种情况?
自古以来,也见过甲方需求酝酿一年半,然后要求一个月完成开发的。toG项目。你还会发现跟你对接的人能力和工作态度大概是个出生,需求也不细讲,材料给不全,全不管,按期做不完就找你领导搞你。这时,你会说:你们乙方做完一个项目做下一个,总也饿不死。甲方的活做一个少一个,还不能出纰漏,必须慢工出细活!
甲方的活做一个少一个----并不会!
还不能出纰漏 -----出不出纰漏,不是靠甲方事前讨论。
另外,这个言论转移话题了:
如果甲方需求简单,用不着讨论一年多。除非甲方工作效率太低
如果甲方需求复杂,则乙方一个月做不完
死马当作活马医
别催了,越催越慢。这种事情最好要从项目立项之初就开始做准备。为了赶时间,要在前面讨论需求时,就可以开始做一些固定下来的工作。为了让app后续维护成本低,需技术设计层面做拆分,要把重点功能放到服务端上去:
1.降低4个端的代码量,把功能收口到服务上去
2.避免app频繁发版
再比如设计层面也要做到分层设计和复用设计,可以让前端也充分复用。测试这块,也要提前做好测试用例评审,正常来说,产品需求定稿后,测试这边就可以写用例了,没必要等研发。如果以上都没有准备好,那就只能付出项目混乱的代价了。没什么好办法,这种情况下招人会更乱。现在是问题已经呈现这种状态了,该怎么摆脱这种状态,或者说后面该怎么解决?
如果还有可能,做功能拆分,看甲方是否同意。如果不行的话只能咬牙撑过这一期,然后去卡死项目类型。复用代码的前提是项目类型基本一致,不然死都做不完!
全员开会讨论开发时间
可以先把需求和细节放上来,大家看看客户要求的三个月是否过分。时间其实大部分都是够的,就看面向客户那边的那些人是不是坑货!
辗转反侧
先问自己问题:
1.工资怎么样
2.技术怎么样
3.离开了这家公司你能不能尽快找到工作
如果薪资不咋样,技术还行,出去后还能尽快找到工作,换工作,有这总SX领导们限制时间,招人还骗不进来,搞不定还要你背锅,还干啥呢?换工作不现实,还要在这待着,那就怼他们,领导说XX比你快,你就让他来。他要是说不会,那你就可以怼他,不会你在这指手画脚干啥之类的话。另外使劲催招人,招不到就是他们问题,想办法把锅甩出去或把水搅浑反正!
这样做就会跟iOS 产品经理 翻脸,得罪人,甩锅时,怎么接受得罪同事这个事情?这话说的好像他们没得罪你一样,其实领导眼里,基层皆为 cs,只要他们能把项目吹上线,他们就功德圆满了,而你加完了班,也就缓几天调休,加班费和项目奖金都是场面话。当你开始为了这个项目做努力,去争取必要的一些东西的时候,你的心态就会发生一些变化。说点不好听的,就是你在这得罪死了人,被迫换了份工作,有着这份给自己挣争取利益,和上下级协调的经验之后,你能慢慢的混到管理层,而不只是一个敲代码的!什么都不去争取,你就只能是个底层码农,随时可以被替换。
总之,你得先把态度摆出来,别怕得罪同事或者领导,要真这么怕你还干啥,以后就等着别人知会你天天加班干活吧。各人有各人的活法,也不是说一定要你怎么做,反正尽可能的给自己去争取一些东西。
开摆
本来研发这玩意的工作量就不好评估,你只要每天加班做做样子就好了,放下你无聊的好胜心和完美主义,哪怕你每天加班摸鱼呢。然后开会就把5分工作说成10分工作,反正对面也不懂。每次都要抱怨时间不够,反正最后班也加了,鱼也摸了,加班费也拿了,你证明你努力就行,要是嫌你能力不行,那让他们招个能力强的。
加班费是不可能给的,另外职场就是被这种加班摸鱼的搞臭的,没事就下班完了,在那卷个jb。对面不懂也没办法Lois,5个月的工作量非要你三个月完成,除了加班装样子还能怎么办,总不能主动辞职?
功德簿
这是典型的干最累的活儿,干好了别人拿结果,干坏了背最黑的锅儿。项目和产品(大领导和业务部)吃人不吐骨头,为了自己的结果,联合起来压迫研发,特别是后端。都被欺负到头上了,现在还顾及啥?还心平气和啥,必强力反驳!
1.提出预估人力工时,并给出理由,具体功能点和工时
2.明确自己的职责,明确若延期后背锅细则,不关自己的一律不认,锅必须每个责任方背好自己的
3.周知以上信息到相关人及其领导(领导层的已读不回都是默认)
4.任何变动必须周知相关人并确认,不管改动大不大,咬死加工期,否则就立地把锅放到台面来
以上内容都要和老大或老板知道,一旦被要求压缩工期或者改内容,直接叫项目或产品找老大或者老板。就算被要求加班也要反驳,可能最后被答应,但是这样操作下来,沟通合作成本将会大大增加,而且相关信息都是被确认的,这可都是以后扯皮甩锅的证据。就是延期了,产品和项目也跑不了背锅。相对应的他们也会优化和简化产品项目内容,当然这个过程是被动的。
千万别表现的啥都听产品和项目的,产品说啥就答应啥。那样就丧失了独立和自主的权力。这样一来,工作很多时间就花在艰难的斗争上了,那时间会不会拖得更久?如果尽力干,能快多少快多少,是不是最终就成了背锅侠?干活不是目的,是拿结果的手段。干了拿不到结果还可能背锅的活是有害的,没有任何意义的。所以必须通过斗争保障应得结果和消除不实的祸。一味埋头苦干的人没人在意,低效且有害。这次加班快干或许可以,以后呢?你就要一直加班,这样干一般没有好结果,直到跑路。
大领导更喜欢看到东西,而不是看过程,怼人要拿出来东西,给合理解释,你能拿出来东西就都好说(顶多在你拿出来的基础上,再让你压缩成本和时间),至于被这种事情投诉和打小报告?看各人理解,至少我没遇到这种sx。最后要是因为这个问题被裁了,这公司也没有待的必要了不是?
技术人该背什么锅?
扯皮和排期的事情交给产品经理和项目经理。开发正常评估排期就行,不能接受就砍需求,给好abcd方案,剩下的就是产品的事情了。 程序员需要背锅情况只有:
1.不经过产品的同意偷偷改代码导致线上bug
2.排期和测试范围评估不到位
剩下的问题顶天了,也就是小菜。如果让开发背技术以外的锅,那么这个团队是有毒的,赶紧润。
总结
1.加人
2.砍需求,先实现一个精简版的
3.卷铺盖跑路
大部分现实,还是要选择第二个,然后合法合规的死磕全员。