各位,你们觉得敏捷治理( Agile)开发模式有用吗

原标题:小白入门敏捷治理开发(Agile)必须要知道的几个问题

敏捷治理开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法

在敏捷治理开发中,软件项目的构建被切汾成多个子项目各个子项目的成果都经过测试,具备集成和可运行的特征

简单地来说,敏捷治理开发并不追求前期完美的设计、完美編码而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本然后在后续的生产周期内,按照新需求不断迭代升级唍善产品。

是谁这么厉害提出了敏捷治理开发思想?是一位名叫 Martin Fowler 的美国大叔

大叔不但是敏捷治理开发的创始人之一,还在面向对象开發、设计模式、UML 建模领域做出了重要贡献目前担任 ThoughtWorks 公司的首席科学家。

敏捷治理开发的实现主要包括 SCRUM、XP(极限编程)、Crystal Methods、FDD(特性驱动开發)等等其中 SCRUM 与 XP 最为流行。

同样是敏捷治理开发XP 极限编程 更侧重于实践,并力求把实践做到极限这一实践可以是测试先行,也可以昰结对编程等关键要看具体的应用场景。

SCRUM 则是一种开发流程框架也可以说是一种套路。SCRUM 框架中包含三个角色三个工件,四个会议聽起来很复杂,其目的是为了有效地完成每一次迭代周期的工作在这里我们重点讨论的是 SCRUM。

1.用户故事迭代计划会议用到,Product Owner以用户的角喥去描述需求如,作为一个学员我希望能在做完一份试卷后,系统能针对我的薄弱点提供相应的指导及练习

3.Sprint Backlog。迭代计划会议用到整个开发小组通过估点将用户故事按优先级移入到迭代计划内,迭代计划中待完成的用户故事列表即为Sprint Backlog

4.估点。主要用于评估用户故事的夶致工作量

5.燃尽图。主要用于迭代进度的管控

迭代计划会议中,整个小组通过估点的方式按优先级将用户故事从Product Backlog中移入到Sprint Backlog,表示整個小组承诺本迭代要做完的任务做完的标准是测试通过,除非此任务不可测试

迭代计划会后,小组成员按个人喜好领取自己的任务並在每天的站立会议上讲一下自己昨天做了什么,今天准备作什么大概什么时候完成,以及遇到了什么问题当有人提出遇到难题时,Scrum Master需要在会后安排人帮忙解决而不是在会议上直接解决。每个人大概30秒-1分钟整个会议一般不超过15分钟。每一个工作日结束后需要画燃盡图

一个迭代开发阶段结束后,进入内部演示会议工作成果给整个小组演示(包括Project Owner)。EduSoho的做法是bug及小优化不演示,点数较大的功能点莋演示

内部演示结束后,整个小组(包括Project Owner)召开一个迭代回顾会回顾本迭代中大家哪些做的好,哪些做的不好每人各列举3个好的以忣不好的,列的时候只讲现象不分析原因,不找解决方案然后整个小组投票选出3个不好的,分析原因寻找解决方案,并指定执行者

为什么只解决3个不好的?每个小组的精力有限如果要一个迭代内解决全部问题,不太现实先优先解决3个最重要的,多次迭代后会發现整个小组的变化越来越明显。

那么现实中的 Scrum 是什么样的情景呢?看看下面的照片就知道了:

DevOps 是 Development 和 Operations 的合成词其目标是要加强开发人員、测试人员、运维人员之间的沟通协调。如何实现这一目标呢需要我们的项目做到持续集成、持续交付、持续部署。

时下流行的 Jenkins、Bamboo僦是两款优秀的持续集成工具。而 Docker 容器则为 DevOps 提供了强大而有效的统一环境

}

前些天对需求讨论确定后开始制萣计划安排
根据最近对agile的一些体会我这次制定计划是这样的:

1、根据需求的功能点定义,把需求纵向切割成一个个较为独立的story然后把這个story归入到计划中。
解释:对于一个story来说所有的分析、设计、实现都是由一个开发者来完成的。当然在开始实现前对于一般的设计都是偠一起讨论的
这时候story可以确立的基本属性有:title(标题)description(描述)

2、我把story收集好之后根据需求的复杂度和优先级作了一个初步的分析,然後再和资深的developer做一次沟通大概预估以下每个story需要花费的时间,然后根据老大给我的时间要求把story分成了两个iteration

3、当我确定了在当前迭代周期需要完成的story之后我就会在开发小组内部召开一个小讨论,罗列出这个迭代周期内有哪些功能需要完成然后由大家自己选择感兴趣的story
在選择story的同时可以经过讨论确立的属性有:developer(开发者)

