The clean coder---读书笔记(二)

来源:互联网 发布:淘宝pc端源代码 编辑:程序博客网 时间:2024/05/17 09:38

二、软件专业人士如何行事?
所谓如何行事,其实包含了前面提到的如何处理冲突,应对很紧的工期,如何和不讲道理的管理人员打交道?何时应该说“不”?怎么说?如何应对压力?
按照大叔的章节,最先提到的是说“不”,他在文首引用了一句“能就是能,不能就是不能。不要说‘试试看’。”这句话道理大概没人不懂,但是却因为实际工作中有太多的时候碍于面子、迫于压力不得不说些模棱两可的话去敷衍,虽然我们知道这样是不对的。因为“试试看”既给自己留了后路又给听着留了个念想,看似是个完美的对话。但作为专业人士,要敢于说不才能真正做成一些事情,Bob大叔也在书中用自己的亲身经历印证了“试试看”带来的悲剧。而且还通过John Blanco黑五活动应用的故事告诉了我们:

一定要时刻牢记:客户总会把项目截止日期往后拖延。他们总是提出需求变更——而且常在最后关头这么做;
尽管客户一再声明交付日期很重要,尽管他们对此表现得似乎非常迫切,但他们永远不会像你那样在乎应用程序的按时交付;
你的利益干系人,不论是外部客户还是内部管理层,知道如何让开发人员快快写出代码,但并不是高效的写出代码。因为他们会告诉开发人员这个应用很简单,挑剔指责开发团队没能发现他们的需要,并借机添加各种功能,一而再地退后项目截止日期。
因此,成为英雄及“解决问题”的诱惑诚然巨大,只是我们要明白,牺牲专业原则以求全,并非问题的解决之道。舍弃这些原则,只会制造出更多的麻烦。

那反过来,如何说“是”呢?
生活中我们经常会遇到身边的人给我们的各种承诺,但是真正能兑现的并不多,甚至我们会因为轻信他人的“承诺”而栽跟头。那怎么去识别这种“承诺”并避免自己也这么去做呢?

首先书中引用了Roy Osherove的话,做出承诺,包含三个步骤:

  1. 口头上说自己将会去做;
  2. 心里认真对待做出的承诺;
  3. 真正付诸行动。
    知道了这个步骤还远远不够,我们还要学会识别“缺乏承诺”的征兆,比如“需要/应当”、“希望/但愿”、“让我们”这些用词和短语。

那么真正的承诺听起来是怎样的呢,关键在于说话人对自己将会做的某事做了清晰的事实陈述,并且明确说明了完成期限。但有时候承诺的事情并不是自己完全可以把控的,偶尔最终目标会依赖于他人,这是我们需要做的就是采取些具体的行动,接近最终目标,比如坐下来和相关人员理清思路,定期讨论结果。当然,即便你做到了这些,还是会有预料之外的状况发生,这是就要尽早去向你的承诺对象发出预警,这样团队才能尽快决定是否需要做出改变,而且仍有希望通过兑现另一个承诺达成之前的承诺,这样才能不负众望。因为你不尽早告诉他人可能的问题,就错失了让他们帮助你达成目标、兑现承诺的机会。
用大叔的话总结就是“专业人士不需要对所有请求都回答‘是’。不过,他们应该努力寻找创新的方法,尽可能做到有求必应。当专业人士给出肯定的回答时,他们会使用正式的承诺,以确保各方能明白无误的理解承诺的内容。“