第一次迭代开发有感

前言:时光飞逝!第一次迭代开发已经过去大概一周的时间了,有必要来个小结了。

   下面我就参考老师给出的模板,来对我们组第一次迭代开发做一个小结。

设想和目标

1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?

  • 我们的项目是要做一个创新课程管理系统。根据指导老师的要求,就是做一个适用于本门(软件工程导论)课程的一个管理系统,web端应用程序。具体点来说,就是类似于我们大二上数据结构课使用的超星系统。(而在超星系统中,我们仅仅充当的是学生的角色,上传作业,接收老师发的通知等等。但是我们组要做的是一个完整的课程管理系统,参加课程的学生、助教、老师、学校和系统管理员都要使用的一个系统)
  • 需求还是定义的比较清晰的。
  • 典型用户:学生、助教、老师、学校管理员、系统管理员
  • 典型场景:
  1. 课程初期学生选择队员组成结对编程和团队项目的团队、课程初期学生选择批改结对编程和团队项目作业的助教、组队完毕后团队项目的小组选择老师发布的项目、学生接收老师发送的通知、学生查看本门课程老师上传的资料、学生提交自己的个人编程、结对编程和团队编程(比如每周的周计划、周总结等等)的作业、学生查看作业的分数……
  2. 助教批改自己负责的学生的作业,并打分、助教接收老师发送的通知、助教查看未按时交作业的学生,并负责发送通知……
  3. 教师上传学生信息表和助教信息表向系统导入学生角色和助教角色的用户、教师发布作业、教师发送通知、教师发布团队项目供小组选择、教师查看系统推荐的资料、教师上传自己的课程资料并设置权限、教师查看助教批改作业的情况并可以修改分数……
  4. 学校管理员导入本校使用系统的教师信息、学校管理员发送通知……
  5. 系统管理员导入使用系统的学校和学校管理员的相应信息、系统管理员设置各种不同角色(如学生、助教和教师)的权限……

2. 我们达到目标了么(原计划的功能做到了几个?  按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)

  • 整体上来说达到了第一次迭代版本的目标,但是过程十分狼狈,在此就不一一赘述了……
  • 原计划:实现教师的课程资料和个人资料的增删改查以及上传功能,人员管理中助教和学生表的增删改查功能,以及每个角色的账号管理,服务器搭建等等。
  • 已按照原计划时间上交检查。
  • 由于是第一次迭代的alpha版本,所以目前还没有用户数量,只是开发人员在浏览器上测试。

3. 和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?

  • 这是项目开发的第一次迭代,所以这个问题留待下次回答。

4. 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?

  • 目前没有用户,所以这个问题留待下次回答。

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

  • 开发工作不能拖延,一拖再拖的结果只能是最后不能完成任务。平时就要分出任务然后认真学习,尽量在规定时间内落实完成自己的任务。由于我们组开发用的是指导老师要求的guns框架,所以前期会有很多不懂的地方,比如springboot、maven、mybatis-plus等等很多知识。但是不能畏难,要大胆去开发,实现,实在遇到不懂的地方再有针对性地去学习,而不能像第一次迭代那样打着学习guns框架的幌子而停滞不前。总之开发的过程中遇到难以解决的bug是很常见的事情,我们不能过于畏惧而失去了对项目的热情。只有在错误中才能成长。

计划

1. 是否有充足的时间来做计划?

  • 有很充足的时间做计划。我们组项目的功能很繁杂,所以前期在需求分析阶段花费了很多很多的时间,但是也导致了一个问题就是我们的开发时间更少了。然后到了后期,由于需求太多,有一些小的细节都有所遗忘。

2. 团队在计划阶段是如何解决同事们对于计划的不同意见的?

  • 当有不同的意见时,我们会很认真地进行讨论,从复杂程度、将来开发的难易程度、对用户是否足够友好等很多方面进行讨论,最终选择一个更好的方案。

3. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?

  • 并没有。原计划的上传文件以及批量读入数据工作本来也想写进alpha版本的,但是后期发现代码一直有bug,而且bug没有得到解决,最后就没有做出这个功能。是技术方面的原因,对guns框架的了解程度不够,然后写自己的业务代码时就会一直报错,试了很多办法也没有解决。

