项目出问题,凭什么让程序员背锅?

项目出问题,凭什么让程序员背锅?_第1张图片

读完下面的故事,你会发现这并非虚构,

程序员如何用实力反抗,才能让职场小人闭嘴?

当比尔接到人力资源副总裁的电话那刻起,倒霉的日子算是来了。

之所以这样说,并不是比尔犯了大错,公司打算开除他,实际上恰恰相反,他被 CEO 史蒂夫直接任命为 IT 运维副总裁。

升职这件事也许在别人眼中是个好事,但比尔却不这么认为......

前 CIO 和 前 IT 运维副总裁突然离职,明显是被一些不利因素挤兑走的,而比尔自己也觉得自己只是一只替死鬼。

过去十年间,CIO 每两年换一次,就像钟表一样准时。CIO 在这个公司也被戏称为 「Career Is Over」(职业生涯结束),而 IT 运维副总裁也是一样。

所以,你了解比尔的倒霉情况了吗?

当比尔见到 CEO 史蒂夫时,曾想过拒绝这个职位,但在史蒂夫的气势下,别无选择,因为史蒂夫也面临着被董事会开除的风险,整个公司已经被竞争者超越了。

现在,全公司的精力与筹码都押在凤凰项目上,而有能力完成这个项目的人,在史蒂夫眼里,除了比尔再无他选。

此时,刚刚上位的比尔还没有来得及通知部门其他人的时候,可怕事情发生了,公司核心的工资核算系统出了大问题,而比尔必须向财务的人立即反馈处理......

在职场上,职位越高,背的锅越大,尤其是 IT 人。

「3 个月,只有 3 个月。」

这与其说是史蒂夫的要求,不如说是董事会的命令,整个凤凰项目必须完成,否则公司将要面临被拆分出售的风险。

比尔刚和新团队的人打过交道,包括帕蒂、韦斯、布伦特等等,他们一同处理完工资核算系统事故,但此时比尔发现,布伦特作为项目的关键人物,却一直在处理很多项目之外的事情。

而这点,也让零售运营副总裁莎拉借题发挥。

莎拉是史蒂夫的下属,她有着不可思议的能力,总是让别人替她背黑锅,特别是让 IT 部门的人背锅。多年来,她一直逃避各种应负的责任。

从下面的邮件就可看出她是个讨厌的人:

发件人:莎拉 · 莫尔顿

收件人:比尔 · 帕尔默

抄送:史蒂夫 · 马斯特斯

日期:9月3日,上午7:58

优先级:最高

主题:凤凰项目的新纰漏

比尔,如你所知,凤凰项目是当前本公司最为重要的项目。我听到一些令人不安的传言,说你在阻碍凤凰项目的发布。

我想不用我来提醒你,我们的竞争对手可没有止步不前,我们的市场份额也在与日俱减。我需要每个人都有紧迫感,特别是你,比尔。

今天上午 10 点我们要召开一个紧急项目管理会议。请参加会议,并准备好对这些不可接受的延误作出解释。

史蒂夫,鉴于你已向董事会作出了承诺,我知道这个项目对你来说有多么重要。请尽管来参加会议吧,我们期待着你的想法。

此致

莎拉

由于布伦特没有为凤凰项目的开发人员完成需要的配置工作,导致开发未能如期完成,但开发那边的需要什么样的测试环境,连自己都不清楚。

10 点钟的那个会议,成为了比尔和莎拉唇枪舌战的一次 PK。比尔被扣上了「缺乏对于紧迫性的认知」并命令在10天后完成上万节点的部署,也是凤凰项目的第一次部署。

这非常不公平,外行人才会下这种命令,莎拉傲视群雄,而史蒂夫也左右不了这个决定。

在一些公司,IT 人明显属于「弱势群体」,局外人不知道一个自以为简单的需求其开发难度有多大,而开发后出现的问题,又常常被局外人指责为「我们的 IT 不行」。

如期所料,决定的项目部署无法在规定时间内顺利完成。

