软件开发公司管理经验篇:好的软件开发管理并不等于完全成功
软件开发项目最大的特点就是不确定性。这是指软件开发项目不可能完全在规定的时间内,按照规定的预算,由规定的软件开发人员完成。无论之前你做了多么精细的项目计划,在软件开发执行的过程中肯定会有偏差。这些偏差就是所谓的风险。因为软件开发不确定性,导致了计划赶不上变化,也导致了平时的工作中的2种倾向:
1、软件开发需求变化太快,索性不制定计划。
2、过度强调计划,往往要将项目中非常琐碎的事情都考虑的非常清楚之后再启动项目。
第一种倾向,在我做过的项目里占了2/5,都是在软件项目开始时制定一份计划,软件项目一启动就丢到一边,软件项目过程中完全不理会,个人能力强的PM大致还能把握方向和进度,但是问他之前做了些什么额外的工作时,往往回答不出来,等到软件项目结束,再把当初的软件开发计划改改,做个大概的统计也就了事。
软件开发需求的多变是必然的。由于用户对软件开发项目认识不足,加上一个东西的从无到有,所以往往需求开始都是模糊的,只有随着项目的发展和反复的沟通,才能逐渐的明确。如何尽早的引导客户把需求明确,是软件公司、需求分析人员的工作,是保障项目可以顺利实施下去的前提保障,它是一门技术,也是一门思维沟通艺术。需求调研清楚了不代表着万事大吉。同一个东西,不同的人有着不一样的理解。开发人员和客户之间隔着需求人员这么一层,如何把客户的意思明白、清楚、不变形的传递给开发人员,这也是大部分项目中头痛的问题。我们经常可以看到在软件开发的差不多的时候,需求、开发、测试聚在一起吵架,责任互推。
软件开发项目制定的计划不严谨,随意性太大,会导致可操作性差,在实施中根本无法遵循,也就失去了计划的作用。有的人会抛弃全局计划,采取每周制定下周的计划,这样也是不可取的,毕竟计划没有一个长远的目标或宏观上的掌控,只局限于眼前的一点点事情,往往会致使项目失控。我一般采取先制定全盘计划,再每月制定详细计划,当月快结束时,根据实际情况调整下个月的计划,这样既有了较长期的把控,也有了和项目目标的对比,同时也不会把自己陷入无止境的修改计划中。
软件开发技术人员的水平如果不能与项目的要求相适应,对项目需求或新技术不是很熟悉,对项目的质量、成本、进度都会产生影响。当进度开始滞后,软件开发软件公司最常用的方法就是增加人手。我之前的一个项目就是如此,由于软件公司不能把握需求,需求不断的增加,于是开始不断的加班,在这种折磨中,老员工开始纷纷离开,新来的员工不熟悉,进度进展缓慢,软件公司开始大量的加人,但是对系统代码和需求的不熟悉,往往3、4个人新员工都抵不了1个老员工。于是,开始无限制的加班,在加班的折磨下,新员工又纷纷离开,于是又加人。恶性循环,项目被无限的延期。这样的项目相信大家遇到过不少。
导致软件开发失败的因素还有很多,对于一个软件开发公司来说,一个好的软件项目管理是一个好的开始,但并不等于软件开发项目成功。加强自身能力的提升,是每个软件公司必须有的意识。