聊聊瀑布类项目管理那些事儿

目    录

 
01 瀑布项目管理基本介绍
02 瀑布项目管理在DevOps平台各阶段中的实践‍‍‍‍‍‍
03 总结
01

瀑布项目管理基本介绍

瀑布模型 由温斯顿·罗伊斯在上世纪70年代提出,自此被广泛应用于软件研发行业中,它主要用于将按软件研发过程规范化,用阶段区分需求设计、实现与测试环节,便于分工协作。
通常来说,瀑布模型软件生命周期包含基础的需求分析、系统设计、系统研发、功能测试等阶段,并且规定了各个阶段自上而下的线性次序,环环相扣,就像瀑布一样,逐级下落,这也是该模型名称的由来。

瀑布项目管理的特点:
1.使用瀑布模型的项目都严格遵循着既定好的步骤阶段,每个步骤都有明确要求的交付产物,规范化的交付产物要求较高的成本,但也会保证项目拥有较高的质量。
2.要确保前一阶段完全结束(交付产物评审通过)才可进行本阶段的工作开展,前一阶段的交付产物质量会直接影响本阶段的工作成果,存在问题的阶段可能会影响到接下来的所有的环节,导致严重的后果。
3.更适用于具有可预测的、存在重复流程的项目活动,如项目团队预先熟知所有的需求、熟悉本项目涉及行业的专业知识、有相近项目经历。
适合的项目类型:
1.需求明确,客户明确知道自己想要什么,不存在需求重大变更的项目。
2.项目存在可复制性,当项目成功完结后,可根据现有项目资源重复实施项目。
3.项目复杂程度低,风险点少,且项目涉及行业技术成熟,团队掌握行业相关知识。
瀑布项目管理的优点:
1.项目进行的每个阶段都拥有检查点,保证该阶段的交付产物符合要求。
2.线性的管理方式让团队可以不用考虑已完成的阶段,安心进行本阶段的工作,关注于下个阶段的计划。
3.可预知的项目成本,可明确的交付时间。
4.完善的项目资源使得项目可以批量复制,明确知道团队要做什么,减少了项目边界扩散的风险。
瀑布项目管理的缺点:
1.不够灵活的阶段划分,且要保证每个阶段的交付产物的质量需要较高的时间、人力成本。
2.各个阶段以既定好的里程碑节点进行,如果未如期完成节点会影响整个项目的实施进度。
3.用户需求总会因各方面的原因产生变更,导致无法保障项目的可控性。
4.线性的开发模型让客户只能在项目末期的用户验收环节才能见到交付产物的最终面貌,增加了项目风险。

02

瀑布项目管理在DevOps

平台各阶段中的实践

需求分析阶段:
本阶段的参与者一般为客户、项目经理以及需求分析师 ,通过详细的沟通来确定需求点,系统性整理成需求文档,经由客户确认,确定了项目的范围,此环节是整个项目的基石。
用户可以在DevOps平台的项目中将与客户沟通形成的需求文档归纳整理到文档模块,建立需求文档目录。

同时,根据需求文档内容,整理项目需要达实现的需求点,在任务模块建立所有的需求项,规划需求责任人,设定优先级以及需求截止日期。

计划管理是整个项目前行的发动机 ,根据一个个规划好的计划驱动项目不断前行。
DevOps平台的计划管理模块 凭借甘特图方便了用户计划项目时间、跟踪工作进度、优化长期计划、测定工作负荷,同时应用基线对比能力对比当前计划安排与历史计划安排快照,更明了的确认计划执行的时间风险。

里程碑是整个项目的领航员 ,确定好每个节点需要达成的目标,让项目前行在正确的方向上。
DevOps的里程碑模块 帮助用户能直观的设定整个项目的阶段目标,提升项目的可视性,同时监控项目的关键时间节点,凭借基线对比能力能轻松确认项目进展是否延期。
在需求分析阶段,需要设定好里程碑的各个节点,做好整个项目的规划。

系统设计阶段:
本阶段的参与者一般为项目经理、系统架构师以及需求分析师。
同样,该阶段产出的架构设计等文档也需要整理到文档模块,建立设计文档目录。

