第一章 QAD量化敏捷开发绪论
第一节 概述
QAD是Quantitative Agile Development的缩写,包括两个互相穿插的体系:
一个覆盖从需求到发布,端到端的,相互衔接的团队级工程实践框架
一个包含从小型到大型,从试点到成熟的企业级敏捷转型框架
两个体系又可以被拆分为以下模块:
· SEAi需求分析法
o 需求拆分:用于将需求迅速拆分为4个固定的层次,其中某些层次具有严格的定义和相似规模,可直接用于估算、度量与量化管理;并可以替代史诗故事、用户故事;且数值兼容各种体系的功能点,如IFPUG和NESMA。
o SEAi需求分析法是QAD有别于其他敏捷方法的核心。
· QAP量化敏捷计划
o AFP敏捷功能点:即前述的利用需求条目直接计算需求规模的方法。
o 版本规划:提供两种简单策略,可利用SEAi需求条目迅速划分最小可用产品MVP和最小可用发布MVR。
o 量化计划:在立项或迭代开始时,基于SEAi需求条目数量,可以直接按固定公式,估算工作量、工期、成本、合理代码行数、测试用例数、测试与发布缺陷数等核心指标。
· DOB(DevOpsBan)研发运维一体化板
o 迭代计划:以最小可用发布MVR为目标,形成可变周期迭代,按需、尽早交付
o 跟踪与改进:日常、以及在迭代完成时,跟踪、评价、改进度量数据。
· QAC量化敏捷编码
o 微服务架构:按照三个简单原则,使用SEAi需求条目快速形成微服务架构。
o 编码量化:使用CCR编码消耗率、CCI代码混沌指数、静态问题率等指标实时、不限规模地计划和监控代码质量。
o 量化敏捷重构:以整体和迭代量化数据,指导重构活动,防止重蹈覆辙。
· QAT量化敏捷测试
o 评价测试:使用测试覆盖率、测试用例密度、缺陷发测比、自动化率等指标,计划和监控测试活动。
o 评价质量:使用测试缺陷密度、发布缺陷密度等评价产品质量。
· QAM量化敏捷度量与QAMMI量化敏捷成熟度模型集成
o 基线建立:为单个或多个项目乃至于整个组织建立生产率、质量性能基线。
o 成熟度评估:通过基于功能点的标准数据与业界进行横向对比,自我评估在业界的百分位。QAMMI采取评估结果而非行为的方式,使得敏捷转型是否真正到位得到真实反映。
o 根因分析:根据数据相关性,建立最终结果与中间数据的因果关系。
o 自我改进:通过改进可控因素(中间数据),改进原本不可控的最终结果。
这些模块与方法并非孤立的堆砌,而是通过前后衔接的步骤,形成一个有机整体。每一个方法的输出,会被后面的方法所采用,尤其是其量化信息的传递。
第二节 读者对象与阅读方法
本书适合五种层次的读者。
初级读者:一般是局部的专业工作者,如普通开发人员,测试人员,只需要了解本职工作的内容即可。本书中的初级章节是为他们而准备的。标题中没有级别标识的章节都是初级章节。注意在某些章节的末尾常常有一个“初学者常见错误”的小节,安排在末尾的原因是此章节可能引用了之前的中级、高级等内容。所以意图跳过中高级内容的读者要留意这个小节。
中级读者:一般位居影响全局的岗位,包括产品经理、项目经理、某些高级的开发与测试经理。这些读者负有管理职能,期待找到一种简单易行的连贯方法,与上下游衔接,从而覆盖从需求到发布的完整过程。中级章节不但提到了跨职能的连贯问题,还会以多个实例,深入研讨复杂情况下的应变。
高级读者:一般位居企业或大型部门中负责推广敏捷或其他方法论的岗位。他们需要学习模型创生、发展历史与相互比较等内容,以便能选择正确的模型,并承受一线工作者的挑战。
教练读者:指那些有志于学习并推广QAD方法的读者,他们的定位是潜在的“QAD教练”或“QAD讲师”。本书并没有为他们额外准备内容,但他们应当能在不打开书本的情况下,使用书中的内容或其他来源的内容,提供教学、答疑、指导、解释等工作。
先驱读者:立志于改进乃至创立方法论的读者。本书作者在写作本书[1]的多年间,陆续遇到多位提出新颖见解的方法论实践者,颇受启发。为此,本书的某些章节讨论了选择 “上帝方法”的依据与过程。其中包括了某些耳熟能详的方法被放弃的原因,也包括了最终中选方法中仍存在的问题,以及当前方法中空缺的部分。在推广QAD的同时,笔者亦十分期待有人能对其改进,或发现并推出更加完善的方法。
本书标题中,如无特殊标注均为初级内容,其他级别则予以标注以供参考。
建议的阅读顺序,是先阅读所有初级内容,再在自己感兴趣的章节进行深入阅读;很多高级内容可以先泛读了解,在遇到相关问题时再进行深入学习。
[1] 本书的第一个成型书稿是成书于2013年的《QUML量化统一建模语言》。