我在团队里我试图说服我的队友采取TDD(作为我已经看到它的工作在我之前的队伍和设置类似)。此外,我的个人的信念是,至少在开始时,这真的帮助,如果两个和对方案编制完成。这种方法,两个没有经验(在TTD)开发者可以互相帮助,讨论什么样的测试,以编写和作出良好的进展。

我的经理,另一方面,认为如果我们介绍两个新的发展做法在团队中的一次,有一个很好的机会,都可能会失败。所以,他想要更多一点的保守的,并引入任何一个。

我怎么说服他,这些都是互补的而不是正交的。或者是我错了?

有帮助吗?

解决方案

我不知道,有更多的人谁不知道他们在TDD做什么,是要帮助。它很快就会陷入你俩谷歌搜索的主题,或者你们俩争论TDD到底是什么/是没有的。

我觉得你会是对球队让别人更好地成为一个给定的技术(有人去和TDD读了起来,有人去和结对编程中最多读取)的传道者和拥有那么这些人的推动和审判那些事。是的,既可以在同一时间发生,但他们没有在整个项目团队使用。你可以有一小群你的团队做结对编程,然后汇报他们的经验。

其他提示

对progamming是有效学习的时候一个新的实践尤其是TDD

所以,你可以同时拥有与达成妥协。这样做在一个灵活的时尚,损害的结果涉及人员或财产。采取对编程的第一个。它是更容易的两个。所有做法之后,对编程将变得更容易学习和将通过的团队,更快速和更大的consistentcy.对编程是第一个如果不是第一engineerring的做法,应当予以通过。确保这样做是有效的。下面是说明如何去做对的程序。

配对的编程是一个最有效的做法,开发团队可以使用当开发的软件。配对的发生有两个开发积极发展的一个故事卡使用单一计算机和键盘。管理者担心,使用成对程将双他们编程费用。乍一看,这是可以理解为什么他们可能会认为--之后有两个人被问一起工作上的相同的任务。在实践中,虽然、敏捷的队伍使用这一发展的技术已经发现略有增加费用的初步发展(15%根据犹他州立大学研究)超过抵消了减少的缺陷,一个较短和不太昂贵的测试循环和减少需要对生产的支持。

虽然它可能似乎有悖常理的是,具有程序员对和工作在一起的提高生产力,也有一些原因为什么这种技术确实工作(认为该句古话,"两个头比一个好。") 这里就是为什么:

  • 改进质量--配对鼓励码的审查。许多错误得到抓获,因为他们是输入的。配对的编程装置的连续码的审查完成,由两人都致力于的代码的质量和一起工作以确定和修正错误,在所有的时间。所做的一项研究犹他州立大学发现,结束数发现的缺陷在码是减少15%的平均水平编写的代码对。
  • 花费的时间更少"被陷"--编程是很难的。开发人员常常很难找到一个解决方案,并花更多的时间比他们应该"被困".有一个合作伙伴集思广益并商定寻求帮助,如果必要的量减少非生产性时间停留在试图找到一个解决方案。
  • 更少花费的时间上的干扰--开发人员不太可能把时间花在个人电话或网上冲浪、或电子邮件度假时,他或她的工作与合作伙伴。
  • 两个观点应用到的问题--不同级别的经验,不同的解决问题的风格、不同的辅助技能的所有增加的机会解决问题速度更快。该项研究由美国犹他大学还确定了更好的整体设计和更短的码长度对于该软件的书面通过对。
  • 小害怕未知的--当配对的另一个开发者很容易解决的问题或试图得到一个手柄上的新技术比它是在单独工作。他们也获益,随着时间的推移,更好地了解整个应用程序。在结束时,项目结束多的人了解每一块的系统结果的配对。
  • 不太可能建立在范围--往往开发商愿意添加功能不处理的要求。工作时有一个对第二个开发者更有可能保持他/她的合作伙伴在任务。
  • 改善团队动力--由于配对的做法,人们学会在一起工作。他们更经常和经验的一个更好的信息流动。团队动力改善结果。事实上,我们发现,最好的团队建设的经验,周围是一起工作,以生产的软件你的客户是很兴奋。每个人都喜欢的一部分,一个成功的团队。
  • 消除孤立的知识域的知识,知识的代码或做法正在迅速传播,通过团队,并开发对一个另一个在旋转的基础。

一旦队是舒适用搭配,然后采取影响。一destription下:

测试驱动的发展(TTD)是一种软件开发工程的实践组成的短期突发的发展,其中一个新试验情况下,涵盖所需的改善或新的功能写首先,那么产生的代码,有必要通过测试是实现,最后的软件进行了重构,以适应变化。性测试之前的实际发展,确保迅速的反馈之后的任何改变。从业人员强调,试验发展方法的设计的软件,而不仅仅是一种方法的测试。测试驱动的发展是一个强大的做法和主要捐助者减少发现的缺陷以后的生命周期。一个新的团队是强烈鼓励对有经验TDD医生或其他接收TDD指导。e

