Blue Dream

记录成长的每一个脚印,写下漫长的程序人生
随笔 - 4, 文章 - 121, 评论 - 1, 阅读 - 89514
  首页  :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

一份软件项目的失败报告

Posted on   Dennis  阅读(416)  评论(0编辑  收藏  举报
一份软件项目的失败报告


就像某人说的失败并不可怕,可怕的是不知道从失败中吸取教训。


前言
本项目的目的是构建一个在线的考试系统,功能包括在线考试、用户管理、题库管理、试卷管理、教师批改、分数统计分析等。系统使用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已经知道成员们会分心处理其他的事务,且项目时间无法延长的情况下,在需求和设计时应该压缩功能。

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


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

(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示