技术总监的故事告诉大家,要学会say【NO!】
今天就给大家分享一个发生在我自己身上的事情吧。
1
2015年的时候,我和我的领导A,还有几个小伙伴正在做一个“紧急定制”,这个任务是公司老大CEO和重要客户定下来的一个项目,背后关系着在当时看来的一笔巨款。我们团队加班加点,每天工作到晚上12点,早上8点就到公司,每周也没有休息。接连着好几个星期都是这种状态。
终于在快要交付的前几天,终于整个系统能够运行起来,还有很多bug和问题需要解决,我们列出所有问题,逐一的去解决,和开发时的状态一样,忙得连饭都没得吃,厕所都没时间去上。
我的领导A是一个很有特点的技术经理,他的性格比较直,说话的声音也比较响。在现在的我看来,他是属于那种“命令型”的领导。他命令我们必须在deadline之前解决掉全部问题。
没有办法,最后我们还是将带有bug的demo提供给了客户,没有时间,只有硬着头皮这样干了。最后由于这个决定,我们都快崩溃了。
客户那边问题不断,运行一段时间系统就会宕机,我们之间又隔着1000多公里,那边的技术人员一直通过视频、电话保持联系,进入系统,查看日志,系统崩溃。然后等待继续进入系统,查看日志,系统崩溃。就这样我们一点点的进行着。而且门外汉的客户一直催,甚至抱怨不停,可以想象我们都承受多大的压力。
就这样折腾了一天,公司老大CEO来了,伴随着是他的声音走来,当场大发雷霆,整个办公室都是他的咆哮声,“怎么搞的?不是已经跑起来过了吗?为啥还会出现这种问题?”,“到底啥时候能解决?”。
我说“1周的样子”。
能感受他当时的心态应该是崩了。一脸严肃、斩钉截铁的说“明天必须给我搞定!”。
我很直接就说“不可能的,我们前几天刚刚整个系统才运行起来,问题全部解决干净,至少1周,我还说的少的”
但是他立即回绝“不行,一定要在明天结束前,客户那边等不了的。这样,你们加把油,试试看吧”
我的领导立刻接上话“好的,放心,我们试试看~”
就这样,接着解决问题,还好第二天的工作比较顺利,解决了这个问题,但是还有其他更多的问题,我们就按照我们的节奏,按照问题单一个个地进行解决。最终1周之后,系统慢慢稳定了下来。客户也不再一直抱怨。
后来的事情大家也知道了,我离开了上家公司。去了海康,我算是脱离了苦海,他们压榨我的剩余劳动力,还让我丝毫看不到晋升的可能性。
但是他们的噩梦还远没有结束,我的前领导也离职创业去了(这个故事也给大家讲过,现在他的公司去年已经净利润1000多万了。),他们不得不重新招聘了一批程序员来填这个坑,应付客户那边又层出不穷的问题。
2
回顾整个事情,这个问题究竟出在哪里?又是谁的责任呢?
很显然,每个人都有责任。对于公司老大,他这么强势。往往强势的人,都会特立独行,对一些建议会视而不见,当然有些是真相也会被他错过。我的领导不应该答应这么短的时间内交付,这个不可能完成的任务。我也应该勇敢的说“不”,而不是默不作声。
作为高级开发程序员,应该有自己的判断力,不能屈从上级指令。要敢于对上级和产品经理说“不”。
很多人说,你的任务就是听你上级领导的命令,为啥不能提出建议,为啥不敢于质疑,用于说“不”,然后给出自己的解决方案。
什么样的人不能说不?
是不是产线上生产的工人,是不是在工地上干活的农民工,当然没有贬低他们的意思,工作没有贵贱。只是说在这件事情上,他们是普通工人,而你是专业的技术人员。优秀的程序员应该懂得说不。
大厂对敢于说“不”的人,总是求贤若渴的。因为你专业,你才敢于说不,才能做好事情。
希望大家能够做到勇于说不的人,谨此献上!
推荐阅读(干货)程序员进阶必备能力——晋升之道
觉得不错,记得关注、转发和在看!多年经验分享,实属不易,感谢支持!
博主是一位物联网大厂技术总监,从业7年。从软件开发、高级软件开发、技术经理再到技术总监,分享职业发展、技术管理、职场晋升、技术成长等个人多年经验和心得。一起成长!有问题可以加我微信交流:pointersss
如果你有技术成长烦恼,对未来迷茫,关注我,帮你答疑解惑!
技术总监的故事告诉大家,要学会say【NO!】的更多相关文章
- 技术总监Sycx的故事
其实我在各种演讲里,线下吹牛里面无数次提及过他,讲过他的故事,但是总还是没有任何一次认认真真的详细讲过,所以,今天就讲讲他的故事吧. Sycx是福建漳州人,我经常开玩笑说,你生于一个著名的骗子之乡,为 ...
- 【腾讯Bugly干货分享】总结一个技术总监的教训和经验
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/Ry-G0Nikh6m-h3ZVC2cLyQ 导语 20 ...
- 腾讯技术分享:微信小程序音视频技术背后的故事
1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...
- 程序员、架构师、技术总监、CTO
程序员 程序员,英文名coder/programmer,大家常自嘲叫码农的阶段.这个角色职责是把需求或产品实现为用户可用的软件产品. 此职位为执行级别.另外因为经验较少,一般需要求助别人,或与别人一起 ...
- 盛大游戏技术总监徐峥:Unity引擎使用的三种方式
在5月13日Unite 2017 案例分享专场上,盛大游戏技术总监徐峥分享了使用Unity引擎的三种方式,以下为详细内容: 大家好,我先简单介绍一下我自己,我是盛大游戏的技术总监徐峥.我今天想分享的主 ...
- CTO(技术总监)平时都在做些什么?
目前创业,最后一家公司任职医疗科技公司的研发中心总经理,之前也在几家公司的任职研发/技术总监岗位,在我理解的范围,目前国内中小企业对于CTO/技术总监的岗位区别没有那么明确的职能区分. 1. 先总结 ...
- Atitit.cto 与技术总监的区别
Atitit.cto 与技术总监的区别 1. 核心区别1 2. Cto主要职责1 3. 如何提升到cto1 4. CTO五种基本的必备素质:2 5. 2 1. 核心区别 技术总监(Chief Tech ...
- IT软件技术人员的职位路线(从程序员到技术总监) - 部门管理经验谈
以前写过一个文(IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章),主要介绍笔者的职业发展之路,不过该文需要后续了,因为笔者现在从事的是“产品经理”一职.从笔者的导航文([置顶]博文快 ...
- [转]CTO、技术总监、首席架构师的区别
经常有创业公司老板来拜访我,常常会拜托给我一句话:帮我找一个CTO. 我解释的多了,所以想把这个写下来,看看你到底需要的应该是啥. 一.高级程序员 如果你是一个刚刚创业的公司,公司没有专职产品经理和项 ...
随机推荐
- python 系统设置
1. 设置python运行环境为utf-8 import sys #引用sys模块 reload(sys) #重新加载sys sys.setdefaultencoding("utf-8&qu ...
- 手把手教你AspNetCore WebApi:增删改查
前言 小明已经创建与运行了WebApi项目,了解项目结构有哪些组成,并学会了怎么发布到IIS.基础已经建好,从现在开始要真正实现待办事项的功能了. 新建表 CREATE TABLE [dbo].[To ...
- E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
Linux下sudo apt-get install 安装时报错: 解决办法 1. 终端输入 ps -aux ,列出进程.找到含有apt'-get或者wget的进程, 直接sudo k ...
- tu
1 第五章 图 2 //结构定义 3 #define MaxVertexNum 100 //图中顶点数目的最大值 4 typedef struct ArcNode{ //边表节点 5 int adjv ...
- 启动你的Android应用:运行设备模拟器和调试代码(第3部分)
下载all source for Test Proj: Test.zip - 306 KB 文章指出 本文包含了我即将出版的新书<启动Android应用程序>中的第三章. 在我完成这本书之 ...
- 萌新学python
python python安装 进入官网http://www.python.org/download/ 下载 我下的是3.6.6大家可以根据需要下载(3.x和2.x不兼容请小心) 之后安装就可以了 p ...
- 天啦噜!知道硬盘很慢,但没想到比 CPU L1 Cache 慢 10000000 倍
前言 大家如果想自己组装电脑的话,肯定需要购买一个 CPU,但是存储器方面的设备,分类比较多,那我们肯定不能只买一种存储器,比如你除了要买内存,还要买硬盘,而针对硬盘我们还可以选择是固态硬盘还是机械硬 ...
- 多测师讲解requests __上_高级讲师肖sir
1.三种接口接口请求方式 # # 在python当中接口的请求方式有哪些:# import requests # 导入requests接口库# # # # 请求方式有三种:# # # # 第一种:# ...
- 题解:CF593D Happy Tree Party
题解:CF593D Happy Tree Party Description Bogdan has a birthday today and mom gave him a tree consistin ...
- java中的t怎么用
<T> T表示返回值是一个泛型,传递啥,就返回啥类型的数据,而单独的T就是表示限制你传递的参数类型,这个案例中,通过一个泛型的返回方式,获取每一个集合中的第一个数据, 通过返回值<T ...