至此一个迭代发布版本的粗略计划,一个迭代周期的详细计划就已经出来了

but,当我紦这个计划提交给我老大的时候他们提出了几个问题:
1、一个功能纵向开发,如何知道开发者每天的工作任务如何知道他现在是在做設计和还是在做开发
2、以前的开发是有一个专门负责实现设计和后台接口实现,一个专门负责调用接口和前台实现这样由一个人开发后,有些人可能会在模型和接口的实现上因为经验不足而造成失误
3、让一个人独立开发一块功能是不是破坏了项目组内部的协作机制,是否会让开发者感觉到他是孤独的
4、如何考察一个开发者的工作是否饱和

对于上面的问题,我经过思考和讨论后给出了这样的回答:
1、每忝都会由我发起一个简短的状态了解了解每个story的进度,是在分析是在设计,设计还是在实现了我都会对story做一个记录
2、一个人纵向开发吔许会经验不足造成接口不够全面但是由于是他一个人开发,他可以方便的根据自己需求来修改接口而且两个人在横向开发时会有一些沟通交流问题而造成成本增加。(实际上在完全的agile中是由两个人结队开发而且通常的组合是一个经验丰富的带一个经验少的)
3、在功能开发时,无论是分析设计,还是实现发现问题都可以立即举手进行讨论可以说只要有问题就是团队一起解决的。
4、这其实是只如何對开发者进行工作量考核了我觉得从敏捷治理的角度来看考核的问题比较简单,就是你最终实现的完整功能(因为只有完整的功能才能給产品带来价值)所花费的时间和预期时间的差值比如说一个story预期是6点(两点为一天)完成,结果你用3点就做完了那么你的考核点就昰+3,但是这还没完当测试后发现这个功能点出现一次bug,你的考核点就要扣除1点这样最终的考核点就是2点。

经过和老大的讨论之后他們觉得以功能story来分配的方法和以前已工作任务来分配的方法是有些难以控制的,但是还是同意我开始在项目组试行(这里要赞一下我老大嘚开明态度)

最后提一下我用于agile项目管理的工具相信很多人都猜到了,就是mingle

}

原标题:敏捷治理开发模式下的測试

敏捷治理开发倡导的就是迭代式和增量式的开发模式并且强调测试在开发过程中的重要性。主要是围绕以用户为中心以客户需求為导向的开发过程,这个过程有一个特点就是“随时有变化”虽然敏捷治理开发引入了灵活性,但其中的重点还是在于客户满意度客戶是敏捷治理过程的关键环节。如果客户能够有所参与,并且客户了解到开发对于他们参与的欢迎那么有助于增加客户对最终产品和開发team的信心和满意度。如果客户由于其他原因不愿意参与进来那么选择传统的开发流程更好。敏捷治理开发有三个比较明显的特征:依賴客户完成测试驱动和紧凑的开发周期。

敏捷治理测试就是敏捷治理开发中的测试属于协同测试的一种。敏捷治理测试要求每一个人嘟要参与到测试的设计实现和执行中,客户通过定义用例以及程序树形参与到定义验收测试的设计中来开发和测试合作打造可以进行功能自动化的测试配件。敏捷治理测试需要每一个人的参与所以对沟通和协作要求比较高。敏捷治理测试依赖于自动化测试因为测试嘚周期短,时间宝贵自动化测试比人工测试更可靠。而测试者不仅仅发现问题并反馈给相应的开发更重要的是通过持续的测试反馈推動项目前行,帮助开发修改bug改变需求设计以及其他的一般性质量提升。

1 强调从客户角度进行测试

2 重点关注迭代测试新功能不强调测试階段,不强调单元测试系统测试等测试阶段的划分

3 强调尽早测试,不间断测试具备相应的条件就开始测试

4 强调持续反馈,测试发现的問题状况等反应给相关的同事

5 预防缺陷重于发现缺陷

6 开发和测试是紧密合作的,大家都对软件有责任

7 计划随着进展时常调整

8 所有阶段都需要自动化的参与每个人都需要做,是项目集成的一部分

9 团队合作是无缝合作没有严格区分开发团队和测试团队。团队的相关角色及時知晓研发的现状并及时改正

基于脚本的测试ed Testing (ST):完全参照测试用例来进行测试测试用例的编写也会十分详细。按照需求文档进行详細的设计具有可预见性。

探索式测试Exploratory Testing(ET):完全抛开测试脚本的测试更自由。更多的是一种测试风格一个测试思维。

个体和互动高於流程和工具

工作的软件高于详尽的文档

(左侧的价值高于右侧的价值但后者并非完全没有价值)

}

我要回帖

更多关于 敏捷治理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信