软件项目管理

软件项目管理

瀑布模型到敏捷开发

瀑布模式是传统软件工程开发的最早模式,由一般工业生产线仿制而来。
瀑布模式影响深远,乃至于软件工作的职位名称依然是由瀑布模式定义的如项目经理开发工程师,测试工程师,运维工程师,实施工程师,数据库工程师等等。
瀑布开发流程(Waterfall),它提出软件开发活动可以用开发和构建应用所耗费的时间来定义。

瀑布流程与三重约束模型(triple constraint model)相关,三重约束模型也称为项目管理三角形(project management triangle)。三角形的每一个边代表项目管理三要素的一个要素:范围、时间和成本。三重约束模型“认为成本是时间和范围的函数,这三个约束以一种确定的、可预测的方式相互作用。如果我们想缩短时间表(时间),就必须增加成本。如果我们想增加范围,就必须增加成本或时间。

问题导致一部分人员空闲。开发和测试之间存在矛盾。

最终,瀑布模型被认为对软件开发是不利的而且违反人的直觉,因为通常直到开发流程的最后才能体现出项目的价值,这导致许多项目最终都以失败告终。而且,在项目结束前客户看不到任何可以工作的软件。工期长导致信任危机愈发严重。必不可少的冻结需求也冻结了客户关系。

敏捷开发宣言

  • 个体和互动高于流程和工具
  • 工作的软件高于详尽的文档
  • 客户合作高于合同谈判
  • 响应变化高于遵循计划

开发以迭代为基础的

软件项目管理_第1张图片
将软件项目需求分成多个选代,且每个选代成果在完成开发、测试、反馈等环节后都可以进行交付
在这种模式下,每一个选代就是一个周期,每个选代后都能交付可独立运行的成果。不仅资源得到最大化的利用、反馈更加及时,而且交付成果的效率显著提高,极大地降低了风险。

软件支撑

本地依赖成长为远程依赖(微服务)的架构理念支持。
springboot/vue等脚手架约定优于配置等理念的崛起。(丧失部分自由)maven/gradle等构建工具提供从几个KB的代码到几百MB的可执行程序的站式服务。
npm/yarn等构建工具提供生成html/js文件。
git等提供多人代码合并和开发。
Dev/Ops理念的兴起,docker等隔离性容器的进一步发展,一台虚拟机(
电脑)只运行一个专属服务。(装机脚本可编程,linux作底层支持)

敏捷开发是一种理念,并没有设置具体的人员配置和权力调整。
Scrum可以理解为敏捷开发的一种具体实现方式。

你可能感兴趣的:(软件项目管理,java,学习,开发语言)