编码整洁之道(注意不是代码)个人翻译之序言
几年前我在一家中型公司销售高度监管产品。你肯定知道我说的这种:我们坐落在一栋三层楼高的农场中,董事会拥有私人办公室,并且会召集所有需要的人在相同环境的办公室中开会,每周如此。
当政府开启新的生产时我们通常都会运营在一个竞争激烈的市场中。
突然我们拥有大批全新的潜在客户:我们要做的就是让他们买我们的产品。这意味着我们要在一定期限内提交文件在联邦政府的监督下,在另一个期限内通过评估审计,在第三个期限内打入市场。
一遍又一遍的我们的管理层向我们灌输这些日期的重要性。一个事故发生政府就会将我们赶出市场一年,同时如果客户不在注册了,然后他们都倒戈到其他家了我们也会成为局外人。
这是一种一些人满腹唠叨另一些人则相信“压力出钻石”的环境。
我是一个技术工程师,在发展中提升。我的责任就是让网站上线,这样潜在的客户可以下载信息,最重要的是,注册表格。我的搭档正竭力做一个市场管理人员,我叫他joe.joe的角色工作在另一端,处理销售,把控市场,不需要技术要求。他也是“压力出钻石”的 拥趸。
如果你曾在美国公司工作很久的话,你很可能见过针锋相对、激烈指责以及相互厌恶的场面,这很自然。我们公司有一个很有意思的解决方案关于我和joe之间。
有点像蝙蝠侠和罗宾,我们的工作就是把事情搞定。我每天都会在角落里和技术团队沟通:我们每一天都会重新设计日程表,找到关键路径(网络图常用术语),去除掉在关键路径上每个有可能的障碍。如果某人需要软件,我们就去得到它。如果他们想建立防火墙但说“天啦,我的午休时间到了!”,我们就会给他们买午餐。如果某人想要忙于我们配置的机票但是还有其他优先级的事情,joe和我会和监管员谈谈。
接下来就是管理层。
接下来就是董事会。
总之我们把事情搞定了。
这么说有点夸张,我们会踢翻座椅,大喊大叫,但是我们会用尽我们所有的技能包去把事情搞定。在路程中会发明一些新的技术,我们用道德的方式,即便如今我也对这些很自豪。
我把自己当成团队的一员,不超过角色去写一条sql语句或者做一些结对编程。同时,我也用同样的方式思考joe,作为一名团队成员,不越过它。
最终我发觉joe不分享他的意见。这对我来说是个忧伤的事情。
那是星期五下午1点,网站上线很早直到下个星期一。
我们搞定了。每个系统都正常运行,我们准备好了。我集结了整个技术团队做最后的敏捷开发会议并且我们准备好了开启开关。不只是技术团队,还有我们拥有的来自市场的家族企业,以及产品拥有者,和我们在一起。
我们很骄傲,这是个美好的时刻。
但joe突然情绪骤跌。
他好像说:“坏消息,legal没有准备好登记表格,所以我们无法上线”。
这不是个大问题;在长时间的整个工程中我们阻隔了这样或者那样的问题并且对“蝙蝠侠”或者“罗宾”了如指掌。我准备好了,我的回复很有必要,“没关系我的同伴,让我们花点时间做这个,Legal在三楼,对吗?”
然后事情就往怪异的方向发展了。
joe并没有同意我,他问道,“你要怎么和Matt说?”
我说:“你懂滴。我们通常载歌载舞。我们在讨论4张PDF,对吗?那些搞定了。legal只是必须批准它们?让我们到他们的卧室闲逛下,给他们一个邪恶的眼色,然后把事情搞定!”
joe还是不同意我的假设,并说,“我们只要推迟到下周上线。不是大问题。”你都可以猜到剩下的交流;说的大概是这样:
......(待续)