软件开发过程中如何避免冲突,保证软件开发预定进度计划
软件开发周期,本来是应该根据软件开发工作量和开发人员情况来估算的。但现实中,往往会受到市场部门以及软件公司高层的干涉。他们从产品销售的角度考虑,希望软件产品越早发布越好,在他们眼里软件开发弹性极大,只要给的压力足够大,就可以成功地将开发周期缩短。作为软件开发人员,我很清楚如果按照他们的要求随意确定软件开发周期,就意味着无休止的加班、低沉的士气以及进度的一再拖延。这就有了冲突,因为双方都觉得自己有道理而不愿让步。出现这种情况时,互相妥协是唯一的办法。软件开发主管可以通过安排适量的加班,削减或者推迟部分功能的办法来做出一定的让步,但这种妥协一定要有底线,过度的妥协会导致一个无法达成的软件开发进度计划,对软件开发造成极大的伤害。
软件开发过程中牵涉到很多利益相关方,这些相关方因为关注角度的不同,会产生很多矛盾冲突。这些冲突,轻则打击士气,拖延软件开发的进度,重则使软件开发无法正常进行。在我这些年的软件开发管理中,遇到过各种各样的冲突,其中最常见的有:软件开发周期的冲突和团队内部人际关系的冲突。
如果说上述冲突是外患的话,那软件开发团队内部的人际冲突就是内忧。软件开发人员往往表面看似低调,其实内心骄傲,他们对自己的智力充满了自信,最无法容忍的就是自己的工作成果被否定,最容易引起内部冲突。处理这种冲突有赖于软件开发主管的管理技巧以及公平的处事原则,同时把对事不对人的工作态度灌输给软件开发中的每个成员。冲突发生时,既要坚持原则,有理有据地作出分析,也要注意照顾双方的情绪,多做安抚工作。
随着技术的不断发展,软件开发团队经常尝试引入一些技术或者方法,在这个过程中,新旧势力会发生冲突。当事一方是软件开发经理或者架构师,他们对新技术充满信心,并想尽快实践;另一方是团队普通成员,他们已经习惯了手头的老技术,应用自如,对新技术的实际作用存在疑问,不愿尝试。如果不能很好地解决,必然导致双方互相埋怨,新技术推广艰难。分析其中原因,除了必要的沟通,还需务实的计划和实践。我有以下建议。
1. 引入新技术和方法前,通过学习会议等形式让所有成员对新技术有充分的了解,但不要强制他们认可并马上实践。
2. 制订循序渐进的增量引入计划,不要立即整个抛弃老技术,请团队成员一点一滴地试用新技术,逐步习惯甚至喜欢上它。
3. 在技术过渡阶段,团队负责人和架构师等要实践其中,不能置身事外指指点点,及时听取团队各个成员的反馈,并作出相应调整。
4. 定期召开团队会议,让成员根据自己的实践结果对新旧技术做评价对比,培养认可新技术的氛围。时机成熟后,大规模采用新技术。
5. 新技术引入后期阶段,团队管理层对成员表现进行肯定和奖励。
总之,软件开发过程中的冲突无法避免,但也不是洪水猛兽,只要积极应对,就可以将负面影响降到最低。