第一次迭代开发心得

通过第一次迭代,我真正意义上地体会到了当程序媛的感觉。有面对bug时的抓狂,有解决bug时的喜悦,也知道了整整一天都在码代码是什么感觉。

接下来就说一说我们组项目(基于联邦型知识图谱上的搜索引擎)第一次迭代的心得。

设想和目标

 1. 我们软件很明确的定义为,要解决基于联邦型知识图谱上的搜索问题,编写与论文对应的程序。

  典型用户为论文阅读者,及相关专业领域研究者

     典型场景:搜索技术相关领域

2. 第一次迭代开发目标完成。

    原计划功能:登录、注册、匿名搜索、登录搜索、展现结果。

    实现功能:登录、注册、匿名搜索、登录搜索均已实现,展现结果方面仍需优化。

    因为本次是第一次迭代开发,所以并没有用户使用。

3.有什么经验教训? 如果历史重来一遍, 我们会做什么改进?

    团队开发时要及时地相互沟通,否则对接时会很费时费力。使用github或腾讯工蜂平台进行代码管理。

计划

1. 有很长一部分时间都在做计划。所以整体来说,计划方面相对来说做得还不错。  

2. 在整个第一次迭代的过程中,我们小组采取的是按照核心算法实现:前端网页设计:与数据库交互:与服务器交互=3:2:1:2进行分工的,在人员分配上,感觉还是较为合理的,如果哪一模块遇到问题长  时间没有解决的话,其它组员会对其帮忙。(但是感觉这样效率比较低。。。)

3. 在某些事情上有些浪费时间:在开发上,我们使用的是eclipse,这里不得不吐槽一下eclipse。。。经常出现更改之后不更新的情况,程序本身没有问题,但eclipse单方面出bug,导致我们在与eclipse斗智斗     勇时浪费了很多时间。所以我们决定第二次迭代开发使用idea。

4. 项目的整个过程都按照计划进行,项目中途服务器出现一些问题。服务器被侵入挖矿程序当时没有预计到,风险评估没有到位。

5. 在计划中没有留下缓冲区,导致开发后半段十分紧张。迭代开发验收的前两天,边老师突然在群里发了一份儿验收要求,仔细一看,我们组当时做的没有几条是符合要求的。于是我们赶紧加班加点按照老师的要求各种改代码,找bug。这也给我们一个教训,不要正好卡在ddl完成项目,一定要留出充足的时间去应对各种突发情况。幸运的是,最终验收结果还算较为满意。

6. 将来的计划将留出充足的时间检测bug,尽量将进度往前赶。

资源

1. 我们有足够的资源来完成各项任务。但是服务器性能方面可能稍有欠缺

2. 各项任务所需的时间和其他资源是通过其大致专业难度,听取老师意见决定的。

3. 对于那些不需要编程的资源 (美工设计/文案)没有低估难度。一共分配了两个人做前端,所以对前端设计方面较为满意。

变更管理

1. 因为我们小组每周都会开一次项目例会,汇报自己本周进度,所以每个相关的员工都可以及时知道了变更的消息。

2. 我们采用了举手表决,少数服从多数的方法,决定“推迟”和“必须实现”的功能。

3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义:

    我们的基础目标都实现,搜索能够得到预测结果即为做好了。

4. 对于可能的变更没能制定应急计划,这点需要改进。

5. 组员能够有效地处理意料之外的工作请求。(不过可能需要熬个小夜,多掉几根头发。。。)

6. 学到了什么?

    团结就是力量!一定要一起向着共同的目标努力!

设计/实现

1. 设计工作在项目初期,由大家共同规划,最后由pm做最终决定,并与老师沟通。

2. 设计工作碰到模棱两可的情况,团队举手表决。

3. 团队运用UML来帮助设计和实现。工具有效。 比较项目开始的 UML 文档和现在的状态,发现有些逻辑在实际实现中发生了改变。需要要更新 UML 文档。

4. 前端页面注册登录功能产生的Bug最多,因为在这个模块中需要反复测试各种错误提示。

5. 代码复审(Code Review)是小组间互相审查的,较为严格地执行了代码规范。

6. 因为之前大部分时间一直都在写各种各样的文档,所以我们的项目起步比较晚,真正意义上编写代码的时间只有不到两个礼拜。而且,我们当初把项目实现想得过于理想,导致后来时间有些不够用。

由与我们是第一次迭代开发,所以并没有测试发布。

团队的角色,管理,合作

1. 团队的每个角色是通过表明自己所擅长或感兴趣的方面来确定的,大致做到了人尽其才。

2. 每次遇到问题时,团队成员之间能够做到互相帮助,团队氛围极其融洽。 

3. 当出现项目管理、合作方面的问题时,团队成员通过讨论开会达成一致,大家虚心请教。

总结:

      我觉得团队目前的状态属于 CMM/CMMI 中CMMI一级,初始级。

      我觉得团队目前处于磨合 阶段。

      团队在这个里程碑相比前一个里程碑彼此之间更加熟悉,沟通起来更加顺畅。

      我觉得目前最需要改进的一个方面是团队分工方面,有的人任务重,有的人任务轻,需要再做调整;时间分配也需要再重新考虑,不要都等到最后。

-------------------------------------------------------  我是分割线  --------------------------------------------------------------

    在经过了这段时间的实践之后,对项目有了大致的整体的把握,对各环节有了更清晰的认识与规划。我对联邦行rdf、知识图谱和搜索引擎也有了较为深刻的了解。这对我来说是一个全新的体验。于是从零开始一步步编码开发。在过程中,除了克服自己负责区域的困难之外,对于有需要和软件衔接的问题,还与小组成员一起在一次次的磨合中找出了解决方案,有妥协,有商量,分阶段对成果进行总结,分析,改进,及时调整研究方向的偏差,尽可能地保证了项目质量。

  经历了第一次迭代开发,收获颇丰。我开阔了眼界,勇敢的接受挑战,不畏惧去接触了解不懂得技术。我更清楚的体会到不断充实自己的知识是多么重要,我们不能局限于自己专业的知识,还应该广泛的涉猎。通过实践,我也锻炼了自己行动实施的能力。虽然项目进展过程中我们也遇到了很多困难,但我们小组成员都以积极向上的心态去应对,一次次通过努力越过难关给我们带来了一段段难忘的回忆。

  相信第二次迭代开发我们也会取得满意的成果的!

原文地址:https://www.cnblogs.com/ttyape/p/10085327.html