Nomad & His Life

博观而约取,厚积而薄发
posts - 15, comments - 88, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

一份考试系统项目的失败报告

Posted on 2006-06-30 22:52 Nomad 阅读(482) 评论(1)  编辑  收藏 所属分类: Code Life
就像某人说的失败并不可怕,可怕的是不知道从失败中吸取教训。


前言
本项目的目的是构建一个在线的考试系统,功能包括在线考试、用户管理、题库管理、试卷管理、教师批改、分数统计分析等。系统使用Java技术、Oracle数据库。开发人员计划为4人。时间周期为一个月。



项目概述
一、计划的制定
一个月简单分为4周,第一周完成界面设计、数据库设计、对象设计、平台搭建等工作。
第二周完成对象模块的开发。
第三周完成页面的开发。
第四周进行测试与完善工作。

二、软件框架
采取四层结构,由底向上依次是:
Hibernate->Spring->Struts->JSP+JSTL+DWR
DAO->Model->Controller->View

三、人员配置   
一个leader(M)+三个组员(A、B、C)

四、任务划分
M的任务1是:对象设计、平台搭建;
A的任务1是:界面设计;
B的任务1是:数据库设计;
c的任务1没有。

M的任务2是:用户管理模块、在线考试模块;
A的任务2是:题库管理模块;
B的任务2是:试卷管理模块;
c的任务2是:教师批改模块、分数统计分析模块。


失败原因
一、计划偏差
如果是设计优秀的软件,在模块开发上花的时间应该是页面开发所花时间的N倍(视软件的大小与复杂度),简单的给这两个部分一周时间不太合理。实际的情况也是这样,到项目结束的时候,很多模块都只完成了基本的部分,即没有开发完成。
教训:做需求时只能预估项目的计划。计划的具体制定应该在设计工作完成后考虑。

二、风险管理
在项目组中,每个人都有自己的繁重任务,可是在第二个星期时,组员C因为特殊情况退出了项目组,于是他所负责的模块空置一旁。因为没有预料到这个突发情况,项目组也没法再添加组员进来。
教训:M应该有处理组员突然离开风险的准备。

三、时间控制
项目总的时间只有一个月,但是四位成员全部都有其他重要的事务须处理,这些其他的工作至少用掉每个成员10天的时间。项目进度因此严重滞后。
教训:M已经知道成员们会分心处理其他的事务,且项目时间无法延长的情况下,在需求和设计时应该压缩功能。

四、技术问题
对项目组的四位成员来说本次软件的框架都不太熟悉,在项目的开发过程中都经历了一个了解熟悉的过程。这样的一个过程也让项目的进度跟着拖累。并且由于对技术的不熟悉,成员们的开发效率也是令人头痛的问题。
教训:作为程序员应当熟悉软件开发中的各项技术,平时就需要磨练自己的技艺,不能抱着到实际项目中用用就会的思想。对于项目的计划制定者也需要将项目成员的技术问题考虑到,留出一定的时间学习是必要的。


项目结果
从后台到页面全部完成的模块有用户管理、题库管理。其它模块都在半完成或没启动状态。

评论

# re: 一份考试系统项目的失败报告  回复  更多评论   

2006-11-02 01:20 by njwander
呵呵,拖楼主后腿了。

只有注册用户登录后才能发表评论。


网站导航: