敏捷开发的一些东西

来源:互联网 发布:大型企业网络优化方案 编辑:程序博客网 时间:2024/04/29 04:32

提升团队的交付能力?如何实践敏捷软件开发。这个是很多团队必须面对的问题,也是让项目经理比较头疼的问题。如果一个项目不能有一个很好的交付,那么项目就是失败的。

下面是一个关于对于提升团队交付能力的一些实践建议或者准则。

这些准则是百度的路宁老师总结,非常感谢路宁老师在百度开发者大会上的分享。

一,制定基于交付物的增量交付计划

上图是路宁老师在演讲中用到软软件编码过程的迭代过程,横轴代表个时间段,每一个代表一周时间,纵轴是代表同一时间正在进行的工作状态。

迭代式模型和瀑布模型的比较:迭代模型,在每一次迭代都会算作一次小的交付,而瀑布式一次上线。灵活性和成功的几率可以明显的看出来。

第二点:组成全功能团队,抛弃内部合同,MRD评审,批量提需求。

这个过程包括:idea产生 -〉预估项目,对需求排优先级 -〉 分析 、验收条件 -〉 迭代启动会 -〉需求墙 -〉故事启动 -〉 开发 -〉mini验收 -〉测试,fix bug -〉show case -〉上线。在这个过程中团队成员要合理组合,不同的阶段组合可能不同。

第三点:建立围绕交付物的合作流程。

敏捷开发社区对交付物完成的定义是: Done, Done!客户满意,上线成功。

第四:制定需求完成和迭代完成的标准


可能会遇到这样的问题:各个开发角色间相互等待,总有几个人容易成为瓶颈。

一个人负责一个模块:如果有一个人离职或者请假,项目就无法继续进行,会造成等待状态,使项目无法按时交付。

所有人都可以做任何部分:这样的好处是造成相互等待的情况减少。


提高单兵作战能力,培养所有人可做所有部分。


第五:善用云基础服务

 重复搭建和维护千篇一律的各种平台:项目管理平台,bug跟踪平台,应用部署平台,持续集成平台,版本管理工具。

 

Project Hosting(git hub)

App Engine(EC2, GAE, Heroku, BAE)

CI Cloud (Travis CI)

Testing Cloud(MTC)


第六:持续集成

后期集成耗时且风险大

由于每次集成消耗大,无法频繁发布。

Jenkins, Team City, go, pulse, Travis CI, BAMBOO ,cruise

第七:自动化验收测试

se

第九,应用single branch分支管理策略

每一个功能一个分支,学习开源项目的分支管理策略。

第十:数据库的版本控制,建立独立的沙盒

dbdeploy.com

原创粉丝点击