公司又接二连三的出现灾难性事故,像是 POS 系统挂掉,影响全国所有门店;后台泄露持卡人信息,和审计团队法律团队一起处理整件事。

这个公司竟然能撑到现在,简直不可思议。而莎拉像没事人一样,只会在一旁指责比尔的 IT 部门。

每个人都做好了准备,唯独你没有,营销、开发、项目管理等部门全力以赴地扑在这个项目上。现在轮到你了。

莎拉

比尔反思,项目被拖延的主要原因是布伦特。事实上这正是如此,布伦特是一个关键点,但却忙于处理其他事件。

所以,比尔决定让布伦特脱离低级任务,保护起布伦特不受打扰。组织专门「救火」的人员代替布伦特

而团队手上的其他项目需求也必须停止下来,专攻凤凰项目。

当你把所有时间都用来救火,就没有时间和精力去制定计划了。当你们所做的只是被动应付,就没有足够时间开展繁重的脑力劳动,弄清楚是否可以接受新的工作。

盘子里塞进了越来越多的项目,每个项目的可用工作周期都变短了,那就意味着会有更多错误的多任务处理,劣质代码也会随之增加。

「我们一直在原地打转」,这是 IT 工作能力上的死循环。

一系列措施后,让其他部门的项目几乎都冻结起来了,包括莎拉手上的几个项目,这让她十分恼火。

但比尔找到工作流中的约束点,并对其保护了起来,这显然是聪明的决定,得到了董事会的肯定。    

时间过得很快,已经到了项目冲刺阶段。

期间,由于之前的决策正确,一些测试部分也收到惊人的友好反馈,凤凰项目进展的十分顺利。其中最令人痛快的事,是对莎拉的反杀,让她一下子变成了令董事会讨厌的人。

比尔建立了一个联合「开发」「运维」「测试」三组人员的团队,叫「独角兽」,这个团队使得交付过程缩短了几十倍(这里我们可以展开叙述)。

发件人:玛姬 · 李(零售部门总监,莎拉下属)

收件人:克里斯 · 阿勒斯,比尔 · 帕尔默

抄送:史蒂夫 · 马斯特斯,韦斯 · 戴维斯,莎拉 · 莫尔顿

日期:11月24日,早晨7:47

主题:首次独角兽促销活动:难以置信!

市场营销团队整个周末都在挑灯夜战,并得以对1%的客户开展了测试活动。

结果大放异彩!超过20%的受访者访问了我们的网站,超过6%的人购买了商品。这个转化率高得令人难以置信——可能比我们之前开展过的所有活动都要高出五倍。

我们建议,在感恩节当天向所有客户进行独角兽促销。我正在着手安置一个指示盘,让每个人都能看到独角兽活动的实时结果。

还有,要记住,所有促销商品都是高利润产品,因此即便只达到我们最低的预期,也会是优异的成绩。

又及:比尔,根据这个结果,我们预计网站流量会激增。我们能确保网站不会宕掉吗?

所有人,干得好!

玛姬

最终考验他们的将是感恩节大促销。

到了星期四中午,正在感恩节期间,比尔被告知遇到了麻烦。整夜的独角兽电子邮件促销取得了不可思议的成功。

回应率空前高涨,我们网站的流量也飙升到了创纪录的水平,这下可拖垮了电子商务系统。

于是比尔发起了一个 1 级严重级别紧急决定,运用各种应急措施来维持接受订单的能力,包括循环使用更多的服务器,以及关闭计算密集型功能,等等。

讽刺的是,一个开发人员提议关闭所有实时推荐,而那些实时推荐是团队千辛万苦才弄出来的。

他认为,如果客户连完成交易都办不到,为什么还要推荐更多产品去让他们购买?

玛姬很快同意了,但是开发人员仍然花了两个小时进行变更和部署。现在,可以通过一个配置设定来禁用这个功能,下一次我们就能在几分钟内马上配置好,而不需要一整套代码重新上线了。

