什么是敏捷开发
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方式,它并不是一门技术,而是一种开发方式,一种软件开发流程。指导我们用规定的环节一步一步去完成项目的开发,区别于软件的传统的开发模式(瀑布模式:需求分析到详细设计,从编码到测试,测试完成后再交付这么一个流程),而敏捷开发则是不要求非常完美的需求分析、设计、文档,而是在最短的一个时间内完成一个框架,然后不断迭代、测试,直至交付--------不指某种具体的过程或框架,而是一组价值观和原则,是应对快速变化的需求的一种软件开发能力。
敏捷开发的原则
敏捷开发的12条原则:
- 我们最重要的目标,是通过持续不段的及早交付有价值的软件使客户满意(价值大于一切)。
- 欣然面对需求变化,即使在开发后期也一样,为了客户的竞争优势,敏捷过程掌握变化。
- 经常交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
- 业务人员和开发人员必须相互合作,项目当中的每一天都不例外(沟通)。
- 激发个体的斗志,以他们为核心搭建项目;提供所需的环境和支援,辅以信任,从而达成目标。
- 不论团队内外,传递消息效果最好效率也最高的方式是面对面的交谈,即face to face。
- 可工作的软件是进度的首要度要标准。
- 敏捷过程倡导可持续开发(即迭代),责任人、开发人员和用户要共同维持其步调稳定延续。
- 坚持不懈的追求卓越技术和良好设计,敏捷能力由此增强。
- 以简洁之本,它是极力减少不必要工作量的艺术。
- 最好的架构、需求和设计出自组织团队(整个team一起商量出来的结果)。
- 团队需要定期的反思如何提高成效,并依此调整自身的举止表现/
多种敏捷开发的方法
常见的敏捷开发方法:
- 软件开发节奏,SoftWare Development Rhythmns
- 敏捷数据库技术,AD/Agile Database Techniques
- 敏捷建模,AM/Agile Modeling
- 自适应软件开发模式,ASD/Adaptive Sofatware Development
- 水晶方法,Crytal
- 特性驱动方法,FDD/Feature Driven Development
- 动态系统开发方法,DSDM/Dynamic Systems Development Method
- Scrum
- 极限编程
- 探索性测试
一个敏捷团队
大致9~12人规模,开发4名,其余各一名;
- PM: Project Manager, 项目经理
- BA: Business Analystt, 业务分析师
- TL: Technical Leader 技术领导
- QA: Quilty Assurance 测试人员
- UX: User Experience 用户体验设计师
- DEV:Developer, 开发人员
- DevOps : 运维人员
敏捷开发中常用的术语
- IPM : Iteration Plan Meeting ,迭代计划会
- Standup: 站会
- Story: 用户故事/需求,体现为看板上的卡片
- Story KickOff :启动卡的开发
- Pair : 结对编程
- TDD : Test Driven Development ,测试驱动开发
- Code Review : 代码检查
- ShowCase : 演示已经完成迭代的功能
- AC : Acceptance Criteria ,验收条件
- CI : Continious Integration,持续集成
- Retro : 回顾会议(即每个迭代的项目总结)
- TB : Team Building ,团队建设
迭代的典型流程
致谢
最后要感谢项目组晓峰老师的分享,让我具体了解敏捷开发的概念以及敏捷开发具体怎么实现的,thank you.