技术开发 频道

面对小型软件项目 坚持规范管理是王道

    二. 小型软件实行项目管理的方法和步骤

    为什么小型软件开发项目却会面临更多的失败风险呢?在我所负责的项目面临下马前的每一个夜晚,我的脑袋里一直在思考这个问题。也许是多日思考的沉淀,也许是思绪在不停的四处游荡后的突发灵感。使我明白到原来决定小型软件项目成败的核心因素,是有没有坚持进行实行项目管理。现总结为以下几个要点:

    (1)树立小型软件开发也需要项目管理的理念

    但凡专业的软件开发人员都学过《软件工程》这门课,纵观这些指导性的理论以及建议。我们应该要树立即使是小型软件开发也应该在一定程度不要违背开发理论,必须要遵从于工程化软件理论的原则和方法,落实规范化的管理。否则,失败的风险将伴随着整个开发过程,而且越到后期失败的可能性会越大。

    对小型软件项目而言,最急需的不是设计方法,也非分析方法,当然也不是开发方法,而是管理方法。因此,无论项目大小都必须要遵循一定的项目管理步骤。从概念上讲,软件项目管理是为了使软件开发能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理还有利于将"英雄"式的开发人员的个人开发能力转化成团队的开发能力,团队的软件开发能力越高,就越能减小项目的开发风险。

    (2)项目需求的确认

    在软件开发中,最重要的活动是要明确项目的范围、需求和提出至少一个可用的软件架构方案。在明确项目范围的过程中,不能认为是小型软件开发项目就马马虎虎的、想当然的认为已经了解了客户的真实需求。项目经理应要就项目的边界、功能、限制条件等与客户进行协商,并应以需求说明书和功能说明书的形式把客户的需求记录下来,并且和客户达成一致的认识和理解。在此基础上,再提供至少一个合适的软件架构方案,并且完成原型系统。原型系统的目的不但是为了验证技术上的可行性,而且是为了给客户一个感性的认识,更好地完善对需求的理解和确认。

    (3)人员角色的安排和定义

    角色定义包括个人或团队的行为和职责,包括设计人员、编程人员、测试人员、项目管理人员和辅助人员。比较小的项目往往是几个人来完成,这几个人基本上从头到尾参加开发。而且由于项目小,项目负责人除了负责分析、设计和协调的工作外,也要参加编程。但在此过程中必须要合理进行人员角色的安排和定义,将技术任务和相应的责任划分到具体的岗位,再将岗位责任落实到具体的人身上,避免推卸责任或由不专业的人马虎应付了事。例如,一个人可以同时担当几个角色,一个角色也可以由几个人来共同承担,但前提都是要有责任的、有专业技能的。

    (4)建立合理的开发流程,注重过程的衔接

    一句话形容就是"麻雀虽小,五脏俱全"。也就是说即使是小型软件的开发,仍然应该遵循软件开发的一般规律,必须的步骤和合理的开发流程还是不能省略。不但要建立合理的开发流程,而且还要注重分析与设计过程的衔接。当然,小软件项目也有它自身的一些特点,实行起来可以相对灵活些。

    例如:①要强调协调几个人的工作比某一开发人员完成一段编码更重要。因为在协调上出了漏洞,就可能导致很大的问题。②是给每个开发人员要有明确的任务书,也就是说每个开发人员必须非常明确自己的任务,而且这些任务是采用文档来表示。③是要让每个开发人员都清楚自己所做的工作在整个系统中处于什么地位,避免各人的代码编写完毕之后又要重复修改。

    (5)重视文档化过程

    在小型软件项目中有两个特点:①是由于人员少,意味着不同人员的程序之间交互、接口相对少一些;②是由于人员少,往往是同样的几个人从头到尾负责这个项目。但这两个特点会让人容易犯错误,就是往往是几个人碰一下头,讨论一下最基本的任务分工便分头去做自己的工作了,没有一份较正式的开发文档。当有人对任务理解有偏差时或有误解时,就可能会造成返工。因此,小型软件开发项目也不应该忽视文档化过程的作用。

    文档化有三方面的作用:①是有助于团队沟通,能给别人一个交待以及给自己一个备忘。②是有助于自我理解,一般来说如果你不能写下它,你就可能没有真正的理解它。③是有助于连贯一致性,它会使团队拥有可重复的优势。虽然文档是如此重要,但在小型项目中有用的文档最好也不要太冗长繁杂,一般1-2页的过程说明就足够了。

    (6)使用好制度与纪律这个工具

    有效的团队制度与纪律是非常有利于团队有序工作的。也许在一、二十年前经常听到某位大侠单独完成了某种创举,成了人们崇拜的对象。可今天这种以自我为中心的大侠已经很难有生存空间了,取而代之的是要发挥团队力量才能攻克难关。

    因此,软件开发虽然是一项创造性的智力活动,但无可置疑的是制度与纪律对于能否成功也是至关重要的。如果因为项目小、人员少、周期短,在管理上可以一目了然就失去了制度与纪律的观念,必将会导致开发过程混乱不堪。所以,使用好制度与纪律这个工具,将有助于小型软件团队改进开发过程,遵从纪律来构建软件将会得到大大的益处。

    总而言之,大中型软件开发项目事情会是很多,例如需求分析、概要设计、详细设计、编码、测试、安装及维护等。但事实上,小型软件开发项目的事情也并不少,同样也需要管理好这些事情。虽然可根据实际的简易程度进行适当的取舍,但只有坚持应用项目管理这个工具才是正道,才会取得成功。

0