这才是 IT 运维友好型的研发设计,在生产中管理代码变得越来越容易了。

团队还不断优化数据库查询功能,并把最大的网站图形都转移到一个第三方内容分发网络上,从我们的服务器上卸载更多流量。

在感恩节下午晚些时候,客户体验有所改进,变得可以接受了。

项目出问题,凭什么让程序员背锅?_第2张图片

下文直接摘录了《凤凰项目》的精彩内容,以比尔为第一人称视角

到了感恩节后的周一早晨,形势稳定下来。这是好事,因为正赶上我们每周和史蒂夫一起召开的独角兽团队例会。

克里斯、韦斯、帕蒂和约翰都来了,和之前的会议不同,莎拉也来了。她交叉双臂坐着,偶尔把手臂松开,用手机上给别人发消息。

史蒂夫笑着对我们大家说:首先我要对大家辛勤工作的成果表示祝贺。成效超乎我的想象。多亏了独角兽项目,门店和网上销售都打破了记录,周收入创下了历史新高。

按照当前的进展速度,市场营销部估计,我们将在本季度达到盈利目标。那将会是自去年年中以来,我们首个实现盈利的季度。

“我要对大家表示最热烈的祝贺。”他说。

除了莎拉,每个人都对此报以微笑。

“你只说对了一半,史蒂夫。”克里斯说,“独角兽团队简直棒极了。他们已经从每两周开展一次部署过渡到每周开展一次部署,而且我们正在尝试每天开展部署。由于批量规模缩小了很多,我们可以很快作出小型变更。我们正在随时开展 A/B 测试。简而言之, 我们从未这样迅速地响应市场,而且我相信,我们一定会大有可为。”

我用力点头道:“我猜想,我们将会希望内部开发的各种新应用程序都遵循独角兽模式。这种模式比我们以前支持过的应用程序都更容易调整大小,也更便于管理。我们正在建立流程和步骤,从而能够用各种速度进行部署,以便快速响应客户。有些情况下,我们甚至能让开发人员来部署代码。今后,开发人员只要按下按键,几分钟后,代码就会进入测试环境或者进入生产。”

“我不敢相信,我们居然在这么短的时间里取得了这么多进展。我对你们大家感到骄傲。”史蒂夫说,“我要表扬你们,你们真正通力合作,并且无愧于彼此的信任。”

“我觉得,迟做总比不做要好。”莎拉说,“如果我们已经自我表扬完了,那我要对你敲一记业务警钟。本月早些时候,我们最大的零售业竞争对手开始和他们的制造商合作,允许定制按订单生产的装备。自从他们推出这项功能以来,一部分我们最畅销产品的销售额已经下降了20%。”

她愤怒地补充道:“多年来,我一直想让 IT 打造出适用于这一功能的基础架构,但我们听到的只是‘不行,做不到’。与此同时,我们的竞争对手却已经能够和说‘可以’的制造商共事了。”

她补充道:“那就是鲍勃关于拆分公司的想法有价值的原因。我们被这家公司的传统制造部分束缚住了。”

什么?收购那家零售公司是她的主意!要是她跑去为一个零售商工作,可能每个人都能好过一些。

史蒂夫皱起眉头。“这是下一个议题。莎拉作为零售业务的高级副总裁,她有权把公司的需求和面临的风险告知项目团队。”

韦斯哼了一声。他对莎拉说:“你是在开玩笑吧?你明白我们通过独角兽项目取得了哪些成效,以及我们的进展有多快吗?和我们刚刚搞定的东西相比,你说的事情没什么难度。”

第二天,韦斯一反常态,满面愁容地走了进来。“呃,老大。我也不想这么说,可是我觉得这件事做不到。”

我要他作出解释,他说:“要想做到竞争对手所做的事,我们必须完全重写制造资源计划系统,这个系统支持着所有工厂。那是一个很老的大型机应用程序,我们已经用了几十年了。三年前,我们把它外包出去了。主要是因为,像你这样的老人家,快要退休了。”

