一、作业描述
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10863 |
团队名称 | <鸽子开发组> |
这个作业的目标 | <总结软件开发过程的经验和教训> |
作业正文 | 如下 |
其他参考文献 | 无 |
二、设想和目标
问题1:我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
回答:
- 我们软件需要实现基于web端及客户端的网盘系统,用户通过使用该软件在网页终端或客户端完成上传文件、快速下载文件、查找文件等信息整合操作。
- 软件定义清楚,需解决的问题定义清楚。
- 典型用户为有文件上传,文件存储,文件下载需求的人群,典型场景为网络状态良好,用户待上传或待下载文件准备完毕。典型用户定义较清晰,典型场景定义较模糊。
问题2: 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
回答:
- 基本实现目标,项目实现了web端的文件上传,存储,下载及分享功能,但在客户端由于对自身能力的预计错误,所以没有达到设想目标。
- 项目按原计划时间交付。
- 至于用户数量,由于项目处于初上线阶段,使用用户数量处于上升阶段,虽然暂时未达到预计数量,但按照目前用户数量上升趋势,完全可达到预计用户数量。
问题3:和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?
回答:
- 根据燃尽图及其他项目动态信息,该阶段的软件工程质量较上一阶段有所提高。
- 具体体现在软件代码的实现速度及实现质量有所上升,组员间的交流程度有所加深,项目各个模块之间出现的错误反馈速度有所提升。
- 具体衡量标准还有待研究。
问题4:用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
回答:
- 用户量在前文中已经交待,用户量可达到预期。
- 在对使用用户的抽查询问中,用户对我们项目的重要功能的接受程度比我们预期的要好一点,用户对文件上传,存储,下载功能的满意度符合我们的预期。
- 我们离目标更近一步了。
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
回答:从整个项目开发的设想和目的来看,我们的经验教训主要有如下几点:
- 要清楚项目所需使用的技术是否可行,如果不行,是否可以使用其他技术进行替换?
- 不要对自身情况有盲目自信,对所掌握的技术知识也不要盲目自信。
- 开始时的目标要较明确,不是不可更改,但最好开始就定义清楚,后期尽量少改。
改进:如果历史重来,我们可以做如下改进
- 借鉴已有的类似产品了解开发项目所需的技术及是否存在可替换的技术。。
- 项目开始时要对组员每个成员进行能力评估,了解每个组员实际掌握什么技术,还需学习什么技术。
- 借鉴已有项目进行初次目标设定,后续召开多次全组会议,集思广益,让全组人员参与到项目目标的定义,在筛选出合理的意见进行归纳。再在全组会议时宣归纳出的设想和目标。
三、计划
1. 是否有充足的时间来做计划?
- 有,在项目冲刺开始前我们完成了软件开发前的许多准备步骤,写好了需求规格说明,制定好了计划。
2. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
- 遇到不同意见,一般先开会讨论,然后少数服从多数
3. 原计划的工作是否最后都做完了? 如果有没做完的,为什么?
- 没用,因为我们对于自己的能力过于自信,一些功能因为技术的原因没有实现
4. 有没有发现你做了一些事后看来没必要或没多大价值的事?
- 没有,做的每份工作都是有价值的
5. 是否每一项任务都有清楚定义和衡量的交付件?
- 是的
6. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
- 前面整个过程都在按计划进行,到了冲刺阶段发现GUI界面实现不了,只能写web端来实现。以为我们能够做出来。
7. 在计划中有没有留下缓冲区,缓冲区有作用么?
- 留有缓冲区,缓冲区主要是针对第一次迭代的内容完成一定的集成,并开始学习有关后台开发和网络编程协议有关的内容。
8. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)
- 合理的规划好时间,加强组内的交流。
9.我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
-
了解了软件开发的流程,对于前后端有了一定的学习,还了解到了做出一个软件是多么的困难,更何况要做出一个好的软件。
脚踏实地的根据自己的能力计划好步骤,合理的安排时间。
四、资源
1. 我们有足够的资源来完成各项任务么?
- 技术资源足够,基本花费大多的时间来学习,边学习边开发
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
- 有初步计划,任务进行中根据实际情况进行逐步讨论完善,精度较为粗略
3. 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
- 各模块先自行测试再进行统一测试,硬件资源足够,美工设计/文案方面低估了难度
4. 你有没有感到你做的事情可以让别人来做更有效率?
- 没有,基本上是根据团队成员想学习或擅长的方面进行的分工
5.有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
- 重新考虑任务难度及实现情况,团队交流情况,避免成员任务分配不均、难度相差大。
五、变更管理
1. 每个相关的员工都及时知道了变更的消息?
- 是的,有变更消息时会在团队群内通知,积极讨论,确定分工
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
- 根据任务的实现难度、时间规划和进度团队开会探讨出有效方法
3. 项目的出口条件(什么叫“做好了”)有清晰的定义么?
- 有,在我们组项目的需求规格说明书中的具体需求、验收验证标准模块中有清晰的定义
4. 对于可能的变更是否能制定应急计划?
- 能,团队能及时提出突发情况,并及时进行沟通,快速制定应急计划
5. 员工是否能够有效地处理意料之外的工作请求?
- 能,队员积极性高,沟通迅速,工作效率高
6.我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
- 我们学到了许多新软件、新工具的使用,也学习了新语言,加强了沟通能力;我们会在后期增加验证码功能 ,以提高登录、注册、找回密码时的安全性 ,会完善文件审查功
能。
六、设计/实现
1.设计工作是在什么时候,由谁来完成的?
- 在项目需求分析的时期完成设计工作,由团队全体人员共同完成。
2.团队设计时有没有遇到意见不一致的时候,是怎么解决的?
- 肯定会有的,我们都是通过会议,尽可能的做到统一的意见,综合意见做到最佳。
3.什么功能出现的bug最多,以后是否会改进?
- 离线下载目前还没有做出功能,只是个单纯的界面,后续通过迭代会推送出不同的新功能的。
4.在设计之初的模型是否与最后实现的软件相一致?如果不一致,导致不同的原因是什么?
- 其实我们最后上线的成品与最初的模型不一样,最开始是打算上线的GUI软件,最后还是做成了网页的样子。因为能力有限,加上时间确实不是很充足,导致最后实现的并不是最
初的样子,以后会改进的。
5.回过头来,是否对自己团队成品感到满意?
- 还是比较满意的,其实享受的并不是最后的成果,最主要的是在设计之初到最后看到成品之间的过程。回过头来,虽然感觉有些疲倦,但是过程还是很美好的。
七、测试和发布
1.团队是否有一个测试计划?
- 有,每当完成一个模块,就会由小组的测试人员进行单元测试,最后项目实现后
小组成员共同完成测试,并提出存在的问题
2.是否进行了正式的验收测试?
- 小组成员完成了验收测试,也有其他用户进行了测试
3.团队是否有测试工具来帮助测试?
- 浏览器的控制台,JProfiler
4.团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
- 通过人工评测浏览器控制台的后台信息,以及在代码中添加测试类完成测试。这些测试工作肯定是
有用的,我们还是能发现我们程序中的许多不足的地方,例如上传文件时可能出现BUG,以及部分功能尚未完成。我
们会继续改进,首先继续完善一些需要的功能,其次要对出现的BUG进行修复。后期增加验证码功能 ,登录,注册,
找回密码的时候 以提升安全性
八、团队的角色,管理,合作
1. 团队的每个角色是如何确定的,是不是人尽其才?
- 基本根据团队成员想要学习的方面或者擅长的部分确定的
- 基本上是人尽其用
2. 团队成员之间有互相帮助么?
- 有,无论是线上线下都乐于帮助队友解决难题
3. 当出现项目管理、合作方面的问题时,团队成员如何解决问题?
- 团队成员及时讨论交流、汇报实际进度和完成情况,基本没有出现问题
感谢环节
- 唐巍、水浩铧:我感谢全体成员的相互配合,一个项目的完成与团队中每个成员的努力都不可分割。从互不认识的几个人,到一起合作完成项目,感谢每个成员,很高兴重新认识大家。
- 魏博硕:我感谢我们组所有人对我的帮助,同时不管临危受命还是大家在期末周一边复习一边写代码、写博客汇报,没有一个人说不,大家一起解决问题、思考问题、安排计划、临时变更,很高心也很荣幸能和大家一组。
- 卿随竞:我真心感谢唐巍大佬对我的帮助,在代码调试上对我帮助很大
- 王海翔:我感谢我们组所有人对我的帮助,大家相互分享、相互学习、取长补短。
- 陈承:我感谢全体成员对我的帮助,我们从不太认识的几个人,到一起合作完成项目,从中学到了太多,感谢每个成员对我的耐心和帮助。
- 王屹杰:我感谢水浩铧对我的帮助, 因为他在我不知怎么做项目时为我指明了方向
- 李宇轩:我感谢所有人对我的帮助,是你们教会我团队的力量并且对我的代码提出了一些有益的建议
- 周伊鑫:我感谢全组队员对我的帮助,组内学习交流氛围很好,互相学习我们这一组缺了谁都是不完整的,缺了谁都很难会达到目前的完成情况,再次感谢全组同学。
- 何莹:我感谢所有人对我的帮助,是你们让我看到自己身上的优点,很感谢大家
九、总结:
1.你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
- CMMI二级,管理级。对项目有一系列管理程序,避免了软件组织完成任务的随机性,保证了软件组织实施项目的成功率。
2.你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
- 规范阶段
3.你觉得团队在这个里程碑相比前一个里程碑有什么改进?
- 大家的配合更加默契,同时我们会根据自己的擅长找到自己要负责的模块
4.你觉得目前最需要改进的一个方面是什么?
- 对我们能力的预估。一开始认为我们可以搞定客户端和网页端,但是我们发现由于时间的不足、能力的不足,我们及时调整步伐,还是在规定的时间交出了一个相对可以的网页版。
十、事后诸葛亮会议照片
十一、各组员对于最终项目成果的贡献度
成员名称 | 贡献比 |
---|---|
唐巍 | 10% |
水浩铧 | 10% |
魏博硕 | 10% |
王海翔 | 10% |
陈承 | 10% |
卿随竞 | 10% |
李宇轩 | 10% |
王屹杰 | 10% |
周伊鑫 | 10% |
何莹 | 10% |