技术开发 频道

业务驱动开发的关键原则

    持续关注质量

    好处:更高的质量和更早的进度/质量洞察

    模式:团队对最终产品负责。如果有可证明能力的持续集成,测试变得拥有更高的优先级。逐渐地建立测试自动化。

    反模式:推迟集成测试直到所有代码都完成并且单元测试也已完成。详细检查所有工件以发现问题,但同时不进行部分实现和测试。

    提高质量不是简单的“满足需求”,或是生产一种满足用户需要和期望的产品。质量还包括了确定展示产品的成果的量度和标准,以及一个保证团队创造的产品实现了期望的质量水平的过程的实现——这一过程可以被重复和管理。

    保证高质量不只需要测试团队的参与;它需要整个团队关注质量。这涉及了所有团队成员以及生命周期的所有部分。分析师对确定需求的可测试性负责,而且我们还要明确对测试的需求。开发人员需要在设计过程中考虑到测试,并必须对测试他们的代码负责。管理人员需要保证正确的测试计划在正确地实施,正确的资源在适当地用于建立测试件并进行需要的测试。测试员是质量专家。他们指导团队的其余成员理解软件质量问题,他们对功能,系统和性能级的测试等等负责。当我们经历一个质量问题时,每一个团队成员都应积极参与阐述这个问题。

    迭代开发的主要优势之一是它使一种尽早地并且不断地测试方法成为可能,如图2所示。由于最重要的功能在项目的早期就被实现了,在你达到末期时,本质的软件可能已经成型并运行几个月了,而且可能已经经过了几个月的测试。多数采用迭代开发方法的项目声称改进过程带来的主要结果之一是质量的提高,这也就是意料之中的了。

    在我们逐步建立我们的应用程序的同时,我们还应该逐步建立测试自动化来及早发现缺陷,同时使前期投资最小化。在你设计你的系统时,考虑到它将如何被测试。做出正确的设计决定可以在很大程度上提高你的自动化测试能力。你还可以直接从设计模型中产生测试代码。这节省了时间,为早期测试提供了动力,并通过最小化测试软件中的缺陷提高了测试的质量。自动化测试已经成为灵活性关注的焦点,而灵活性的目标是使所有代码的测试自动化,并且测试是在代码编写前编写的(所谓的测试先行的设计) 

 
    图6:测试在早期被启动并在每一次迭代中被扩展。迭代开发使早期测试成为可能。软件在每次迭代中被建立起来,并且在建立过程中就经过了测试。回退测试保证了当新的迭代添加了功能时没有引入新的缺陷。

    这一原则的反模式涉及对所有中间工件进行深入详细的回顾分析,这对生产效率是不利的,因为它延迟了应用测试,也就延迟了主要问题的识别。另一个反模式是在进行整体测试前完成所有单元测试,援引同样是延迟了主要问题的识别。

    总结

    正如我们开始时注意到的,这些原则是从十余年前它们的原型演化而来的,那时软件开发者的工作环境基本上是更为有限的。我们关于软件开发的知识,以及项目成功的整体条件,都逐渐成熟并不断扩展。今天的业务驱动的软件开发组织需要眼界更为广阔的指导,这包括了地理分布开发,IT管理和规则服从需要,面向服务架构,等等。

    正如软件开发不是严密的科学,我们相信这些原则不应当被当作绝对的条款,或永恒的真理,而是作为一种改进软件项目结果的指导。这些原则还将继续演化——不是以很快的速度,但是逐渐的,随着我们掌握更多关于哪些方法有效,哪些无效等等的经验。不变的一点是Rational帮助客户(他们的业务依赖于开发和部署软件)取得成功的长期不懈的努力。

0
相关文章