让整个团队真正想要同一件事可能非常困难。通常情况下,仅仅看到某件事的价值本身不足以鼓励人们改变根深蒂固的行为。即使是那些珍视更改并特别想要更改的人,有时也可能负责下意识地与之抗争。
问题实际上是个人动机之一,而不是团队动机。有时候,是由于您最终理解了某些内容,或者是由于某些新工具或其他主观性的东西使您变得一清二楚,这使普通程序员投入了一切并完全改变了过程。您的工作(如果您选择除此以外)是查看您或团队是否有办法找出哪些事情将使每个团队成员的头脑清晰。
对我个人而言,它只是在DotNet中发现了BDD的StoryQ框架,这使得它太容易被忽视,并使我完全摆脱了测试优先与测试同时的“障碍”。后来,当我找到Visual Studio的NCrunch时,我的选择得到了重申。有时,成功的一半不是卖主意,而是简单地降低了彻底改变习惯所需的精力……即使这样,也可能需要花费一些时间和精力。但是,这些相同的个人触发因素还不足以影响当时我的同事的方法,他们的同事仍在同时或什至在实现代码之后编写许多测试代码。
有时,由于固有的恐惧感,不信任感或令人厌恶的观点,人们不愿意改变做事的方式,即使学习改变的理由是正确的,但他们还是不愿意改变学习方式。如果您的整个测试平台都以特定的方式工作,那么很难证明改变工作方式以及潜在地改变工具的合理性,尤其是当新旧测试在整个生命周期中需要继续共存时,尤其如此。项目-您当然不需要重写您曾经创建的每个测试。奇怪的是,有时人们会觉得这是采用新测试方法的唯一方法,这本身就使那些人难以更好地接受明智的改变。
确实,某件事变得反身的唯一方法是强迫自己反复进行,直到您不再注意到自己需要过多地专注于如何做。有时,在团队中做到这一点的唯一方法是制定可能有点过分苛刻的策略,进行结对编程和代码审查,以及任何其他可以帮助团队成员相互支持并从字面上迫使更改的方法在行为发生。但是,要使这种策略真正成功,它仍然需要每个团队成员坚定而诚实的承诺,以接受必要的措施,并参与该过程……以及所有参与者的耐心等待。