4. 有没有发现你做了一些事后看来没必要或没多大价值的事?

  • 前期对项目原型的设计花费了不少时间。由于我们项目的功能比较多,原型方面要做的页面比较多也比较复杂,所以就花费了很大的精力来设计原型,后来我们决定用框架时,发现原型没有多大帮助,之前的精力都浪费掉了。

5. 是否每一项任务都有清楚定义和衡量的交付件?

  • 是的。前期我们的任务是按角色划分,每个人负责一个角色,然后做响应角色的功能分析、页面设计等等。后期开发也是按功能点划分,比如文件的上传下载、Excel的导入、功能菜单的实现等等。

6. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?

  • 项目确实是按照老师规定的计划进行。但是在开发阶段,框架的难度和复杂度是我们没有料到的,因为它涉及很多我们没有学过的知识,比如springboot、maven、mybatis-plus、jquery、shiro等等很多知识,如果不了解这些知识,就读不懂它的代码。如果没有读懂它的一些代码,我们开发过程出现bug就很难解决了,另外,开发也有难度。

7. 在计划中有没有留下缓冲区,缓冲区有作用么?

  • 没有。

8. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)

我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

资源

1. 我们有足够的资源来完成各项任务么?

2. 各项任务所需的时间和其他资源是如何估计的,精度如何?

3. 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?

4. 你有没有感到你做的事情可以让别人来做(更有效率)?

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

 

变更管理

1. 每个相关的员工都及时知道了变更的消息?

2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?

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

4. 对于可能的变更是否能制定应急计划?

5. 员工是否能够有效地处理意料之外的工作请求?

我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

 

设计/实现

1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?

2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?

3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?

4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?

5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?

我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

 

测试/发布

1. 团队是否有一个测试计划?为什么没有?

2. 是否进行了正式的验收测试?

3. 团队是否有测试工具来帮助测试?

4. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?

5. 在发布的过程中发现了哪些意外问题?

我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

团队的角色,管理,合作

1. 团队的每个角色是如何确定的,是不是人尽其才?

2. 团队成员之间有互相帮助么?

3. 当出现项目管理、合作方面的问题时,团队成员如何解决问题?

每个成员明确公开地表示对成员帮助的感谢 (并且写在各自的博客里):

我感谢  _______<姓名>______对我的帮助,  因为某个具体的事情: _____________________。

我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

总结:

你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
      你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
      你觉得团队在这个里程碑相比前一个里程碑有什么改进? 
      你觉得目前最需要改进的一个方面是什么?

对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例。

博客要附上全组讨论的照片。

原文地址:https://www.cnblogs.com/qqzjyywx/p/10092536.html

时间: 2024-09-28 09:10:44

第一次迭代开发有感的相关文章

第一次迭代开发心得

通过第一次迭代,我真正意义上地体会到了当程序媛的感觉.有面对bug时的抓狂,有解决bug时的喜悦,也知道了整整一天都在码代码是什么感觉. 接下来就说一说我们组项目(基于联邦型知识图谱上的搜索引擎)第一次迭代的心得. 一.起步 因为之前大部分时间一直都在写各种各样的文档,所以我们的项目起步比较晚,真正意义上编写代码的时间只有不到两个礼拜.而且,我们当初把项目实现想得过于理想,导致后来时间有些不够用,所幸,在验收前一天,大家一起在图书馆泡一天,最终实现了第一次迭代的需求.这也是下次迭代需要注意的地方

在线电力监测系统——第一次迭代开发心得

第一次做项目,第一次用javaee开发web工程项目,很多东西不会,摸着石头过河,也学到了很多东西. 第一次迭代开发,小组总体做出来的东西不多,与计划相比少了不少.完成的大致有两个半模块,其一是登录注册,其二是报警信息展示,其三是工单处理,还在技术上研究了动态数据在图表上的动态展示的实现(基于单个数据项的展示).总体来说,很多后台工作没实现,前端做的页面倒是蛮多,交互功能也有,前端的工作进度是先于后台的:后台开发的滞后性,以致于功能模块的集成进度受到了阻碍. 后台人员主要做了登录,注册,验证码验

第一次迭代开发心得——短视频APP项目

