传统瀑布式开发 VS 敏捷
适用场景
<b>敏捷:</b><br><ol><li>需求频繁变化的项目;</li><li>复杂度高的项目;</li><li>需要快速交付的项目;</li><li>需要紧密合作的项目。</li></ol><br><b>瀑布:</b><br><ol style=""><li style="">需求稳定的场合</li><li style="">稳定低风险项目</li><li style="">用户参与需求低的场合</li><li style="">二次开发项目</li></ol>
测试介入
<b>敏捷</b>:贯穿整个开发流程<br><b>瀑布</b>:阶段性需求编码完成
需求管理
<b>敏捷</b>:鼓励在开发过程中灵活地调整和优化需求<br><br><b>瀑布</b>:要求在开发前对需求进行详尽的分析和规划<br>
进展控制
开发流程
<b>敏捷</b>:<br>采用线性的开发流程,按照预先规划<br>的顺序依次进行需求分析、设计、<br>编码、测试和维护等环节。每个环节都有明确的交付物和里程碑<br><br><b>瀑布</b>:采用迭代和增量的开发方式,将整个开发周期切分为小的时间段,每个时间段内进行一次完整的开发循环<br>
交付时间
<b>敏捷</b>:<br>迭代周期较短,团队能够在每个迭代周期中交付可用的软件功能,有助于缩短交付时间<br><br><b>瀑布</b>:交付时间较长,整个项目需要在一开始就制定详细的计划和时间表<br>
控制方式
<b>敏捷</b>:<br>使用迭代和冲刺来控制项目进展,强调快速响应和调整<br><br><b>瀑布</b>:使用详细的计划和甘特图来跟踪项目的进展和时间表<br>
团队协作
沟通与合作方式
<b>敏捷</b>:<br>更加注重团队内外的沟通和合作,团队成员之间会频繁交流,<br>以确保团队共同理解需求并解决可能出现的问题<br><br><b>瀑布</b>:通常采用较为正式的沟通方式,如书面文档和正式会议<br>
变更需求
变更容忍度
<b>敏捷</b>:<br>有更高的容忍度,团队能够在每个迭代周期中灵活地接<br>受和适应需求的变化,变才唯一的不变主旨<br><br><b>瀑布</b>:容忍度较低,需求通常在项目开始之前充分明确和稳定<br>
变更管理
<b>敏捷</b>:<br>是可以随时进行的,团队可以根据需求的变化进行调整<br><br><b>瀑布</b>:是一个复杂且耗时的过程,需要重新规划和重新设计
客户参与
<b>敏捷</b>:客户参与是至关重要的,他们会被要求提供反馈和参与需求优先级的制定<br><br><b>瀑布</b>:更倾向于从客户那里获取初始需求,然后独立进行开发<br>
风险管理
<b>敏捷</b>:<br>更加注重持续的风险管理,团队在每个迭代周期中都会进行风险评估,<br>并根据评估结果调整开发策略和计划<br><br><b>瀑布</b>:项目开始之前会进行全面的风险评估,并在项目初期进行风险规避<br>
工作流程图
<b><br> Scrum敏捷<br></b><br>
<b> 瀑布</b><br>
价值观
个体和互动 <b><font color="#4669ea">高于</font></b> 流程和工具<br>
工作的软件 <b><font color="#4669ea">高于</font></b> 详尽的文档
客户合作 <b><font color="#4669ea">高于</font></b> 合同谈判
响应变化 <b><font color="#4669ea">高于</font></b> 遵循计划
原则
我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户<br>
欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势
要不断交付可用的软件,周期从几周到几个月不等,且越短越好
项目过程中,业务人员与开发人员必须在一起工作
要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务
无论是团队内还是团队间,最有效的沟通方法是面对面的交谈
可用的软件是衡量进度的主要指标
敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度
对技术的精益求精以及对设计的不断完善将提升敏捷性
要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术
最佳的架构、需求和设计出自于自组织的团队
团队要定期反省如何能够做到更有效,并相应地调整团队的行为
过程工具
<b>项目管理<br></b>包括任务管理、进度跟踪、里程碑设置等功能,帮助团队管理项目的各个方面<br>
禅道
boardmix博思白板
teambition
JIRA
Trello
Scrumwise
<b>团队协作<br></b>包括信息共享、实时通讯、文件共享等功能,帮助团队成员更好地协作<br>
禅道
微信群/钉钉群
<b>需求管理<br></b>包括需求收集、需求分析、需求跟踪等功能,帮助团队更好地理解和满足用户需求<br>
禅道
svn
.......
<b>代码管理<br></b>包括版本控制、代码审查、持续集成等功能,帮助团队更好地管理代码<br>
svn
Jenkins
Travis CI
<b>测试管理<br></b>包括测试计划、测试执行、缺陷跟踪等功能,帮助团队更好地进行测试<br>
禅道
junit
postman
Apipost
Apifox
Selenium
<b>报告和度量<br></b>包括项目报告、性能度量、质量度量等功能,帮助团队了解项目的状态和进展<br>
禅道
svn