传统瀑布模型
需求->开发->测试->发布->运维
优点
1.工作流程直观表达
2.定义了标准的研发阶段
3.以流程为本,理想化模型
缺点
流程低效:工作定死,到一定时间做一定的事情,很多时间都是等前面的流程完成
敏捷开发
SAFe框架(The Scaled Agile Framework)
SAFe框架包括一系列的角色、活动、工件和指南,它们共同协调和协作以支持大规模的敏捷开发。
目标
是帮助组织在复杂的环境中有效地交付高质量的软件,同时保持敏捷的原则和价值观。
关键要素
- Agile Release Train(ART):ART是SAFe中的核心组织单位,它是一个跨职能、跨团队的组织,负责按照迭代和发布计划交付价值。ART通常由多个敏捷团队组成,这些团队共同协作开发和交付软件。
- PI Planning(Program Increment Planning):PI Planning是一个全体会议,ART的成员在这个会议上共同规划一个固定时间段(通常为8-12周)的开发工作。在这个会议上,团队制定目标、排列工作项、解决依赖关系,并制定一个可执行的计划。
- 精确的迭代:SAFe使用基于时间盒的迭代模型,称为精确的迭代。每个迭代通常持续1-2周,团队在每个迭代中交付可工作的软件增量。
- PI演示(PI Demo):每个PI结束时,ART举行一个PI演示,向利益相关方展示所完成的工作。这有助于实现透明度和共享进展,以便及早获取反馈并进行调整。
- Continuous Delivery Pipeline(持续交付流水线):SAFe提倡建立一条持续交付流水线,以自动化软件交付的过程。这包括开发、集成、测试和部署等环节,以提高交付速度和质量。
传统流程
需求阶段
MVP(minimum viable product,最小化可行产品)思想
1.站在用户的角度考虑
2.收集用户反馈,快速迭代
四象限法
- 第一象限:重要且紧急的任务(Important and Urgent):需要专注于这些任务,并尽快完成它们。
- 第二象限:重要但不紧急的任务(Important but Not Urgent):这个象限通常被认为是最重要的象限,因为它能够帮助你避免被紧急任务所主导。
- 第三象限:不重要但紧急的任务(Not Important but Urgent):需要尽量减少这些任务,或者将它们委派给其他人。
- 第四象限:不重要且不紧急的任务(Not Important and Not Urgent):需要避免过度投入这些任务,以免浪费时间和资源。
开发阶段
云原生
容器化
所有容器共享宿主机的系统,部署的时候,应用和其依赖的操作系统打包成镜像,后端开发不依赖运维创建程序的运行时环境。
微服务框架
各个功能在不同服务中,不同模块需要RPC通信,可以独立扩缩容,每个服务的代码仓库仅由少部分人维护。
云原生IDE
Git处理冲突
有代码规范、自测和文档
测试阶段
需要进行充分的单元测试
一般至少需要三套环境:
功能环境:开发和测试新开发的功能
集成环境:把不同的功能合并在一起测试
回归环境:验证新的功能对老功能没有影响
发布阶段
没有强大发布系统和服务器资源不足的公司一般使用蛮力发布或者金丝雀发布
有强大发布工具和服务器资源充足的公司一般使用滚动发布和蓝绿发布
运维阶段
有监控日志和报警的平台