现在的位置: 首页 > 综合 > 正文

项目经验教训总结(教育软件)

2013年04月29日 ⁄ 综合 ⁄ 共 3277字 ⁄ 字号 评论关闭

今年主要做的项目已经验收通过,做了一些经验教训的总结,记录于此:

一、项目的描述

    这个项目是一款院校的实验室软件,因牵涉到几个因素:政府拨款、新学院和新专业的设立、市场是的新产品,所以备受关注,各方领导都很重视。项目规模46人月,按照CMMI3的流程开发。

二、在项目中的工作

1.    需求的收集、需求分析;
2.    制定项目进度计划,控制项目进度;
3.    架构设计、系统设计、技术可行性研究、搭建开发框架、设计数据库;
4.    组建团队、管理项目团队,团队技能培训;
5.    核心功能编码开发;
6.    项目工作分配,开发工作指导,Code-review;
7.    跨部门工作沟通协调(数据采集、UED设计、系统测试);
8.    项目文档编制;
9.    项目信息发布,绩效报告;
10.    项目验收工作及发布工作跟进。

三、经验教训

1、    需求和范围
我总结的教育行业的软件有以下特点:
(1)客户一般不会提出详细的需求和范围;
(2)    需要走在行业的前沿,在能够提供教学辅助的同时也希望能够作为科研的工具;
(3)    市场上一般没有同样或者同类的产品可供参考;
      正因为我们这个项目有以上这些特点,所以在前期收集需求和进行设计的时候比较艰难,客户和我们对要做的东西都没有清晰的认识,都不知道需要哪些功能,界面应该是怎么样;后面我们通过对方案的理解,开发出系统的雏形(不仅仅是原型,因为这个雏形已经包括了基本的功能实现了),和老师进行讨论确认;然后回来后边开发边设计,系统需求渐进明细,最终这个系统才成型,当然中间也经历过数次的重复开发。
最值得一提的是,因为前期对数据采集的难度和规模估算的不充分,导致了系统功能做了大的调整。延误了一些工期。
2、系统架构设计方面
   系统数据访问层采用了的公司其他部门开发的框架,这个框架较常用的框架区别较大,也不是很成熟和完善(没有数据缓存)。尤其是开发人员对框架的理解和使用有些难度。所以在开发过程中出现了一些问题,甚至没有利用好这个框架的一些优点。例如,代码中出现了不少重复类似的取数据的方法,大量的SQL语句(没有合理利用方法的参数和方法重载)。以及大部分采用的DataSet的返回类型,没有利用好系统模型(Model)
页面布局采用了EASY UI的jQuery框架,总体效果还是比较好,大大的缩短了页面布局的开发时间。另一方面,因为使用了这个框架对系统的加载时间和页面的灵活性产生了一些消极影响。
3、 编码方面
     系统大量使用jQuery和Google Map API开发,通过这个项目,开发人员在ASP.NET、C#、jQuery、Google Map API、数据库等各方面都有较大的进步。以及在团队协作,代码版本控制等方面都有较大的提升。
     但是,在C#高级语言的高级功能(比如泛型、LinQ)使用,jQuery和SQL语句编写,以及代码组织的细节处理,以及对执行性能的考虑上还有很大的提升空间,对语言的处理机制的理解上有待更一步加强。
