Skip to content

团队合作

组团工作

提高团队生产力几乎没有比实践协同编程更好的方法了。

开放式/虚拟办公室

团队成员非常频繁地彼此查看和互动也很重要。

远程工作永远不会像在同一间办公室里工作那样富有成效。即便有最好的电子设备,在屏幕上见面总不如面对面交流。打造一间团队虚拟办公室。让每个人都能互相看见。尽量打开每个人的语音频道。你的目标是创造团队办公室的幻觉,让大家都在里面工作。远程团队应当尽可能在同一时间工作。如果程序员相距很远,就很难做到了。团队成员驻地跨越的时区要尽量少。尽力让团队成员每天在虚拟办公室里连续共同工作起码六小时。

诚实和合理地预估

谎言

大多数预估都是谎言,因为它们都是由一个已知的结束日期倒推造成的。

诚实、准确、精确

你能给出的最靠谱的预估是⌈我不知道⌋。

准确度

预估结果不该是日期。预估结果应该是时间范围。预估结果是概率分布。

复杂任务的预期平均完成时间是所有子任务的平均完成时间之和。子任务完成时间可以通过将所有子任务的时间相加来估计。这就形成了一棵任务树,通常被称为工作分解结构(Work Breakdown Structure,WBS)。一般来说,我们会遗漏一些子任务,就当漏了一半。可以将总和乘以 2 来弥补,或者有时乘以 3,甚至可能更多。

确定做一件事要花多长时间,只有一个真正的方法,那就是去做这件事。开发完整 WBS 的成本等同于人物本身的成本。当你开发出完整的 WBS 时,你也已经完成了这项项目。真正列举出所有任务的唯一方法是通过执行你所知道的任务来发现其余的任务——递归式操作。

精确度

正确的预估根本就不是预估,而是既成事实。

在没有确定咨询的情况下,概率是唯一合理的预估方式。如果你的预估结果是一个日期,你实际上是在做承诺,而不是做预估。承诺了,就必须做到。有时你必须做出承诺。但承诺意味着你必须成功。你决不能承诺不确定自己能完成的日期。

诚实

真正提高确定性的唯一方法是着手做项目。只有做完整个项目,才能获得完美的确定性。

当你被要求给出承诺时,如果能做到,就说是。如果做不到,就说不,并说清楚你不确定的地方。

你被录用是因为你有能力说⌈不⌋。任何人都可以说⌈好⌋,但只有拥有技能和知识的人才知道何时以及如何说⌈不⌋。

尊重

进入人类社群的唯一资格,以及赢得每个成员的认可和尊重的资格,是我们的职业技能、纪律、标准和操守。没有其他人类属性值得考虑。不允许因为其他因素彼此歧视。

永不停止学习

程序员永远不会停止学习。专业人员会投入实践来培养和维护他们的事业。

Released under the MIT License.