Agile VS PMP -- Part 3 About Quality
Agile的第三个关键词,high-quality,consumable code,讲的是质量。 质量是范围、成本、进度等诸多因素综合博弈的结果(如下图);同时还要在客户满意与不镀金、不范围蔓延之间不断权衡。因此质量问题往往非常复杂。 就像我们的软件业,质量问题一直是让人头疼的问题(这2-3年或许好一些),我们deliver的软件产品,似乎大多数都很折磨人。:-( 可是在很多时候,还真是“人在江湖、身不由己“。 那么如何解决质量问题呢?其实,致力于解决质量问题的研究由来已久,正如PMP课程上吴永达老师show给我们的PPT(如下图)。这里罗列的思想和理论背后有很多故事,有兴趣的话以后慢慢聊。 Agile汲取了很多上面的质量管理思想,如质量持续改进、零缺陷、JIT、Fitness for use等;并在此基础上进一步提出consumable的概念。确切的说不但要求consumable,而且每一次迭代(iteration,sprint)的成果都要consumable。 什么是consumable? 正如这些刚出锅的糕点,如果我点的是糕点,而你给我的是合格(物美价廉、三聚氰胺不超标),而且好吃(色香味俱佳,并有营养)的糕点,那么我就会觉得这些糕点可以称为consumable的。 映射到软件领域,如果满足以下三点,似乎也可以称为consumable的。 首先,deliver的东西的确要是糕点。也就是要能满足Stakehodler的需求。 看似是废话?可是,在软件项目中跑题的事情比比皆是。其原因可能是甲乙双方都没有搞清他们共同的需求,或是需求不停的变化使我们打不准靶;在这种条件下deliver的产品的就是费力不讨好。 第二,这个糕点要能吃,合格 另外很多软件产品deliver的时候还带着一大堆defects(bug),这就太不consumable啦。如果非要面对很多defects、limitation,使用很多临时性的workaround才能用你的产品,Stakeholder就会很郁闷,很受折磨! 因此,除了meet了各项指标以外,尽可能的避免defects也是很重要的。不过,现在来看好像还没有一个公司的一个稍微成型的产品能完全避免这种现象。 第三,这个糕点要好吃,有点像服务行业的微笑服务 这些都做到了,目前看来一个consumable的产品就算炼成了。用一句Agile的话来说叫做Done is Done了。不过的确好难! 那么,一个consumable的产品要怎样炼成呢??? 现代的质量管理的主要观点是认为好的质量来自于好的计划,以及诚实和不取巧的贯彻计划流程;从而将问题扼杀于早期,帮助产品达到标准,满足Stakeholder需要。个人认为很有道理。而且PMP用的也是这个观点。 PMP给出的质量管理有3个主要过程。
3 质量保证 Agile的质量保证相对于通用的PM来说是个亮点。 Agile有更多的跌代,因而在Agile里边我们会有更多的机会去take reflection。去审核我们流程的执行情况,并提出改进措施。就像前面质量规划里边说的,我们定义了那么多过程,没有人能保证他们是永远正确的,是永远必要的?因此,我们会在每一个spint结束的时候审视他们,调整他们,使他们更科学,更符合时宜。这才是辩证的,现身说一下,通过这种高速迭代的质量保证活动,我们的team在很多方面进步神速! 此外,我们是IT人,我们有很强的自动化能力,因此我们在质量保证里也强调了自动化的东西。而且在高速迭代的Agile里边,为了避免Regression Test成为越来越重的包袱,我们也必须使用自动化技术。自动化的东西通常更客观、而且高效。在Agile里我们通常用下面几个关键词,代表了几种自动化的方向。 Automation:通常指的是自动化测试,包括功能、性能等 Test Driven Development(TDD): 测试驱动开发,狭义的来说是code及的自动化测试,像junit、cppunit的使用。 Continue Integration(CI):通常指build的自动化。 这些名词在这里是个引子,他们都有很多技术的背景。我会在后面的文章里详细讨论。 因此,一个完整的scenario是 1)Developer Check in Code 2)TDD脚本本驱动被驱动,对code逻辑进行校验 3)CI Extract new Code 并 Build test images 4)Automation dispatch images 并 自动测试。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |