@stkevintan
2015-06-09T22:03:46.000000Z
字数 2229
阅读 606
姓名:谭凯文
学号:11550223
班级:软件121
在团队软件开发中最要紧的是沟通。每当开发中出现问题的时候,通常已经有人知道了解决方案,但是领导们却并不知道。当我忽视自己的直觉的时候,我也会出现这种问题。人们之间的沟通的情况则更加复杂。
有时候是知识而不是沟通的缺乏导致问题的出现。因为你不知道,所以不能预先为他们做任何准备。”Ctrl+Shift+S热键已经用于加亮窗口。谁会想到?“一旦你发现了一个令人惊异的问题,沟通会帮助你解决它。你可以向过去碰到过类似问题的人打听。你们可以作为一个团队讨论如何避免问题再次发生。
大家坐在一起关注问题和共享讨论,但是没人付出行动,或许这听起来像永久性的茶话会。团队还要坚持一些其他价值观以保证这种情况不会发生。但是没有沟通的行动是不会进步的。
每当你遇到一个问题,首先问自己这个问题是不是由于缺乏沟通引起的,你需要什么样的沟通来解决该问题?需要什么样的沟通来使你以后避免这样的麻烦?
沟通对于创造团队意识和高效合作意识是很重要的。虽然沟通并不能给予你高效软件开发所需要的全部。
简单是XP价值观中治理色彩最强烈的。构造一个优雅地解决今天问题同时又足够简单的系统是很艰难的。昨天的简单解决方案在今天看来可能仍然不错,但也可能太过于简单了,或者太复杂了。当你需要作出改变以重新获得简单性的时候,你必须找到一条从你当前位置到达目的地的路径。
我请人们思考这样一个问题:什么最简单而又可能有效的?批评家通常会忽略了这个问题的后半部分:”嗯,我们的系统不能简化,因为它有严重的安全和可靠性约束。“我并不是要你思考过于简单而无效的东西,只是要求调整你的思想以消除多余的复杂部分。如果安全上的考虑导致本来只需使用一个处理器就可以解决的问题必须分为两个处理器来解决的话,那对我而言,结果仍然可以更简单的。更好的解决方案仅仅在于你能否找到一种在单个处理器上处理安全问题的方法。
简单的意义与具体的环境有关。如果我正在和额懂得解析器的生成器的团队一起编写解析器,那么使用解析器的生成器就是简单的。如果团队中没人知道如何解析,并且要解析的语言也很简单的话,使用自顶向下的递归解析器将会更简单。
价值观之间是相互平衡和相互支持的。加强沟通能够去除那些不需要的或者可暂缓的需求,从而达到简单化。同时力求简单化会使你大大减少沟通的内容。
没有那个固定方向是长久有效的,不论我们在谈论软件开发细节、系统需求还是系统架构。超越经验而确定出来的方向,它的半衰期尤其短。变化是不可能避免的,变化产生了对反馈的需要。
我还记得我在丹麦奥尔胡思市的一次全天讲座。随着讲座的进行,一个前排的观众脸色越来越阴沉。最后,他忍不住了。”从一开始就选择正确的做法,不是更容易吗?”——当然可以,除了三件事情:
今天按照“正确”的做法去做每一件事情,可能需要太长的事件,以至于还没完成,环境的变化就使它失效了。
我们不断改进,并不期望可以马上做到完美,我们使用反馈来一步步地接近我们的目标。反馈有多种形式:
你和你队友关于某一个想法的观点;
一旦该想法被部署,它如何运转。
XP团队致力于在尽可能快的情况下产生尽可能多的反馈。尽量将反馈的周期缩短为分钟或者小时,而不是星期或月。知道得越早,你就可以调整得越早。
可能出现太多反馈。如果团队正在忽略重要的反馈,则需要暂缓下来,知道响应了重要的反馈,团队才能处理导致过多反馈的潜在问题。
反馈是沟通的关键部分。反馈同样有益于简单。三种方案中谁将是最简单的?都尝试一遍就明白了。虽然将同一件事情重复三遍看起来有些浪费,但是这也许是获得足够简单的解决方案的最有效的途径。同时,系统越简单,获取它的反馈就越容易。
勇气是面对恐惧的有效行动。有些人反对使用“勇气”这个词,认为它是保留给正在穿梭黑暗之门的巡逻士兵的。我不是要抹杀士兵展现出来的自然的勇气,但软件开发中的人们同样也会感到畏惧。他们面对恐惧的处理办法反映了他们是否是一个团队的有效组成部分。
有时勇气表现为对某种行动的偏爱。如果你知道问题是什么,那么你就去做吧。有时勇气表现为耐心。如果你知道问题存在但不知道问题是什么,则需要勇气来等待真正的问题。
如果没有其他价值观的平衡,勇气会是危险的。不顾后果地盲目行事不是高效团队的合作方式。恐惧的时候,我们需要鼓励团队,并根据其他价值观来知道下一步的行动。
仅仅只有勇气是危险的,与其他价值观相呼应的勇气才是有力的。表达愉快或不愉快真相的勇气会有助于沟通和信任的建立;放弃失败的解决方案寻求新方案的勇气会有助于鼓励对“简单”这一价值观的追求;寻求真实具体答案的勇气会有助于增加反馈。
前面提到的4个价值观指向处于他们背后更深刻的另一个价值观:尊重。如果团队成员不关心彼此,也不理会别人所做的事情,XP是没用的。如果团队的成员不关心项目,那么这个项目就没救了。
受软件开发影响的每一个人,都有其作为人的价值观。不会有某个人本质上比起他人更有价值。所以要同时提高软件开发的人性和生产率,每个人对团队的贡献都应该得到尊重。我是重要的,你也是。