幕间休息:——完成的感觉
xpchina:BrokenDoor
--------------------------------------------------------------------------------
摘自《XP Installed》 第61-63页 简单的翻译了一下,希望大家能够喜欢。
XP 的嵌套式的设计和编程循环让项目保持在轨道上,并且提供了一个健康的不断完成的感觉。
--------------------------------------------------------------------------------
大多数项目持续数月之久;有一些会持续数年。为了防止在无边无际地编码-即使是漂亮的优质代码-的持续打击下变得发狂,每一个项目都需要停顿。一个程序员可以获得的最好的停顿是一种完成的感觉。XP的设计循环提供了一个循环相套的节奏,每一个周期都有着它自己的完成时刻。
成功的运行测试程序每个几分钟就给了程序员们一个完成的感觉。跟你的伙伴分享这点小小的快乐吧。完成一个任务每隔几个小时就提供了一个完成的感觉。跟所有的其他的程序员们分享这份感觉吧;休息一下;也许换一下伙伴。完成一个故事是一个重要的里程碑。每个人都得到成功的感觉。同所有的客户和程序员们分享吧;也许可以举行一个小小的仪式。
完成一个迭代过程标志着完成了一些故事并且为下一次完成开启了一扇门。同整个团队共享这份快乐吧;确认一下是否准备好了比萨饼或者其他一些小的庆祝。
每一次发布提供了一个重要的完成的感觉:新的商业价值已经在客户手中了。这是美好的一天!可以打开香槟了!
这些都是重要的时刻。他们为工作加上了标记,使它们拥有一种进度和意义的感觉。没有这些时刻,工作就会变成苦差事,一个没有结尾的死亡竞赛。
- 程序员们掌握节奏
程序员们,每一天都创造自己的完成的感觉的责任。在一个时刻只考虑一个故事,从这个故事的任务中取出一个来进行工作。为这个任务编写一个你需要的测试。运行它,直到它能够运行。完成编码直到它能够完成工作,经常的运行所有的测试。当你正在为它工作的测试能够运行的时候,休息一下。在你的脑海中慢慢体会 - 又完成了一点。
在一个时刻编写测试中的一个,为任务测试并且编码直到所有必需的测试能够运行。休息一下。任务完成了!让你自己感觉一下这个小小的胜利。从你的清单上划掉这个任务。感觉到一点点兴奋。任务完成了!
代码是否已经定型并且可以发布了——不是全部完成了,只是已经可以运行所有的测试了?也许这是一个运行所有测试和发布一些代码的好时机。代码发布了!生活是美好的!
在一个时刻为一个故事工作。当为故事编写的所有的测试能够运行时,休息一下。一个完整的故事完成了!这真是太好了。客户将会取回一个标记为完成的卡片。生活是很美好的!
当一个故事完成的事后,这是一个明确地时候需要运行所有的测试并且发布你的代码。
在代码发布的时候举行一个小的仪式。也许去找一个当你在柜台要求服务的时候敲打在它上面的小铃铛。当你成功地发布后重重地敲它一下。当其他人给这个铃铛一下重击地时候,给他们一点鼓励-轻轻的鼓掌,从容地举杯庆祝说“呀...耶!”。
给项目加上标点,享受这些完成地时刻。在一个迭代周期结束时,通过将已经完成的故事交还给客户形成了一个小的成果。“它们已经完成了。”给你自己一点掌声-这很好!如果有一些故事没有完成,就让它呆着吧。确认先说明这些,因此你可以通过上面的贴纸标注关闭这个迭代周期。“这些故事没有完成,解释...解释。”停顿一下。“这里,”提交已经完成的一堆,“是我们已经完成的故事。”休息一下,给自己祝贺。
客户们,你们也会为这些时刻感到满意。一些你要求的东西已经完成了。你的问题已经解决了一部分。已经咬到了一大口,并且你获得一些价值,一些你能够用的东西。
庆祝这个时刻。程序员就像小动物一样,只是没有那么自然。我们需要持续的鼓励来保持动力。所以对我们说:“好的,程序员,很好。很好的程序员。”也许向我们扔一块骨头或者一个程序员餐像是一包泡面(译注:原文是a package of red licorice 意指红甘草精,可我不知道那是什么好东西,我们中国的程序员餐就是一包大块儿的泡面了:))。
你的项目将会持续一段很长的时间。有时可能会更长。当这里有成就或完成的感觉时工作会变得轻松和愉快。提供这些时刻,享受它们。每天都成功,并且确保让所有人知道你每天都在成功。