A Little Fool

Fool For Free.

博客园 首页 新随笔 联系 订阅 管理
小型软件项目,通常是指工作量在3-12人月之间的项目,在小型软件开发企业中,这类项目一般是放任自流,少有管理。在这类项目中,项目经理的角色常常由 公司老总或部门老总亲自充当,项目往往具有投资少、人员少、时间紧、需求不明确等特点。由于针对小型项目,缺乏科学有效的管理方式,或企业难以负担类似于 大型软件开发的管理成本,这类项目的开发过程往往会产生诸如项目进度难以控制、产品缺陷多、后期维护工作量大、客户满意度低、文档缺乏等诸多问题。一项调 查表明,大约有70%的小型软件开发项目超出了预期时间,90%以上的项目费用超出预算。因此,小型项目迫切需要引入适度的开发管理。本文将针对小型软件 项目开发过程中的核心管理问题给出一些行之有效的解决方案。

  一、需求管理

  对于任何类型的软件项目,需求阶段都是最重要的阶段,需求管理是整个软件项目管理的重中之重。需求管理通常包括两个大方面的问题:需求收集分析与需求变更管理。

  首先,对于需求收集与分析,核心风险来自于需求不明确。由于客户和软件开发团队的背景不同,对同一问题的理解自然存在差异。这些差异如果不能在 需求的最初阶段尽量弥合,那么必然导致需求增加与需求更改。因此,在需求分析阶段,要求需求分析人员具有丰富的客户沟通经验,必须多花一些时间,充分了解 用户的目标与工作过程,站在客户立场上,设身处地考虑问题,帮助用户将模糊的需求清晰化,将简略的需求明细化、完善化,将混乱的需求逻辑化、条理化。

  其次,任何项目都无法承受频繁的需求变更与需求增加。因此,除了在需求收集阶段需要尽可能将需求细化外,还需要在适当阶段尽量冻结需求。公司的 销售人员往往倾向于接受用户模糊的要求,并暗示用户“什么都好商量”。这往往给项目后期甚至项目完成后又频繁更改需求,甚至导致项目严重拖延、开支严重超 出预算埋下祸根。因此,在需求细化的后期阶段,必须“拉下脸来”,就需求冻结和后期需求增加的费用支付方式和客户达成共识。

  二、关注项目设计的灵活性

  对于中小型项目,在设计过程中,必须关注设计的灵活性。在实际的项目中,即使在需求阶段花再多的经历,也没法完全避免开发阶段的需求变更。因 此,在架构设计中,尽可能采用灵活的设计就至关重要。对于项目设计人员,可以借鉴RUP(RationalUnifiedProcess)中基于组建的体 系结构思想,利用基于独立的、可替换的、模块化组件的体系结构管理复杂性,提高重用率,构建有弹性的、能适应变化的、易于理解的、有助于重用的体系结构。

  三、开发进度管理

  开发进度管理,主要需要关注如下几个方面:

  1. 任务分配、人力资源分配、时间分配要和工程进度协调;

  2. 任务分解要合理,并且尽量并行化;

  3. 对项目进度控制要尽量细致,并且在实际执行过程中审查要严格;

  4. 针对项目中不容易控制的部分,譬如技术难点、来自于客户的时间拖延要做好充分的准备;

  5. 要为测试、缺陷修正和预期的需求变更预留足够的时间;

  如有必要,还应采用适当的协同进度管理工具。

  四、开发团队管理

  对于开发团队管理,要做到分工明确、因人施用。根据水平的高低,合理分配工作量。并且关注团队内部的交流沟通结构,避免“互相等”和“误解”。尽量让每个人的工作量饱和化。在项目开始以后,要尽可能保持团队稳定,避免人员变更给团队带来的协作混乱。

posted on 2009-10-27 22:11  HenryRead  阅读(237)  评论(0编辑  收藏  举报