曾经和一位项目经理聊天,问其“中小型开发项目如何进行项目管理”?他不假思索地回答:“中小型开发项目还需要项目管理吗?”这一回答让人惊讶。连身处管理行业中的人都忽视了中小型开发项目管理的必要性,更不要说其他业务人员和开发人员了。
软件管理着今天的业务。因此,软件和系统开发项目的成功与否会直接影响到公司的生存。今天两个不同因素的合力作用,给我们带来了更大的难题。一方面是业务需求更加复杂。人们对软件质量和用途的期望大幅度提高,对业务系统的要求也越来越挑剔。另一方面是开发成本不断缩减。经济全球化,竞争压力增大,公司不得不采取更灵活的竞争方式来满足客户的需求,否则就会败给世界各地那些有准备、有意愿和有能力提供更优质、更低廉解决方案的竞争对手。
Thomas Friedman在其所著的畅销书《世界是平的》中,简明扼要地指出:“如果您想在平面世界发展壮大,最好学会如何改变自己并适应这个世界。”这两个因素一起形成合力,对企业提出这样一个问题:如何更快交付更好和更低廉的软件?为了更好地回答这个问题,企业不得不在面对不断变化的威胁和竞争者时,变得越来越灵活,职责越来越分明,对规则的遵守越来越严格。
在这一变化中,管理是不可缺少的。许多软件项目或产品管理混乱,最根本的原因就在于项目人员以为自己了解管理,了解现状。曾有项目经理说:“管理,那是成本!不适用于中小企业!”对于中小企业,似乎管理会妨碍业务的灵活性,会增加开发的成本。对于需求、变更,似乎喊一嗓子更加适用。其实恰恰相反。恰当的管理可以让公司在组织结构分明,并严格遵守规则的环境中仍保持高度灵活性并提高利润率。
中小型项目开发管理现状
一个完整的软件生命周期包含需求分析、概要设计、详细设计、编码实现、软件测试、软件发布和运维等多个相互交织、互相影响的过程。这就注定软件开发管理是一项复杂的活动。
对于中小型软件开发项目,其主要特点是:投资少、规模小、时间短、用户需求变更较大、项目计划不足、不重视测试、缺乏缺陷管理机制等。
1. 难以估计项目进度
在项目开始前缺乏充分的分析和论证,对要开发的项目没有足够的认识和了解,无法准确估计项目开发所需要的时间、每个阶段需要的时间乃至整个项目的规模等重要的项目数据。这样无法制订出能切实起到指导和控制项目进度作用的日程表,项目管理者也很难控制项目的进度和完成时间。
2. 项目日常管理问题
中小型软件项目的日常管理问题主要表现在以下几个方面:第一,项目组成员职责划分不够清楚。由于项目规模小,参与开发的项目组成员较少,所有的项目组成员都把主要精力放在编码上。而项目开发中许多其它工作没有专人负责,经常被忽略。这些工作包括:开发环境的选择、相关工具的选择和有效应用、版本控制、变更管理和缺陷管理等方面。这些工作对软件项目开发产生较大的影响。第二,由于没有一个明确的软件开发过程,在开发过程中许多工作产生扯皮现象。例如,测试中发现缺陷,在分析缺陷时都指责别人。
3. 项目需求分析不充分
中小型项目开发因为项目规模不大,往往对软件的需求分析不够重视,不能详尽描述具体功能,无法理清用户的重要需求和新需求。在没有充分进行需求分析的情况下,就开始设计和编码。导致在开发过程中不断有新的用户需求出现,使开发无明确的方向,项目开发举步维艰,甚至用户不认可开发出的软件产品。
4. 缺陷无法控制
项目开发中的缺陷包括项目分析、设计和编码等各个阶段引入的缺陷。由于中小型软件项目规模小、开发人员少,对各个阶段缺乏必要的测试、复查和审查工作,导致每个阶段都有相当多的缺陷引入。编码完成后,发现大量的缺陷。在缺陷修改过程中不断引入新的缺陷,导致缺陷很难收敛,产品很难集成,浪费了大量的时间。