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

一、项目的描述

    这个项目是一款院校的实验室软件,因牵涉到几个因素:政府拨款、新学院和新专业的设立、市场是的新产品,所以备受关注,各方领导都很重视。项目规模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、文档编写能力的提高。

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

项目经验教训总结(教育软件)相关推荐

  1. java软件工程师工作业绩_嵌入式软件工程师-简历范文,【工作经历+项目经验+自我评价】怎么写...

    嵌入式软件工程师-简历模板下载 [网盘下载]100+清新大气简历模板: https://zhuanlan.zhihu.com/p/115911695 https://zhuanlan.zhihu.co ...

  2. 硬核软件开发者 30 多年的 11 条经验教训

    从非专业编程到专业的开发者,从 BASIC.C++ 到 Rust,在本篇文章中,已在软件开发行业摸爬滚打 30 年的老兵将带来自己最为深刻的 11 个经验教训. 作者 | Dean Roddey 译者 ...

  3. 软件自学成才到公司要学历吗_来自7位自学成才的编码人员的经验教训,他们现在全职从事软件开发人员的工作...

    软件自学成才到公司要学历吗 How can you stay motivated while learning to code? 在学习编码的同时如何保持动力? Studying web develo ...

  4. 我的软件开发中经验教训

    作者:追梦1819 原文:https://blog.csdn.net/weixin_39759846/article/details/116780540 版权声明:本文为博主原创文章,转载请附上博文链 ...

  5. 软件开发流程(一):总结软件开发流程的经验教训

    背景 复习软件开发过程可能出现的问题. 沉淀经验教训. 过程 "如果你不知道如何写代码,是因为你的需求不明".分享一个有力的观点.这是刚入行的时候,同事告诉的. DDD过程 业务研 ...

  6. 项目文件2 问题日志 经验教训登记册 里程碑清单 实物资源分配单 项目日历 项目沟通记录 项目进度计划 项目进度网络图

    9. 问题日志 在整个项目生命周期中,项目经理通常会遇到问题.差距.不一致或意外冲突. 项目经理需要采取某些行动加以处理,以免影响项目绩效. 问题日志是一种记录和跟进所有问题的项目文件,所需记录和跟进 ...

  7. 经验教训 软件开发_软件可靠性的教训

    经验教训 软件开发 构建可靠和稳定的企业软件需要什么? 首先,停止编写糟糕的代码 不幸的是,很少有开发人员熟悉MITER Corporation的常见软件问题的Common Weakness Enum ...

  8. 经验教训 软件开发_我作为开发人员10多年的经验教训

    经验教训 软件开发 12个月. (12 months.) That's the time we wasted while rewriting our software from scratch. 那是 ...

  9. 去年一个百万级的小软件项目经验分享,20来个功能模块,项目不太好做有些棘手...

    别人总觉得是在显吧,干脆把这个项目认为是小项目了,不知道把这个项目是小了,别人会不会又觉得又显吧了?说大也不行.说小也不行,也的确没招了. 我想主要把项目里遇到的问题分享给大家一起探讨,也并不是为了什 ...

最新文章

  1. python 空数组_【python三级】二维数组的表示
  2. AndroidAnnotations框架简单使用方法
  3. 作图像处理时常用的C/C++语句积累!
  4. 二分查找的最大比较次数
  5. STM32中断方式接收方式每次一个字节同时发生接收一段时间后不能再次接收问题
  6. ZOJ 2760 How Many Shortest Path 最大流+floyd求最短路
  7. webharvest-sample-1
  8. 软件开发流程——V模型
  9. 服务器销售年终总结ppt模板,it运维工作总结ppt模板
  10. app版本更新提醒方案
  11. 怎么设置计算机桌面壁纸,电脑桌面壁纸无法设置如何处理
  12. 2022-0828-0640,中文分词,逆向最大匹配算法 RMM
  13. 2022年建筑装饰行业报告:企业微网蓄势待发,万亿赛道谁主沉浮?
  14. FCFS,SJF以及PSA进程调度算法效率的比较
  15. php日期格式化年月日时分秒,php Date()函数输出中文年月日时分秒
  16. Unity中点击物体后让其消失(注意:要使用hit.collider,而不是this,要时刻注意你要哪一个消失)
  17. 计算机毕业设计(附源码)python智能仓储进出货管理系统
  18. DB2中对比两个表之间的数据差异
  19. Scratch(四十七):歌唱国歌
  20. 批量将文本文件转换为语音文件,看书变成听书。

热门文章

  1. html多行多列的表单,如何制作多行多列的表格
  2. Cleaning-Data-in-Python
  3. Redis学习笔记(B站狂神说)(自己总结方便复习)
  4. unity photon中技能效果网络同步
  5. 分享一个做简历的网站
  6. 孟岩:通证经济设计的七个原则,八个陷阱和十一个模板
  7. #9733;平衡法则在生活中的应用
  8. 蓝桥杯 时间管理大师
  9. 我的 Python 全栈开发自学笔记
  10. R语言 类别数据可视化(1)