第一次迭代开发心得
Posted mltr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一次迭代开发心得相关的知识,希望对你有一定的参考价值。
组名:Coding
项目名称:基于物联网的实时数据采集系统
第一次迭代开发已经结束了好久,但是一直不知道要每个人都要写一篇博客,所以迟到了很久。
一、设想和目标
1.1我们的项目要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们的项目是基于物联网的实时数据采集系统,典型场景是变电站的传感器数据采集以及设备管理(网关、传感器),典型用户是变电站数据采集系统管理员;
1.2我们达到了目标了么(原计划的功能做到了几个?按照原计划交付时间交付了么?原计划达到的用户数量达到了么?)?
实现情况:首页登录、设备管理、账户管理模块实现;
交付:系统核心功能(设备管理)实现,暂未投入使用;
1.3用户量,用户对重要功能的接受程度和我们事先的预想一致么?我们离目标更近了么?
暂未投入使用,用户对重要功能的接受程度未知;
核心功能基本实现,离目标更近了;
1.4有什么经验教训?如果历史重来一遍,我们会做什么改进?
因为小组有些成员之前没有项目开发的经验,所以开发进度较慢,刚开始不知道从哪里入手,而且网关方面的知识比较匮乏,故投入大量时间精力学习相关知识,所幸在第一次迭代开发中基本实现了核心功能。历史不可能重来一遍,所以做好当下做的就是最好了;
二、计划
2.1是否有充足的时间来做计划?
做计划的时间刚刚好;
2.2团队在计划阶段是如何解决同事们对于计划的不同意见的?
开会讨论,每个人提出自己的意见,经过商量,达成一致;
2.3你原计划的工作是否最后都做完了?如果有没做完的,为什么?
第一次迭代计划我们都完成了,原因如下:
1)分工明确;2)周计划明确;3)开发人员努力工作;
2.4有没有发现你做了一些事后看来没必要或没多大价值的事?
没有,所有经历过的事情都是有价值的事情,只是价值大小的问题;
2.5是否每一项任务都有清楚定义和衡量的交付件?
是的,每一个功能模块的定义和交付件都很清楚;
2.6是否项目的整个过程都按照计划进行?
也不全是,因为还有其他课程要学习,期中考试也耽误了一点时间,所以拖了项目进度,但是一般都会在之后补上;
2.7在计划中有没有留下缓冲区,缓冲区有作用么?
有,但是意义不大,因为小组成员都有自己的时间安排,所以限制了缓冲区的意义;
2.8将来的计划会做什么修改?
1)周四晚上上完计组实验之后安排开会,讨论一周计划以及总结;
2)周五下午进行集中开发,前后端开发人员能够测试接口;
2.9我们学到了什么?如果历史重来一遍,我们会做什么改进?
学到了专业知识、拓宽了知识面、学到了团队意识,历史不可能重来一遍,所以做好当下做的就是最好了;
三、资源
3.1我们有足够的资源来完成各项任务么?
有,网关方面找一位大四的学长了解了情况,并拿到了一些软件资源;但是时间方面有时候会有限制;
3.2各项任务所需的时间和其他资源是如何估计的,精度如何?
因为组内成员有部分是第一次做项目,所以就是尽自己努力做,能做多少做多少,有问题了共同解决;
3.3测试的时间,人力和软件/硬件资源是否足够?对于那些不需要编程的资源(美工设计/文案)是否低估难度?
第一次迭代开发后的测试时间、人力、资源都足够,美工的话确实低估了难度;
3.4你有没有感到你做的事情可以让别人来做(更有效率)?
让大佬来做我做的事情肯定更有效率,但是大佬也有自己要做的,小组成员人数有限,总得有人做,所以自己的事情自己做;
3.5有什么经验教训?如果历史重来一遍,我们会做什么改进?
还是那句话,历史不可能重来一遍,所以做好当下做的就是最好,其实我觉得这都挺难的了;
四、变更管理
4.1每个相关的员工都及时知道了变更的消息?
我们用GitHub来进行版本管理,所以每个成员都能及时知道变更消息;
4.2我们采用了什么办法决定“推迟”和“必须实现”的功能?
功能分级;
4.3项目的出口条件(Exit Criteria—什么叫“做好了”)有清晰的定义么?
能够满足需求文档中的所有需求;
4.4对于可能的变更是否能指定应急计划?
没有制订应急计划,但是遇到变更能够及时做出调整;
4.5员工是否能够有效地处理意料之外的工作请求?
能构;
4.6我们学到了什么?如果历史重来一遍,我们会做什么改进?
历史不可能重来一遍,所以做好当下做的就是最好;
五、设计/实现
5.1设计工作在什么时候,由谁来完成的?是合适的时间、合适的人么?
设计工作是全组人员在需求分析阶段一起完成的;
5.2设计工作有没有碰到模棱两可的情况,团队是如何解决的?
有,通过组内成员协商解决;
5.3团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML,或者其他工具来帮助设计和实现?这些工具有效么?
因为还没有选修软件测试技术课程,所以并没有用到单元测试等;但是UML肯定是用到了,在需求分析阶段帮助设计、实现;
5.4比较项目开始的UML文档和现在的状态有什么区别?这些区别如何产生?是否要更新UML文档?
有区别,要更新UML文档,因为项目在推进的过程肯定会跟需求分析阶段有些许出入;
5.5什么功能产生的Bug最多,为什么?为什么我们在设计/开发的时候没有想到这些情况?
设备管理,删除传感器时没有考虑到取消按钮;
账户管理,没有提示密码的格式(长度、元素);
设计/开发的时候可能还考虑的不全面;
5.6代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
老师组织了代码互查,而且组内成员也经常监督彼此;
六、总结
就个人而言,这学期的项目确实有难度,因为之前从来没有接触过项目开发,而且本人在编程方面也不是很强,所以刚开始做肯定是有点懵,但是后来跟着组内的一位大佬一起做前端,学习html、CSS、javascript、jQuery、ajax等等,拓宽了自己的视野,增强了专业能力;虽然做的功能模块比较简单,但是我觉得总归是努力去做了,总比啥都不做、啥都不学强,对自己也算有个交代。
以上是关于第一次迭代开发心得的主要内容,如果未能解决你的问题,请参考以下文章