Day 10: Say No & Say Yes (待改进中... )

「最要说不的是那些 『高风险的关键时刻』。愈是关键时刻,『不』字就愈有价值。当公司存亡成败皆系於此时,你必须尽己所能,把最好的资讯传递给你的经理,这往往意味着要说『不』」

「事实上,优秀的经理人对於敢於说『不』的人总是求贤若渴。因为只有敢於说『不』才能真正做成一些事情」

取自: The Clean Coder (p.59 & p.62)


CH2: 说「不」

何谓团队精神?

案例: 某司重大产品发表会前夕

Paula: 「那个专案的进度预估是这样的,约 8 周後可以完整 Demo,也可能提前或延後 1 周」

Mike: 「进度早已排定了,从现在开始,还有 6 周」

Paula: 「我先回专案小组评估 6 周後有把握交付些什麽,但绝不会是整个系统。有些功能肯定还不能用」

Mike: 「客户想见到的是完整 Demo!」

Paula: 「我们都已经竭尽全力了,Mike,这个问题上我们已经尽很大的努力了,完整交付日期肯定是在 8 到 9 周之後,而不是 6 周」

Mike: 「你们可以多加班呀!」

Paula: 「相信我,这个任务需要 8 或 9 周」

Mike: 「好吧,拿出你的最佳方案来,但要继续想想怎样才能在 6 周内做完。我知道你们会找到办法的」

Paula: 「我会给你看一个 6 周的方案,但有些功能或资料都不会包含在那,我只能做到这样」

Mike: 「好吧,不过我敢肯定如果夥伴们愿意努力试试的话一定会有转机的」

// 过了一些时候,在总监召集的业务策略会议上...

Don: 「客户 6 周後会来看完整 DEMO,他们希望看到一切就绪」

Mike: 「没问题,我的团队正全力以赴,总之我们会保证完成任务的」

Don: 「很好,你们都很有团队精神」

-- End --

思考: 这个案例里,谁真正具备团队精神呢?

  • Paula 根据自己团队最好的状况明确评估哪些是做得到与做不到的事情
  • Mike 只考虑一己之利,一个劲儿让 Paula 去完成那些她已明确表示无法完成的任务
  • 显然 Mike 与 Don 也不是同一个团队的,因为他在会议上满口谎言
  • Why?
    • Mike 不是什麽恶魔,他只是自信过头,以为一定能让事情照自己想的运行
    • 他相信自己能软硬兼施控制 Paula 在 6 周内尝试努力赶上 Deadline

当一列满载的火车向大家冲来...

  • Paula 可以任由大家走向悬崖
    • 他可以确保所有谈话都已被记录下来,以规避责任
    • 这是一种「消极对抗」
  • 另一种做法,他可以直接和 Don 交流来阻止灾难发生
    • 这麽做的确有风险
    • 也真正体现了团队精神的全部内涵

说「是」的成本

  • 这一节作者 Martin Fowler 举了一个亲身的经历 (故事长)
  • 简单来说
    • 作者花了 2 周超时极限加班,并大量使用复制贴上大法,产出许多烂 Code
    • 业务迟迟没给其他必要资料,导致 APP 无法上架
    • 结果:噢,你好阿 Bob。我们新来了一位副总,决定不再发布那支 APP 了

客户永远不会像你那麽在乎

  • 记住:客户总会把专案截止日期往後拖延
  • 他们总是想要更多功能,提出更多需求变更 (尤其在最後关头)
  • Bob 公式 (...?):
  (经理人数)^2
+ 2 x (新经理人数)
+ Bob 的孩子数
= 最後时刻增加的天数

哄骗工程师三步骤 (原文: 结果如何? 急於完成,却迟难上市)

  1. 告诉开发人员这个应用很简单
  2. 挑剔指责开发团队没能发现他们的需要,并藉机增加各种功能
  3. 一而再地延後专案截止日期
    • 在你已经每周加班 20 小时把一切都差不多弄好时
    • 又多给你几天时间
    • 然後又再加一周时间
    • 提出新的需求

取自: The Clean Coder (pp.74-75)

P.S. 关於本小节,笔者目前没有特别深刻的感受,只觉得工程师真的要好好保护自己 QQ,有网友愿意分享看看心得的吗~

小结

「写出好的程序码,坚守专业主义精神,有可能吗?」

「是的。但首先你要学会如何说『不』」

取自: The Clean Coder (p.59 & p.62)


CH3: 说「是」

真正的承诺听起来是怎样

识别「缺乏承诺」的徵兆

当无法兑现承诺时

  • 及早告知状况,求援

坚守原则


小结

「如果你能够一直信守承诺,大家会认为你是一名『严谨负责的开发人员』。这是我们这一行中最有价值的评价」

取自: The Clean Coder (p.85)

  • 写 Code 之外,程序设计师肯定得面对各式的沟通活动:
    • 预估
    • 确定 Deadline
    • 面对面交流
  • 做出承诺能够帮助开发者解决沟通中可能发生的不少问题
  • 专业人士不必对所有的请求都回答「是」 (回想 CH2)
    • 但它们会尽可能寻找创新方法,做到有求必应
    • 给出肯定回答时,它们会使用「承诺用语」

<<:  Day12:全端工程师的生活常态

>>:  [前端暴龙机,Vue2.x 进化 Vue3 ] Day16.父子组件的沟通-props

(Day24) 处理非同步的 Promise

前言 在过去 JS 要处理 Ajax 这个非同步语法,会很容易用到 Callback 写法,而 Ca...

@Day10 | C# WixToolset + WPF 帅到不行的安装包 [自订动作介接画面-安装前执行]

安装前 要执行的动作 昨天有讲到安装後的执行动作,那安装之前要执行的动作勒?! ex 我想先侦测出本...

3.2 Design System - 其他注意事项

一个人厉害永远比不上一群人厉害 某次跟同事闲聊时谈到这件事 我们一致认同在一个团队里 大家都是互相...

[DAY 16] AutoEncoder-Decoder 结构简介

前言 接下来,我们要介绍一个常见的 Model 结构,通常会称为 AE (AutoEncoder) ...

Day 4— 自动化回信机(1) 前置作业

今天开始就要来利用专题了解 GAS 的各项功能罗~ 说到要能优雅、或是狼狈的…总之要能够享受下午茶,...