zoukankan      html  css  js  c++  java
  • 一份软件项目的失败报告

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


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

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


    项目结果
    从后台到页面全部完成的模块有用户管理、题库管理。其它模块都在半完成或没启动状态。 
  • 相关阅读:
    jQuery 插件为什么要return this.each()
    Android中TextView setText int 报错
    局部打印插件 jquery.PrintArea.js
    Jdbc Url 设置allowMultiQueries为true和false时底层处理机制研究
    mysql-unsha1:在未知密码情况下,登录任意MYSQL数据库
    Wireshark实战之抓包MySQL Java客户端
    linux 文件句柄数查看命令
    Java1.8 JDK源码中,对两个类进行 按位与 操作是什么意思
    linux下面覆盖文件,如何实现直接覆盖,不提示
    比特币算法——SHA256算法介绍
  • 原文地址:https://www.cnblogs.com/wolflion/p/2539200.html
Copyright © 2011-2022 走看看