软件设计的过程、项目进度的管理、风险管理的一些笔记

软件设计的过程、项目进度的管理、风险管理的一些笔记

软件概要设计过程

软件设计的过程、项目进度的管理、风险管理的一些笔记

  1. 设计系统架构:用于定义组成系统的子系统,以及对子系统的控制,子系统之间的通信和数据环境等
  2. 设计软件结构:用于定义构造子系统的功能模块、模块接口、模块之间的调用与返回关系等
  3. 设计数据结构:用于定义数据结构、数据结构等
    概要设计的过程也就是将需求分析之中产生的功能模型、数据模型和行为模型等分析结论进行转换,由此产生设计结论的过程。

如何保证项目进度

及时掌握团队每个成员的工作进度

项目进度是由每个成员的工作进度来保证的,如果有一个人不能按时完成任务就会造成整个项目进度滞后,所以,保证项目进度首先要了解每个人的工作进度。可以通过以下方式及时了解项目组成员的工作进度:

  1. 在项目组会议上汇报工作的情况
  2. 每日例会说明当前工作进展情况
  3. 在日报中汇报当前工作进展情况
  4. 单独沟通了解工作情况

明确任务完成标准

在团队开发中,项目组必须对各个工作的完成标准达成一致,例如,写一个文档是写不完了就算完成了还是通过审核才算完成?在编码时,是实现功能就算完成了还是必须测试通过才算完成?如果任务完成标准不统一、不明确。很容易造成滞后,因为不确定的因素往往会带来更大的风险。

使用敏捷模型管理软件开发过程

敏捷模型更有利于团队间的沟通,而且其快速迭代、持续交付的思想更容易保证项目进度。

及时调整计划

计划存在着变化性,项目管理者或者团队成员要根据实际情况对计划做适当的调整,但是计划的变更一定要提前。例如,一个任务要求你要3天完成,在第一天你如果预估自己再怎么努力也不能完成,至少需要四天,此时你就应该提出延期申请,不能等到3天过期了再对项目经理说你无法完成,这样会使整个团队很被动,如果在团队中发生这种情况当事人应该受到惩罚

找出影响项目进度的因素

作为团队领导者,项目经理在项目进行了一个阶段后要带领团队进行总结,找出影响项目进度的主要原因,针对不同的原因采取不同的措施,千万不要任其发展,让项目延期变成项目组的常态。如果这样持续的时间长,那项目计划就形同虚设,不仅影响团队成员的积极性还会使整个项目在一段时间后进入混乱状态。

关注人

在项目开发中,要以人为核心,以人为本,尤其是项目经理不要把重心放在"管"上,而是要做团队的教练,帮助团队解决问题,帮助团队成员成长,作为开发人员,按时高质量完成任务是我们的职责,也是我们在实现承诺,没有什么比拖延更显得你无能。

风险管理

关于风险管理有两种策略:一种是被动风险管理,也就是等风险真正发生了再说,目前只考虑当下的事情,另一种是主动风险管理,也就是在风险还没有发生之前,标识出潜在的风险,提前建立计划来管理风险,主要目标是预防风险。

关注风险

项目风险威胁到项目计划,也就是说,如果项目风险变成现实,有可能会拖延项目的进度,且增加项目的成本。项目风险是指潜在的预算、进度、人力、资源、客户及需求等方面的问题,以及它们对软件项目的影响,另外,项目的复杂性、规模及结构不确定性也被定义为项目的风险因素。
在项目开发中存在的风险主要有技术风险和商业风险。

技术风险: 潜在的设计、实现、接口、维护、新技术的使用等方面的问题,威胁到开发软件的质量及交付时间。如果技术风险变成现实,则开发工作可能变得很困难。
商业风险:威胁到要开发软件的生存能力,如开发了一个市场不再需要的产品,开发的产品不再符合公司的整体商业策略,没有得到预算或人力上的保证,重点的转移或人员的变动而失去了高级管理层的支持等。

软件开发过程中的风险还有很多,如与客户的沟通、人员数目及经验等。对于一些可以预测的风险,我们可以通过自己的经验和项目的实际情况进行预测。例如,当团队中有人频繁的延期时,你的项目开发就存在风险,需要及时想办法来规避因此而带来的风险。

如何进行风险的管理

规避风险的前提是能预测或发现风险,风险预测团队管理者或成员要有丰富的经验,团队管理者要多观察分析,团队管理者要积极听取建议和意见。
软件项目管理人员可以采取以下几个方法处理风险
1、风险意识
对软件项目的成员加强风险管理知识的培训,增强风险意识,现在软件项目管理的理论中一个非常核心的理念是以人为本,发挥每一个人的力量,软件项目中每一个成员的风险意识强弱与风险处理能力的高低直接影响软件项目风险管理工作的好坏。
2、风险识别
风险识别是及早的发现对项目计划的威胁,识别已知和可预测的风险,只有识别出这些风险才能避免这些风险。
3、风险回避
风险常常可以通过及时改变计划来制止或避免。风险回避是对有可能发生的风险尽可能地规避,可以采取主动放弃或拒绝使用导致风险的方案来规避风险,如在开发中使用某个新技术可能会提高软件质量,担是技术需要学习,其使用可能会导致进度被严重滞后,这时候就可以放弃这种技术来规避风险。
4、风险转移
风险转移是指将可能出现的风险转嫁到其他部门或个人去承担,例如我们在开发中与客户沟通时存在风险,这时候可以由产品部门与客户沟通,从而转移风险
5、风险损失控制
有时候风险的出现在所难免或风险已经成为了现实,这时候我们要做的就是尽快想办法让风险带来的损失降到最小,对于风险损失控制的预案,项目经理或团队应该提前建立,一旦风险发生应该马上启动预案。