“我不是要冒犯你。”他补充道,“多年前,我们就遣散了很多管理主机的人——他们的薪酬远高于一般水平。有个外包商说服了当时的 CIO,说他们有位头发灰白的员工,足以在我们退休前为那个应用程序提供终身维护。我们当时的计划是,用一个比较新的 ERP 系统来代替,但显然,我们没有机会这么做了。”

“该死的,我们是客户,而他们是我们的供应商。”我说,“告诉他们,我们付钱给他们,不只是要维护应用程序,还要开展各种必要的业务变更。根据莎拉的说法,我们需要这个变更。所以,去搞清楚他们想收我们多少钱,以及我们还要等多久。”

“我已经问过了。”韦斯说着,从胳膊底下抽出一叠纸,“我设法踢开了那个愚蠢的客户经理,才和一个负责技术的分析师搭上话。然后他们终于发来了这个方案。”

“他们想用六个月时间收集需求,再用九个月时间进行开发和测试,如果我们走运,从现在算起一年后也许可以投产。”他继续说,“问题是,要等到六月份才能拿到我们需要的资源。所以,这意味着我们要等18个月,这还是最短时间。即使只是启动这件事,他们就要5万美元,开展可行性研究,并在他们的开发计划里排上号。”

现在,韦斯的脸涨得通红,他摇着头道:“那个没用的客户经理坚称,合同的规定不允许他帮助我们。显然,他的工作就是要让每件东西都从我们这里收钱,并且劝我们不要做任何合同上没有的内容,比如开发。”

我重重地呼了口气,思考着其中的含义。现在,阻挠我们朝着既定方向前行的障碍来自于公司外部。但是,如果障碍在外部,我们还可以做些什么?我们无法像之前做过的那样,说服一个外包商改变他们的优先级或者管理方式。

我突然灵光一现。

“他们给我们的户头配备了几个人?”我问。

“我不知道。”韦斯说,“我想是配备了6个人,承担了30%的工作量。可能要根据他们的职位而定。”

“叫帕蒂带着那份合同的复印件过来,我们来算笔账。你再看看能不能找个采购部的人一起过来。我有个大胆的新提议想要试试。”

“谁外包了 MRP 应用程序?”史蒂夫坐在办公桌前发问。

我正和克里斯、韦斯和帕蒂一起坐在史蒂夫的办公室里。莎拉站在一边,我试图不去理会她。

我再次向史蒂夫解释我们的想法:“多年以前,我们就认为这个应用程序不是业务的关键部分,所以我们把它外包出去以削减成本。显然,他们并不把它看作一项核心职能。”

“好吧,现在它显然是一项核心职能了!”史蒂夫回答,“现在,那个外包商劫持了我们,阻止我们去做应该要做的事情。他们不只是一块绊脚石,他们现在影响了我们的未来。”

我点点头。“简而言之,我们想先撕毁外包合同,把那些资源拿回公司。我们现在所说的涉及到大约6个人,其中一些在工厂现场工作。提前两年买断剩余的合同大约需要一百万美元,而我们则能够重新获得对 MRP 应用程序及底层基础架构的完全控制。我们团队里的人全都相信,这样做是正确的,我们还事先得到了迪克团队的认同。”

我屏住呼吸。我刚才抛出了一个非常大的数额,比我两个月前提出的预算增加额大得多,那时候我被赶出了这间办公室。

我很快说下去:“克里斯相信,一旦把这个 MRP 应用程序交回公司,我们就能建立一个连到独角兽的接口。我们将得以重塑制造能力,从“库存型生产”转变为“订单型生产”,那样就有能力提供莎拉要求的那种定制装备。果一切执行顺利,与订单输入和库存管理系统的整合按照计划进行,大约90天后,我们就能做到竞争对手现在所做的事。

用眼角的余光,我都能看出莎拉正在挖空心思想着应对之策。

史蒂夫没有立刻驳回这个主意。“好吧,你说的有点儿意思。最主要的风险是什么?”

