开发人员要学会等待

发布时间:2010-08-04
分享到
头像  我们生活在一种期求一时满足的文化氛围之中。无论你是一位想从网上获得信息或者想享受音乐或视频信息的消费者,还是一位希望看到自己最近编码工作成果的工程师,你都希望得到一时的满足,而且现在就希望得到。你对你最新设计的第一块硅片长达数月的等待似乎觉得漫长而又无法接受;假如我们都面对很短的产品周期,则情况就是这样。
  必须避免这种一时的满足是我对某些开发小组,例如负责Cassini-Huygens宇宙飞船开发小组(),留下深刻印象的原因之一。这艘宇宙飞船经过曲折的旅程之后,于2004年7月进入了木星轨道。当然,开发这艘宇宙飞船的科学家、工程师、设计师、技师甚至行政人员都需要具有很多技术作为。但是,他们还需要一种目前往往缺乏或者无法达到的特性:耐心。宇宙飞船从地球升空至到达木星指定位置,是历时7年、长达20亿英里的旅程,而且没有办法加速这段时间。你无法使用更快的处理器、更灵巧的软件、优化的算法或者工程师工具箱中的任何一种具有丰富技巧的工具来完成这项工作。(Cassini的成功受到的主流新闻媒体的关注比较少,这是一种悲哀,但并不令人惊讶;我猜想,对于新闻记者来说,就即将上映的电影和个人生活采访好莱坞明星更有趣一些。)
  在宇宙飞船发射之后,这个开发小组需要长达好多年的耐心等待。开发人员花费了数年的时间来确定合适的体系结构、系统设计以及绝不是“单纯”细节的实施细节。设计人员面临着使用元件的种种约束,亦即所用元件不是大多数工程师更喜欢的“最新最好”元件,而是那些生产工艺已被确认和具有可靠性记录的元件。开发过程的每一个阶段都经过详细的评审和分析,因为如果出了问题,工程师们无法指望服务电话、维修补给或者下次产品修改。
  这项任务的另一个吸引人的方面就是容忍消息在以地球为基地的控制系统和宇宙飞船之间传输而产生的固有滞后时间。发送的一个指令需要一个多小时才能到达接收者,而发现接收者是否确实收到并执行这个指令又要花同样的时间,我们中有多少人能容忍这种情况?在试验一个想法与看到它是否起作用或者针对什么问题之间存在着巨大的延迟,我们能够接受在如此大的延迟之下不得不去评估甚至调试那些意想不到的开发方案吗?我怀疑我们很少有人能够做到。
  下一次你对你的项目状况不满,希望你的代码编译得更快或者你的型号接受测试完成得更快时,想一想象Cassini这样的项目吧。对于小组成员来说,明知道任何查询在数小时内不会有答复,数年之后才可能得到最终的,还有可能发生任务失败根本无法诊断,在这种情况下仍然签约受聘是一种承诺和信念的行动。
收藏
赞一下
0