浅谈软件项目管理(二)

软件项目开发计划制定阶段总结

一般来讲,软件开发的第一步要作可行性分析,但是对于现今的软件公司来讲,一般都没有这个过程,因为用户说来给我做个软件,然后给你多少钱。只要有钱赚,就是做个变形精钢估计老板也会接下来,因此也就没有作可行性分析的必要了。但是作为开发人员来讲,时间上的可行性、技术上的可行性是必须要考虑的,特别是项目经理,必须综合考虑,因为老板是要结果的。作为项目经理承担了这个任务,你就必须衡量一下你手上的现有人力以及老板给你的时间是否能够按时完成任务,如果不能则必须提出你的看法,对于人力和时间上作出进一步的要求。特别说明的是,拒绝老板安排你的事情肯定是不理智的。

废话少说,我就这一年来我制定开发计划方面作个总结。

总的开发计划按照软件生命周期来安排。即按照需求分析、概要设计、详细设计、编码、测试、实施这几个过程安排。

1)  需求分析。一般来讲,需求分析应该是软件开发中最重要的过程,因此从时间上安排也应该最长。在实际的软件开发中,特别是现在很多软件公司做的都是政府项目,需求分析是很难做的,因为政府自己也不知道要一个什么样的软件,所以你别指望在项目开发的开始一段时间就把需求搞得清清楚楚,真正搞清楚需求应该是项目做完的时候。但是作为时间上的安排来讲,这个过程你必须得安排进去。对于一个工期为5个月的项目,我觉得最初安排3周时间来做需求是必要的(针对我这个公司的情况,因为需求没有用户参与),这个时间内你必须输出一个比较正式的需求文档,以供大家讨论、修改。作需求分析对于5人以上的项目组一般不需要所有项目组成员参加,项目经理和小组长参加即可;对于5人以下的可以让除小组长以外的人适度参加。由于不是所有人都参加需求分析,那么不作需求分析的人做什么呢?这个可能各个公司的情况不一样,有的公司分工很明确,做需求是一批人,作概要详细设计是一批人,而做编码又是另一批人,像流水线似的,这种情况就没有这个问题了。但是像我所在的这个公司,作软件还没有达到流水线这种程度,而且项目也不是很多,所以往往从项目的开始阶段所有人员就到位了。这个时候我觉得可以这样安排,虽然在需求分析尚未出来的情况下,但是项目经理应该对这个项目的主要功能有个大致了解,用到的技术也应该有个大致了解,开发中的难点也应该有所了解。所以在这个阶段可以安排其他人员熟悉相关业务,熟悉相关技术,预研开发中可能碰到的技术难点,还可以安排一些培训课程,以提高整个开发小组的开发能力。

2)  概要设计。如需求分析阶段一样,我碰到的情况都不是很理想。按理来讲一个5个月项目应该安排1.5月左右作需求分析,1月左右作概要设计,1月左右作详细设计,1月左右做编码,0.5月左右作集成测试。可是很不幸,我碰到的情况都不这么理想。前面说了,需求不是很明确,只有部分明确。所以在安排概要设计的时间时安排的也只有2周左右,关键是设计出一个比较容易扩展(实际上就是好改)的总体框架,设计这个2周也应该够了。而且概要设计参与的人员一般也不是全部,还有那么多人等着做事情,你没有意见老板也会不爽啊。所以概要设计也就只能做到总体框架这个层次了。按照三层模式的设计思想,主要就是作出界面层、逻辑层、数据层的设计以及他们之间的相互联系。界面层、数据层的很多设计都可以借鉴现成的,而逻辑层那就难搞了,因为需求都还不是很清楚嘛。这个阶段的数据库设计是肯定要出的,虽然后面会改,但是总得有一个才行。

3)  详细设计。对不起,我所在的公司不做这个。

4)  编码阶段。哈哈,终于可以编码了,终于可以有点实实在在的东西可以看到了。这个阶段按理来讲顶多占项目时间的20%,可是对不起,这个阶段成了我这个公司软件项目开发的最长阶段了。5个月的项目,预期至少是2个月。其实这个也很平常,因为在这个阶段还在不断根据你做出来的东西,修改需求,修改概要设计,修改数据库设计。因为老板或者用户看到了实实在在的东西(比如对话框)的时候,他就知道他想要一个什么样的东西了。所以不断的改啊改啊,终于改得差不多了,如果管理不好,很可能你的系统也已经不成样子了。

5)  测试阶段。实际上我这个公司没有做单元测试的习惯,就是集成测试,也就是软件写完了,所有的功能都实现了,最后给测试人员一个打包程序,你去测吧。对于5个月项目,0.5月差不多够了。

6)  实施阶段。这个阶段主要就是写用户手册,打印,刻盘了。0.5月也差不多了。

写到这里我都不想写了,因为我这个公司的情况是比较复杂的,不知道其他人所在的公司是如何,我的这个经验很难适用到其他地方。我现在作的东西,没有具体的用户,完全是公司内部自己人摸索出来的需求。有人问,那你这个公司靠什么赚钱哦,呵呵,就是忽悠,忽悠政府。不过经过几年的忽悠,有些需求还是已经明确了。在这种没有具体用户的前提下,要开发一个软件(而且定位是产品),是非常困难的。这样的开发方式任务安排是不能按照常规出牌的。我个人认为在这样的开发方式下,原则一先开发需求中最明确的部分,原则二是定一个比较好改程序的框架,原则三是在最短的时间内让用户看到你做的东西。至于时间计划上,我认为无论如何需求分析的时间还是不能太短,因为这是后续软件开发的根本,包括设计,编码,以及更为细致的人员时间安排。其实,真的一个需求设计作清楚了,后面的设计,编码,时间人员安排基本上可以不伤脑筋。因为什么框架啊,编码啊都可以啊,书上网上都有呢,可是需求则不是书上能够找出来的,不是抄一段出来就可以用的,你顶多只能借鉴,以此来引导用户需求。下一节我将总结自己对于作需求的认识。

另外关于作开发计划的工具,一般来讲用WordExcel或者Project都可以的,工具只是形式,把问题说清楚了就行。

你可能感兴趣的:(项目管理,测试,框架,任务,单元测试,数据库)