软件开发过程中常见风险和应对策略

简介: 软件开发过程中常见风险和应对策略

大家好,我是阿萨。今天给大家罗列一下之前阿萨经历过的项目风险。

  • 需求变更
  • 进度紧张
  • 预算风险和技术风险
  • 质量风险
  • 人力资源风险
  • 工具风险


一、需求变更


开发最害怕需求变更,尤其是推倒重来的那种。它某些程度上是一种资源的浪费。需求变更其实就意味着之前的工作都白做了,有些变更是之前需求分析不到位导致的。有的变更是开发发现实现成本巨大,不得不变更的。有的变更是后期发现场景遗漏或者重大缺陷无法避免的。

遇到这种情况该怎么办?

1.前期用户故事和需求分析要多了解背景知识。业务分析再透彻一些。避免场景遗漏情况以及沟通不到位的情况发生。

2. 开发预研的时候可以先原型先行,避免出现严重缺陷,无法避免。

3.开发反串讲环节和开发转测试验收环节必须覆盖主流程的happy path

4. UX先行,先让UX把原型和客户确定好,避免后期返工情况。


二、进度紧张


估计工时的时候,大多数情况大家都说自己肯定能很好的完成。大部分情况下都会有延迟交付。可能是突发事件影响,比如hotfix,重要成员请假等情况。缺陷修复花费时间比预计要多。

遇到这类情况,如何避免?

1. 估计工时时,需要考虑各种意外情况。比如节假日附近,大家请假的情况。

2. 产品质量差导致的修复缺陷时间长。其实可以让每个开发把修复缺陷时间加上。

3.排计划,预留出突发状况的情况。


三、预算紧张和技术风险


预算紧张一定会影响采购,那么服务器或者开发工具如果不能按照预期时间到位。就会出现阻塞性情况。所以前期一定要考虑采购计划。包括采购服务器和开发工具等情况。

另外所使用技术遇到无法解决问题导致客户场景无法实现的。也是常见风险。

解决措施:

1. 技术风险,在前期技术可行性分析和研究的时候,就需要考虑是否存在特殊场景无法实现,来避免此类问题。

2. 项目采购计划,在项目初期也要合理安排好。针对特殊情况下,提前预留部分预算。项目初期技术可行性研究和测试策略制定时针对硬件以及软件的需求需要及时上报。


四、质量风险


没有人愿意用质量差的产品,任何人都不例外。但是大部分情况下交付产品都会遇到客户评价质量无法达标的情况。

该如何规避?

1.项目初期,确定好所有质量标准。和客户明确需要达成的质量目标和要求。

2. 建立质量门禁,确保流水线所有步骤的质量门禁都可以达标。

3. 测试左移和测试右移需要在制定测试策略的时候就明确并执行起来。确保全面质量管理和质量内建尽快做起来。


五、人力资源风险


项目规划了10个人,实际到位5个人。项目交付日期还不能变。这种项目风险极高。

项目进行中,骨干离职。比如那个底层工程师离职导致登月计划受影响的热搜。

如何避免呢?

1.人员轮岗。尤其是关键岗位人员。一定要过一段时间轮换一段时间岗位。

2. 项目计划阶段,人力资源和项目交付日期一定要把好关。避免出现,人力资源不到位情况。


六、工具风险


也可以理解为日常工作的软件和硬件风险。比如开发一款苹果手机应用,开发和测试没有云测试平台,没有苹果机。开发和测试了个寂寞。

工欲善其事,必先利其器。连工具都没准备好。咋干活?

这种只能找领导申请资源啦。

希望大家的项目都顺风顺水,尽量避免此类现象出现。

相关文章
|
网络协议 安全 Android开发
软件丨李跳跳们现在该如何跳呢?
前段时间,李跳跳等软件被某大厂发了律师函,之后,好些个跳广告软件都相继发布公众号说明,停止维护软件,并且下架了相关软件,那我们还能跳吗?该怎么跳呢?
1054 0
软件丨李跳跳们现在该如何跳呢?
|
27天前
|
存储 SQL 运维
速看!数据库与数据仓库的本质区别是什么?
本文深入解析了“数据库”与“数据仓库”的核心区别,涵盖设计目的、数据结构、使用场景、性能优化和数据更新五个维度。数据库主要用于支持实时业务操作,强调事务处理效率;数据仓库则面向企业分析决策,注重海量数据的整合与查询性能。二者在企业中各司其职,缺一不可。
|
11月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的数据库集群
PostgreSQL的逻辑存储结构涵盖了数据库集群、数据库、表、索引、视图等对象,每个对象都有唯一的oid标识。数据库集群是由单个PostgreSQL实例管理的所有数据库集合,共享同一配置和资源。集群的数据存储在一个称为数据目录的单一目录中,可通过-D选项或PGDATA环境变量指定。
162 3
|
机器学习/深度学习 人工智能 云计算
后端架构的演变与未来趋势
本文深入探讨了后端架构的历史演变和未来发展趋势,从单体应用到微服务架构,再到无服务器架构,分析了每种架构的特点、优势及应用场景。同时,展望了未来可能的发展方向,如人工智能在后端开发中的应用、云计算技术的深度融合等,为后端开发者提供了宝贵的参考和启示。
|
数据采集 JSON API
.NET 3.5 中 HttpWebRequest 的核心用法及应用
【9月更文挑战第7天】在.NET 3.5环境下,HttpWebRequest 类是处理HTTP请求的一个核心组件,它封装了HTTP协议的细节,使得开发者可以方便地发送HTTP请求并接收响应。本文将详细介绍HttpWebRequest的核心用法及其实战应用。
473 6
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶领域的应用
【5月更文挑战第18天】随着科技的发展,深度学习技术在各个领域的应用越来越广泛。特别是在自动驾驶领域,基于深度学习的图像识别技术已经成为了关键技术之一。本文将详细介绍基于深度学习的图像识别技术在自动驾驶领域的应用,包括其原理、实现方法以及面临的挑战和未来发展趋势。
205 5
|
存储 搜索推荐 应用服务中间件
nginx里的request_uri 是什么
【6月更文挑战第25天】nginx里的request_uri 是什么
959 0
|
存储 缓存 前端开发
深入探索谷歌浏览器开发者工具:提升网页开发与调试效率的终极指南(二)
深入探索谷歌浏览器开发者工具:提升网页开发与调试效率的终极指南(二)
317 0
|
开发框架 安全 .NET
C# .NET面试系列三:集合、异常、泛型、LINQ、委托、EF!
<h2>集合、异常、泛型、LINQ、委托、EF! #### 1. IList 接口与 List 的区别是什么? IList 接口和 List 类是C#中集合的两个相关但不同的概念。下面是它们的主要区别: <b>IList 接口</b> IList 接口是C#中定义的一个泛型接口,位于 System.Collections 命名空间。它派生自 ICollection 接口,定义了一个可以通过索引访问的有序集合。 ```c# IList 接口包含一系列索引化的属性和方法,允许按索引访问、插入、移除元素等。 由于是接口,它只定义了成员的契约,而不提供具体的实现。类似于 IEnumera
664 2