第一次迭代开发已经结束将近一个星期了,不管结果如何,完成与否,或多或少有些许收获. 首先知识上,对后台开发有了初步的认识,但是还说不上入门吧,毕竟没有系统的学习,都是做项目缺什么去学什么(很想系统的学一下,说实话的话),最开始的时候连用什么做都不知道,到处去查资料.问学长,学长最后给的建议是用Spring框架,但是去摸了一下,感觉很难理解,就像还不会走路就开始跑一样,然后就得到了一条建议,先从servlet开始(那时候javaee才刚开始servlet又是后面的内容,所以找到这个方式花了不少时间

第一次迭代开发总结

上周进行了Alpha版本项目的验收,为第一次迭代画上了句号.以下是我对本组项目第一次迭代的思考与总结: 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 产品定义:我们软件定义明确,是为需要使用车辆的用户提供及时租车功能: 典型用户:出差在外上班族: 典型场景:机场. 2. 是否有充足的时间来做计划? 时间充足.每周每位成员都有本周必须完成的各自的任务,所以项目进度比较快. 3. 团队在计划阶段是如何解决同事们对于计划的不同意见的?  通过沟通

创新课程管理系统-第一次迭代开发心得

第一次做项目,第一次用javaee开发web工程项目,很多东西不会,摸着石头过河,也学到了很多东西. 第一次迭代开发,小组总体做出来的东西不多,与计划相比少了不少.完成的大致有两个半模块,其一是登录注册,其二是报警信息展示,其三是工单处理,还在技术上研究了动态数据在图表上的动态展示的实现(基于单个数据项的展示).总体来说,很多后台工作没实现,前端做的页面倒是蛮多,交互功能也有,前端的工作进度是先于后台的:后台开发的滞后性,以致于功能模块的集成进度受到了阻碍. 接下来就说一说我们组项目(创新课程管

快易需求文档编辑系统(二期)第一次迭代开发总结

设想和目标 1.目的: 项目为"快易需求文档智能生成系统".软件需求文档是软件开发与维护的重要基础,本项目希望通过建立一个专业的需求文档编辑系统,为软件开发人员提供一个便捷的协作文档编写工具,推动需求文档编写的规范与文档重用工作.同时,也为广大软件公司提供一个随时可以访问的平台,推广快易文档编写系统. 2. 成果:完成了原定计划中所有第一次迭代的功能和部分第二次迭代的功能. 3. 提高:所有成员各司其职,完成了自己的任务,比起最开始的一无所知有了很大的提升 经验教训:团队内需要多交流沟

第一次迭代开发——矢量图编辑系统

设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们设计的矢量图编辑系统主要解决变电站绘制电路图问题: 定义为以矢量图的方式绘制出电路图: 仅及于简单的用户与场景,尚未进行具体典型的用户与场景描述. 2. 我们达到目标了么(原计划的功能做到了几个?  按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?) 我们计划实现画元器件.添加任意元器件.对图形进行放缩.各元器件之间的规则连接.滚动条对画板进行拖动  更大的画图区域.图形元素的点

Team--时代团队第一次迭代总结

一.设想和目标 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件<flappy bird>是一款全新动作类的游戏,与市面上的存在的游戏不一样的是,我们增加了很多功能.从传统的单人作战,转变为更有趣的团队作战.从传统的单一模式转变为可以选择的游戏模式.游戏因此变得紧张成刺激.节奏感强,玩家在游戏中便能获得更多的乐趣与成就感.从而既解决了flappy游戏相对比较枯燥无聊被动的问题,使玩家能够乐在其中,又不会像大型游戏一样占用玩家过多的时间精力,

第一次迭代总结和思考

第一次迭代上周结束了,总的来说相比较有一开始收获是非常大的.重新开始学习一种语言,熟悉相应的开发环境,掌握编码规则,都是不可多得的体验和收获. 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们软件很明确的定义,就是一个统计实时噪声数据并绘制区域噪声地图,同时提供给用户需要的信息,之后政府也可以根据噪声数据采取针对性的措施 典型用户:学生(目前只能局限在湖大这个群体范围) 典型场景:交通,住房等人的活动区域 我们达到目标了么(原计划的功能做到了几