测试驱动的发展需要一个自动化的单元的测试,确定要求的代码,写之前的每个方面的代码本身。这些测试包含的断言,无论是真正的或虚假的。运行测试提供迅速确认的正确的行为作为代码的发展和重构。测试框架的基础上,来完成概念提供一个机制,用于创建和运行设置的自动化测试的情况。测试驱动的发展周期:下列顺序,是这本书的基础上测试驱动的发展的例子,其中许多人认为是该规范的来源的文字上的概念,在其现代的形式。

  1. 写一个测试。在测试驱动的发展,每个新故事卡开始与编写考试。这种试验将会失败,因为它是以前写的功能已经实施。为了写一个测试,开发人员必须了解规范和要求的功能清楚。这可以通过故事卡与接受标准指定当要求已经满足。这还可能意味着一种不变或修改一项现有的测试。这是一个区分特点测试驱动的发展与编写单元测试后代码写的是:它使开发商的重点放在要求之前编写代码,一个微妙而重要的差别。
  2. 运行的所有测试,看看在新的一个失败。这验证测试工具是否正常工作和新的试验不会错误地通过不需要任何新的编码。新的试验还应该失败,为预期的原因。这一步测试,测试本身,否定:它规定了可能的新的考验将永远传递的,因此可以毫无价值的。
  3. 编写一些代码。下一步是编写一些代码,这将会导致试验的通过。新代码写在这个阶段将不会是完美的,可以,例如,通过测试,在一个不优雅的方式。这是可以接受的,因为后面的步骤将提高和磨练。重要的是,该代码编写的只是旨在通过测试;没有进一步的(并因此未经测试)的功能应该是预测和'允许的'在任何阶段。
  4. 运行自动测试,看看他们取得成功。如果所有试验的情况下通过,该程序员可以相信,代码满足了所有的测试要求。这是一个很好的点从这开始的最后一步循环。
  5. "重构"的代码。现在的代码可以被清理为必要的。通过重新测试的运行情况下,开发商可以相信,重构不是破坏任何现有的功能。这一概念的消除重复工作是一个重要方面的任何软件的设计。在这种情况下,然而,它也适用于删除任何重复试验之间代码和生产码—例如神奇的数字或字符串重复,为了使测试过程中的步骤3。

重复

开始另一个新的试验,循环,然后重复,以推进的功能。尺寸的步骤,可以为小型开发者喜欢或者获得较大,如果他/她感到更有信心。如果编写的代码,以满足一个试验并不相当迅速这样做,那么步骤的大小可能已经太大,也许较小的可测试的步骤应该是代替使用。当使用外部图书馆重要的是不要作出的增量是那么小,因为要有效地仅仅是测试图书馆本身,除非有某种原因认为该图书馆是越野车或是不充分的特征完全服务于所有需要的主要程序正在编写的。

发展风格 有各种不同的方面,使用的测试驱动的发展,例如原则"保持简单,愚蠢"(KISS)和"你不会需要它"(YAGNI).通过专注于只写的代码有必要通过试验,设计可以更清洁和更清晰的比往往是通过其他方法。测试驱动的发展要求程序员的第一个失败的试验情况。这个想法是要确保试验真正起作用和可以抓住一个错误。一旦这显示,正常周期将会开始。这已经创造了"测试驱动发展的口头禅",称为红色,绿重构在红色意味着失败和绿色的是通过。测试驱动的发展不断重复的步骤添加测试的情况下失败,通过他们,并重构。收到预期的测试结果在各个阶段加强了程序员的心理模型的代码,增强信心和提高生产率

您是绝对正确的,学习新的东西时,结对编程会帮助极大。我同意你的看法,你应该努力推动双方做。

也许舍出你的经理是不是表明你问到在同一时间推出这两个新事物的最好方式。取而代之的是,建议你觉得最有效的方式开始实施TDD是,同时还完成工作,是采取只有两个开发商的“TDD调查小组”,让他们一起工作得到建立相应的工具,学习技术,测试它们,并找出你需要做您的环境中加以应用。一旦你得到了工作,并具有有一点与它经历的两个人,然后让他们分头行动,并且每个坐下来与其他开发几天带来的其他开发人员快速掌握新技术。重复,直到所有的开发者发现TDD。

您不相信。告诉他你认为两者一起工作的原因,也许呈现证实了这一些数据,并让他来决定。如果你需要说服大家,这是一个好主意,我敢打赌,没有人会采取的就太多了。博物反对。

我个人发现结对编程工作最好与一个有经验和没有经验的一个。

即我将旨在用于程序员的技能/ EXP的差,而不是试图匹配均匀熟练。

更有经验得到更好地利用它的解释和被强迫而缺乏经验的获得机会,反弹的想法,并挑选了“最佳实践”结构问题的思考。

作为用于TDD,我是一个大风扇。再次EXP帮助没有经验的,因为它有助于真正衬托出测试点。即你不希望测试绝对的一切......它增加了关注。我经常发现有人正在于他们正在努力实现没有焦点编写测试。

单元测试是必不可少的伊莫......毕竟,一些工作人员不会是有2年的时间。你怎么可以改变现有的代码,如果有什么要对验证其功能?

好,取决于基金经理的,你可以点在XP文献一些参数,这些做法是相互依存的。例如,如果你没有固体单元测试,不无情地重构。

我建议你接近它递增,在配对只会是搞清楚TDD,就像在一个新的难题任何协同努力,而不是目的“所有的生产发展,将两人一组做。”

当一个任务不需要其他的,有一个“欺骗性”的方式在时间引入两个一点点。

开始与使用可用xUnit框架的一个实施TDD的目标。查找兼容的同事,并询问是否每天大约一个小时,他们愿意与您合作。 “肖恩,我想这个新的工具,你会不会帮助我,以确保我这样做对吗?”作品真的很好。

一对夫妻带着肖恩几天后,重复与苏珊...

执行也无妨。如果管理者发现你配对,念魔语“代码评审”结果 假设:显然,对进行惩罚/足够聚焦,并在会话结束时产生的工作代码

编写一些测试,让人们关注现有错误的代码库 - 然后将它们展示给你的老板,我想他会突然同意TDD是个好主意。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top