设计好了整体的系统架构,接下来就要拆分需求形成任务项,在任务模块,需要用户在需求阶段创建好的需求下拆分好要达成该需求需要执行的任务待办项,并分配给指定责任人,设定优先级,指定到期时间。

同时,可以在计划管理模块,将创建好的需求、任务工作项到关联到某一计划条目下,完善计划的实施步骤。

系统研发阶段:
本阶段的参与者一般为项目经理以及开发人员。
开发人员根据上一步产出的系统设计方案以及分配到各自头上的工作项,在自己的开发环境完成系统的建设,产出源码、相关功能说明文档以及接口文档。
该阶段项目负责人可以通过代码模块管理代码库的分支、标签、合并请求以及提交记录等数据。

代码库的webhook能力可以将开发人员的代码提交记录关联到工作项,方便后续进行任务进度评估。

同时也可以浏览到当前任务项的实际部署信息,确认该任务已成功在哪些环境上线。

DevOps平台提供强大的CICD能力,用户可以根据自己需求编排特定功能的流水线,同时保证了极高的可拓展性。
持续集成模块 提供各类语言、各类介质的编译集成能力,支持多种触发策略、保留策略、超时策略的选择,支持整个集成过程的细粒度跟踪,并通过代码质量分析、单元测试执行以及集成自动化测试工具等能力及时发现不合规情况,预防程序漏洞风险,保障代码库中的代码处于持续可用的状态。对产生的介质提供统一上传和版本管理,并保障传输过程的安全与文件完整性。

持续部署模块 以无Agent脚本的方式,结合企业实际运维需求,通过自定义交付流水线编排满足用户对不同发布过程的差异化要求,支持多组件、多环境、不同基础设施的批量自动化部署,支持对线上环境进行健康检查、启动、停止、重启、伸缩、回滚、升级、日志下载等日常运维工作。结合企业实际运维需求,与企业软硬负载集成,提供多种零宕机发布策略。同时在流水线每个环节前后提供了人工干预入口,与企业组织流程规范紧密结合,明确责任人,有效跟踪流水线进展,驱动最终高质量上线。

项目负责人可以参考报表模块,了解项目进展,辅助管理项目,报表模块种类涵盖任务、代码、CICD、测试等,每个种类下又涵盖多种统计维度,全方位协助项目负责人把控项目全貌。

功能测试阶段:
本阶段的参与者一般为客户、系统架构师以及开发人员。
测试管理模块 提供手工用例管理、测试计划的制定和执行、测试报告等功能,涵盖功能测试、性能测试、安全测试、接口测试、自动化测试等测试环节,覆盖软件开发全生命周期过程中的各个测试阶段。通过测试过程的规范化管理,提升测试效率并对项目质量评估提供量化依据。

在该阶段,系统测试产生的bug可以在任务模块创建对应的工作项,分配责任人并确定严重等级,配置优先级。

同样依赖高度可拓展性的流水线任务,DevOps支持集成checkmarx、robotframework、复深蓝自动化测试系统等自动化测试工具。

项目负责人也同样可以凭借测试类型报表,确认项目测试进展。


03

总结

瀑布类项目管理强调文档的作用,这也要求在里程碑的每个阶段都需要大量文档交付物的产出并严格评审文档。尽管瀑布模型不够灵活的特点与当今一些快节奏的研发过程显得有些格格不入,但仍无法否认这是一个优秀的项目管理模型,该模型规划清楚了各个阶段的工作内容,每个阶段都有相应的文档评审,使得项目进行更加稳妥,更能保质保量的交付产品。
普元DevOps平台为瀑布式项目管理提供了强大的技术保障,同时,DevOps多样化的功能也同样兼容敏捷类项目管理方式以及敏捷-瀑布相结合的项目管理方式,更能满足用户多样性的选择。

关于作者欣宇,普元资深开发工程师,擅长后端研发、CICD、集成开发等,熟悉DevOps各个场景,深度参与多个DevOps实施项目。

本文分享自微信公众号 - EAWorld(eaworld)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章