4、团队协作,团队建设
(1)沟通:在沟通方面总体效果比较不错,尤其是开发团队的内部沟通交流,团队成员之间的沟通积极性很高,相处的也很融洽和睦。跨部门的沟通也还行。可能在跟高级管理层方面的汇报沟通方面做得不是很到位。需要进一步改进。
(2)培训:培训工作在整个项目阶段一直在开展,效果也比较好,在很大程度上调度了团队成员学习和分享的积极性。但是由于场地和时间的约束,在培训的系统化和深入程度方面不是很理想。
(3)冲突:整个项目没有发生大的冲突,合理的冲突也都通过面对面的方式解决了。
需要认识一点,冲突是无法避免的,是正常的,它迫使我们寻找不同的解决方案;冲突的处理有很多种方式,作为项目经理,我应该掌握合适的解决冲突的方法和风格。,
(4)    团队建设活动、激励:在这方面的工作做得还不到位,需要重视和加强。
5、    进度计划制定,进度控制
一方面前期的设计工作不完整,系统开发采用迭代式的开发模式,很多设计采用的渐进明细的方式,所以对项目工作分解结构(WBS)的分解不充分,很多项目工作没有考虑到。
另一方面项目时间进度的规划上,没有合理估算系统测试和项目验收的时间。
6、    项目干系人管理
     所谓项目干系人就是受项目影响的人员和组织,对于我们的项目,干系人可能但不限于:客户,开发团队,测试团队,UED,QA,数据采集人员,产管会领导,事业部领导,事业部设计人员,事业部商务人员,营销体系相关人员,实施部门相关人员,运维部门相关人员,以及培训讲师等,可能还有采购相关的供应商等。
     整个项目在干系人管理这块做得不到位,没有认真的识别项目干系人,分析干系人的不同期望和需求,尤其是关键的干系人。以至于在项目信息发布的时候,项目沟通的时候有些不周到。这部分工作需要重视起来,项目经理75%-90%的时间花在跟各种干系人的沟通上,满足各个干系人的期望,顺利完成项目,这是项目经理的主要职责。需要认清这一点。
7、  项目风险管理
整个项目缺少对风险管理(risk management)的重视,没有认真的分析各个阶段存在的不同类型(外部:环境、客户、合作方;内部:需求、计划、人员、设计等)的风险。以至于每当出现了风险都只能采用应急应对。
在以后的项目管理上,要认真的识别项目的潜在风险,分析其发生的概率和影响,并在风险登记册(公司CMMI的《项目风险问题管理表》)上详细记录;
制定出当风险合理的预防措施(规避或减轻风险的发生)和应对措施(当风险发生时怎么处理);
定期更新和识别新的风险。
并将必要的风险告知高级管理层或其他干系人,让其知晓,并得到相关的支持。
8、  测试方面
项目采用的是迭代式的开发模式,但是测试却是采用的瀑布式,即在开发阶段结束之后才做集成测试,这存在很大的风险,尤其是前期没有对系统框架做性能测试。
幸运的是因为整个开发过程我们严格要求,开发人员积极主动测试,在后面的测试结果还比较令人满意:缺陷总数80,其中无效Bug或者协商拒绝的bug共13个,有效处理bug共67个。

缺陷严重程度统计:

缺陷类型统计:

从缺陷的类型上看,UI错误比重较大,很多是页面布局方式没有同意,比如按钮图标没有统一,按钮位置没有统一;表单输入的格式、范围、类型的验证问题;然后就是页面跳转,功能设计等用户体验方面的问题;其实这些问题是可以避免的,前提是我们所有开发人员有这方面的意识。所以在以后的项目开发中,一定要今早的规范这种质量要求,提高开发人员的质量意识;

    同时,测试人员的测试工作应该尽早介入项目,从需求讨论开始就应该让相关的测试人员参与,以便对需求有足够的认知,还能对系统的设计提出合理的建议。同时尽早开展测试工作,能有效降低项目的风险。

四、个人能力提升

个人在这个项目中收获还是挺多的。主要包括以下几个方面:

1、定制项目的掌握

首先是对这种外部客户定制型的项目的整个流程方面有了全面的了解。之前大部分做的对内的项目,队内的项目不涉及到合同、客户验收等方面的要求,但是对外项目的这块却是很重要的。怎样去跟客户打交道,怎样在和客户沟通和讨论的过程中处于主导的地位,引导客户的需求等等都是需要经验的积累。

2、了解了教育软件的研发特点,以及物流业务知识的提升。

与企业应用软件,信息管理系统相比,教育软件有其自身的特点,尤其是实验室的教育软件。只有掌握了这些特点我们才能设计和研发出客户需要的产品来;在这个项目的研发过程中也学习到了一些物流专业的知识,但是这些还远远不够,还需要继续加强学习;

3、项目管理能力的提升和经验的积累

通过这个项目,自己对项目管理有了一些新的认识,发现了自己之前忽视或者不够重视的一些过程领域。对项目管理整个的生命周期的各个过程的技能和知识有了更深入的掌握和理解。

4、研发技能的提升;

同时也提高了自己的设计和编码的能力;

5、CMMI流程的熟悉;

更加熟悉了CMMI的流程,以及对流程的认识;

6、文档编写能力的提高。

通过大量的编写文档,提高了自己编写文档的能力;

抱歉!评论已关闭.