克里斯回答了这个问题。“外包商有可能已经对基本代码作出了重大改动,而我们对此一无所知,那将会减缓部署进度。但是我个人认为,这个风险的可能性很小。根据他们的行为,我觉得他们应该没有对功能进行过重大变更。”

“我不担心技术难题。”他继续说,“现有的 MRP 并非为大规模生产而设计,至少达不到我们现在所说的这个生产规模。但我肯定,我们可以找到短期解决这个问题的办法,并在推进过程中想出长期战略。”

克里斯说完后,帕蒂补充道:“外包商也可能会在移交工作的时候给我们出难题,受影响的工程师也会对我们充满敌意。当年我们宣布那份合同时,很多人都满腹怨气——尤其从他们由无极限零部件公司员工转变为供应商的那一刻起,他们的工资就减少了。”

帕蒂继续说:“我们应该马上让约翰也参与进来,因为对那些将要弃之不用的外包员工,我们得取消他们的访问权限。”

韦斯大笑着说:“我想亲手删除那个混帐客户经理的登录证书。他是个混蛋。”

史蒂夫全神贯注地听着。然后他问莎拉:“你对他们的提议有什么想法?”

她沉默了片刻,但最终断然说道:“我认为,在着手开展这么冒险的重大项目之前,我们应该先和鲍勃商议,并获得董事会的全体批准。考虑到 IT 以前的表现,这件事有可能会危害到我们的所有制造运营,我认为我们不应该承担那样的风险。简而言之,我本人并不支持这个提议。”

史蒂夫审视着莎拉,嘴角带着一丝冷笑,他说:“记住,我才是你的老板,不是鲍勃。如果你不能根据这一安排而工作,我会要求你立刻辞职。”

莎拉的脸色变得苍白,她张大了嘴,显然意识到自己犯了大错。

她竭力让自己镇定下来,对史蒂夫的批评报以不安的笑声,但是没人响应。我暗自看了看其他人,发现他们和我一样,睁大眼睛看着这出好戏开场。

史蒂夫继续说:“恰恰相反,多亏有了 IT,我们可能不用再考虑其他那些你和鲍勃正在准备的艰巨的战略选择了,不过你说的我都明白了。”

史蒂夫对我们这些人说:“我把迪克手下最好的一个人和我们公司的法律顾问派给你们。他们会帮助你们完美无缺地执行这个项目,并且一定能通过各种手段,让我们从外包商那里拿到我们需要的东西。我一定会让迪克亲自关注这个项目的。”

莎拉的眼睛瞪得更大了,并附和道:“这个主意好极了,史蒂夫。那样就能明显降低我们这里的风险。我觉得鲍勃会很喜欢的。”

从史蒂夫脸上的表情可以看出,他对莎拉的惺惺作态已经很不耐烦了。

他问我们,是否还有别的要求。没什么别的事情,他让大家都离开了,但唯独留下了莎拉。

我们离开时,我悄悄往后瞥了一眼。莎拉坐在我之前坐的位置,紧张地看着众人鱼贯而出。我和她对望一眼,朝她笑了笑,然后关上了门。

比尔以后如何?莎拉下场又会怎样?

一群 IT 人的职场恶战未完....

项目出问题,凭什么让程序员背锅?_第3张图片

《凤凰项目》,一个关于 DevOps 的故事,一本关于讲述 IT 人的从普通码农历练成为 COO 的“非典型”职场励志小说,一个非虚构的「敏捷」转型故事。

· 如何让一个几乎失败的项目死灰复燃

· 如何挽救濒临拆分抛售的公司?

· 如何化腐朽为神奇

项目出问题,凭什么让程序员背锅?_第4张图片

享受低价折扣

扫码加入社区

马上获得

出版社内部福利

免费电子书

项目出问题,凭什么让程序员背锅?_第5张图片

你可能感兴趣的:(微软,informix,devops,敏捷开发,软件开发)