进行软件项目开发是一项非常有意义的工作,但这其中也包含着许多的风险和挑战。有效地管理这些风险是至关重要的,并且它要求所有各方——包括研究人员,工程师,开发人员,程序员和项目经理——必须要首先考虑健壮的应用开发所需的遵循的基本原则。即使是对于最具有挑战性、最复杂的软件开发项目,持续地专注于这些基本原则都是努力减少项目风险、确保项目成功一个必不可少的组成部分。定期审查这些基本的原则和做法对于任何人(包括最有经验的开发人员)都很有价值。
面临的挑战
软件开发绝对不是一件容易的事情。每个软件项目都具有自己独特的需求,也都面临着不同的挑战和问题。预测和防范风险的失败会造成巨大的损失,它可能会导致代价极为高昂的进度延误,造成巨大的收入损失,增加的团队成员压力,减少项目的产出,甚至会导致整个项目的最终失败。
解决方案
虽然每个项目都有自己独特的要求,但是有效的风险管理也都具有一些共同的特性。通过在项目开发进程之前或开发过程中确定潜在的风险并且制定解决方案,可以最大限度地提高团队的效率和成品的质量。
第一道防线:强烈的基本原则
仔细评估潜在的风险并且提出解决方案来解决这些问题,仅仅是风险管理万里长征的第一步。你同时也应该认识到:一个健全的项目开发的原则,是有效的进行风险管理的核心所在;只有不间断地对项目的风险进行管理,才能够最大限度地发挥团队的工作效率和整体开发能力,为创造出健全的软件产品打下坚实的基础。
灵活的规划
首先要保持充分的灵活性。让小组成员自由地作出决定,因为充分获取新的信息能够使他们迅速作出反应,而僵化的项目计划和进度表会阻碍他们应对新的挑战的能力。
不灵活的时间表还会对小组成员对于该项目的进展情况的看法产生不良的影响。由于项目计划和进度安排对于衡量项目进展和期限是非常必要的,不能过于死板。在项目的开始阶段促进团队成员的灵活性会鼓励他们更加积极主动地面对正在不断增加的挑战,同时也使他们能做好准备,以一个更加有效的时间表推进项目的进程。
在建立一个能够指导团队成员努力进行软件开发计划的路线图时,灵活规划的重要性就显得尤为突出了。
良好的发展原则
在项目的开发阶段,决定项目成功与否的某些重要的未知因素,将作为项目收益显现出来。这些未知的因素通常就是我们所说的风险。容纳这些未知因素的关键是你要认识到,你不可能预知所有可能发生的事情。因此你必须要养成正确对待无知的态度,特别是在开启了一个新的项目的时候,要防止那些假装无所不知的人。
人们往往容易过分强调表面文章以平衡这种不确定性。报告完成了,会议参加了,时间安排也得到满足了,但很少有人知道项目现在取得了多少进展,或什么样的风险正在安全的范围内积聚。必须明白软件开发和风险管理的最终目标是优秀的软件,而不是你所热衷的报告和时间表,不能让这些报告和时间表成为你工作的重心。
在这里我们提出的一个极其重要的开发原则是减少代码的复杂性,并且实现相同功能模块化。分离的代码模块,并不能为所有目标平台或操作系统所共享。确保剩余的代码是共同的,这样就可以使你的努力最佳化,并为以后的产品开发中对于原先模块的维护以及软件的有效再利用奠定了基础。
集成产品团队(IPTs)
构建集成产品团队是控制成本和减少风险的另一重要法宝,特别是对于那些可能影响进度的因素来说,集成管理团队为解决问题提供了便利,使团队能够迅速应对不断变化的要求,并促使大家按照预定的进度开展工作。
该团队能够很好地使客户(在大多数情况下是政府机