敏捷开发的成熟度模型解析

      敏捷开发已在国内大多数的企业成功推行,它包括了管理实践和技术实践,但在不少公司,对于敏捷开发的衡量标准和活动的执行的标准仍有争议,有人说敏捷不须要流程,敏捷没有质量评价标准,敏捷只关注进度......这些观点均存在于各大公司的开发团队中,那么,跟CMMI同样,敏捷有没有度量的标准呢?数据结构

          根据共创力公司的咨询与培训的案例,结合业务著名的通讯公司华为的实践,咱们把敏捷分为五个层次:-1(阻碍)、0(中立)、1(协做)、2(操做)、3(适应)。架构

  • -1阻碍:当前的过程限制了敏捷的实行工具

  • 0中立:既不阻碍也不有利于敏捷软件开发单元测试

  • 1协做:具有实施敏捷软件开发的基础测试

  • 2操做:经过对相关技术的掌握和相应的纪律支持了敏捷软件开发的持续实施优化

  • 3适应:当前团队的过程已经足够成熟,可以良好地响应变化spa

       对于敏捷成熟度的评估主要从如下几个方面衡量:设计

管理实践方面:需求管理、团队文化、迭代管理 ;blog

技术实践方面:软件构建、测试、简单设计继承

 

上图是一个敏捷的评估模型,针对每个评估项有以下的问题能够对标:

1)需求管理:

一、需求是怎么获取的?
二、需求如何跟踪?优先级是如何肯定的?优先级在整个版本开发过程当中会有什么样的变化?有哪些因素会致使优先级变化?                                      

三、 需求变动是怎么进行的?会有哪些人参与?
四、需求实现人员与需求提出人员之间是如何交流的?交流频率是什么样的?
5. 谁来定义验收条件?谁作验收测试?何时作?

六、需求估计何时作?谁会参与估计?

七、用的什么需求管理工具?                                                                      

八、当需求须要进行澄清时,怎么办?    

2)团队协做:

一、版本的人员间信息获取渠道有哪些?不一样角色之间的信息需求是如何知足的?
二、开发人员是否结对?怎样结对?在什么状况下结对?通常结对时间有多长? 

三、是否交换结对?多长时间一次?   

四、团队成员如何认领任务?                                                                     

五、在文档权限、代码权限上,不一样的角色是否是有区别?

六、to PM: 哪一个人的忽然离开会形成项目损害?为何?你如何应对?        

七、项目状态是否你们都清楚?                                                                   

八、是否是有规律的作迭代回顾?回顾中讨论什么事情?讨论结果如何处理? 

九、在哪里/经过何种形式能够找到项目相关的信息和知识?                         

十、当你解决了一个技术问题,你如何与他人分享你的经验?                     

十一、知识共享有没有创建?                                                                     

十二、面对面交流是否频繁 ?                                                                      

1三、新员工进入团队如何得到帮助?                                                          

1四、团队内部以及团队与外部的交流会议是否例行?                                  

1五、开发人员经过评审代码的方式,是否能达到质量保证和知识传递的目的?                                                                         

1六、开发人员是否只了解本身的工做?                                                       

1七、配置库的权限如何分配?是否是都有权限访问?     


3)迭代管理

一、计划的精细程度?整个项目只有一个计划,仍是每一个迭代都有计划?      

二、计划有多长?几个月,仍是几个星期?                                                  

三、在项目进行中发现业务重心发生转移,如何应对?                                 

四、交付是否分为若干次发布?                                                                   

五、迭代计划谁来参与制定,根据什么制定?                                            

六、每一个迭代多长?周期固定么?                                                              

七、项目状态报告如何获取?                                                                      

八、如何更新进度?你如何了解项目进度?                                                  

九、迭代是否交付可工做的软件,是否交付价值?                                       

十、团队成员是否熟悉迭代流程和Story流程?                                          

十一、迭代中的Story可否独立测试?                                                            

十二、是否有有效的可视化管理手段?                                                          

1三、团队成员是否有迭代的意识?                                                             

1四、是否有风险管理机制?                                                                       

1五、如何处理需求变动?

4)软件构建

1 成功构建的标准是什么?
2 构建是自动化的吗?每一个人的构建过程是一致的吗?
3 构建的频率是多少?每次构建的大概时间是多少?
4 使用什么样的版本管理工具?
5 配置管理工具是否支持原子提交?
6 每日构建结果报告怎么通知?
七、提交冲突如何解决?
八、开发人员通常多长时间提交一次代码?                                                  

九、开发人员天天check in 代码有没有什么规则?

十、CI搭建在什么机器上,是否是有专人维护CI环境?持续集成的硬件资源环境是否充足?

十一、CI须要执行哪些测试?                                                                        

十二、是否有严格的持续集成纪律?                                                             

1三、若是有本地构建的话,本地构建包含哪些内容,时间大概多长?           

1四、CI构建的输出报告有哪些内容,是否有人关注?                                  

1五、自动化测试成功比率?自动化测试用例数量?


5)测试

一、当前的开发过程当中,开发和测试人员主要开展哪些工做?之间是如何配合的?
二、当前版本的测试活动主要有哪些?分别涵盖哪些内容,由谁进行?每类测试活动的周期比例(重点关注story测试、迭代验收测试、系统验收测试等)
三、版本的测试策略与计划是如何制定的?都包含哪些内容?
四、测试用例是否能继承,继承后的修改量是否巨大?
五、测试可以作到自动化吗?哪些测试能自动化?
六、测试活动在整个版本中人力是怎么一个分布趋势?测试E2E效率如何?(代码行/测试人天)                                                                                  

七、开发人员是否写测试?写哪些测试?                                                     

八、测试可以稳定的重复执行么?                                                               

九、随着项目演进,你们积极维护重构测试吗?                                           

十、何时写测试?哪些角色写测试?                                                   

十一、有回归测试包吗?其中包含了哪些测试?                                            

十二、使用什么工具来跟踪bug?                                                                 

1三、开发和测试人员怎样合做重现并修复bug?                                         

1四、何时写单元测试?单元测试覆盖率是多少?是否是全部人都写单元测试?是否有单元测试培训?                                                                  

1五、开发和测试是否结对ST,怎么作测试?                                               

1六、测试环境是否是共享?                                                                       

1七、开发者测试、story测试、迭代测试等分别使用什么工具来跟踪bug?各阶段测试bug分布比例? 

6)简单设计

一、设计文档包括哪些文档?                                                                      

二、设计文档怎么写出来的?哪些人参与?                                                  

三、那个文档对开发的指导性较强?怎么指导开发?                                    

四、会不会出现后面设计变更较大的状况?                                                  

五、设计须要更改的时候怎么处理?描述一下场景                                         

六、何时进行重构?重构的频率是什么样子的?                                    

七、重构有哪些具体实践?是否代码优化?                                                  

八、如何保证重构的正确性?                                                                      

九、描述一下重构是怎么作的                                                                      

十、什么工具辅助重构?                                                                           

十一、接口、数据结构的演进怎么作的?                                                       

十二、架构如何演进,是SE决定仍是与你们讨论?

相关文章
相关标签/搜索