1.设想和目标
1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们的软件要解决的就是学生作业多、乱而导致的学生漏写作业,忘交作业等问题,给予学生和老师一个相互交流的平台,更加方便课程的学习。
对典型用户和典型场景有清晰的分析(见之前博客)
2.是否有充足的时间来做计划?
有充足时间来做计划
3.团队在计划阶段是如何解决团队成员对于计划的不同意见的?
当出现意见分歧的时候,我们会各抒己见,之后相互讨论,得出最佳解决方案。
2.用户量、用户对重要功能的实现的接受度和我们事先的预想一致吗?我们离目标更近了吗?有什么经验教训?如果历史重来一遍,我们会有什么改进?
我们预想的差不多,离我们的目标更近一步。而且我认为实用性还是比较强的,功能方面可能还需要进行改进、完善、更新。如果重来一遍,我们依旧是会重抓功能实现,当然也要包括页面的设计,布局合理。
3.计划
1.你原计划的工作最后是否都做完了?如果没有做完的,为什么?
做完大部分,因为有一些功能需要的技术相对较高,还不能实现。
2.有没有发现你做了一些后来看来没有必要或没有多大价值的事?
有,我们在考虑有关程序性质的时候,还进行了安卓、微信小程序方面的学习,但最终还是选择网页的方式。
3.是否每一项任务都有清楚定义和衡量的交付件?
不是所有的任务都有,起初对网页的实现并不是那么熟练,还是需要通过高强度的学习来进行下一步的完善,所以并不是所有的任务都有清楚定义和衡量的交付件。
4.是否项目的整个过程都按计划进行?
不是,在某些功能板块因为确实实现不了,所以选择了放弃,中途中还添加了一些新的功能。
5.在计划中有没有留下缓冲区,缓冲区有什么作用?(例如:缓冲区的定义,加班)
有,虽然网页版相对其他性质的作品来说,可能较简单一点,但其中许多功能的实现还是需要自学的(作业评论功能)等。
6.将来的计划会做什么修改?
按照原计划进行。功能方面可能会进行删减。
4.我们学到了什么?如果历史重来一遍,我们会做什么改进?
明白了任何强大的实现都是在高强度知识的积累下完成的,没有天生什么都会的人。如果历史重来,我们会先进行学习,知识积累到一定程度后再进行冲刺,应该会感到更加轻松一点。
5.资源
1.我们有足够的资源来完成各项任务吗?
有足够的资源。
2.各项任务所需时间和其他资源是如何估计的,精度如何?
所需时间和其他资源是根据个人的实际情况来估计的(比如谁更擅长什么),结果精度虽然和实际情况有很大区别,但我认为是最好的结果。
3.测试时间、人力和软件/硬件资源是否足够?对于那些不要编程的资源(设计/文案)是否低估难度
测试时间、人力等这些还不不够,低估了那些不需要编程的资源的难度。
4.你有没有感到你做的事情可以让别人来做(更有效率)?
我们团队的任务的分配都是按照擅长程度来划分的,所以认领的任务一定是最适合自己的。
6.有什么经验教训?如果历史重来一遍,我们会做什么改进?
我们的经验教训就是要找到充足的资源,做每件事之前都要准备好一切,以备不时之需。
7.变更管理
1.每个相关的组员及时知道变更的消息吗?
能够及时知道,我们会通过QQ群,或者开会的形式及时通知。
2.我们采用了什么办法决定“推迟”和“必须实现”的功能?
我们通过开团队会议,投票选出必须实现的功能,和可以推迟的功能(较难实现)。
3.项目的出口条件(Exit Criteria——什么叫“做好了”)有清楚的定义吗?
有,就是将程序基本的功能实现。
4.对于可能的变更计划是否能制定应急计划?
可以
5.员工是否能够有效地处理意料之外的工作请求?
我们团队的成员都比较善解人意,能够有效处理意料之外的工作请求。
8.我们学到了什么?如果历史重来一遍,我们会做什么改进?
我们学到了不少东西,不仅是知识方面,还有为人处事方面,身为一个团队,我们必须互相尊重,尊重每个人的意见。
9.设计/实现
1.设计工作在什么时候,由谁来完成?是合适的时间,合适的人吗?
设计工作是在我们项目开始之前,大家开会讨论的。合适。
2.设计工作有没有碰到模棱两可的情况,团队是如何解决的?
有,我们都是开团队会议,对模棱两可的地方进行讨论,投票表决,最后决定。
3.团队是否运用单元测试(Unit Test)、测试驱动的开发(TDO)、UML或其他工具来辅助设计和实现?这些工具有效吗?
我们团队运用了相关的工具来帮助设计和实现,这些工具有一定的效果。
4.什么功能产生的bug最多,为什么?在发布之后发现了什么重要的Bug?为什么我们在设计/开发时没有想到这些情况?
有关作业的发布以及作业评论的bug最多,因为不仅需要相关css框架的设计,还需要代码,数据库的合理的搭配运用。
5.代码复审(Code Review)是如何进行的,是否严格执行了代码的规范?
我们集合起来,对代码进行调试,以及对代码的规范性进行了严格的要求。
10.我们学到了什么?如果历史重来一遍我们会做什么改进?
软件发布之前,要进行足够的测试,还有认真进行代码复审,如果历史重来,我们会做的更好
11.测试/发布
1.团队有没有测试计划?为什么没有?
有
2.有没有做过正式的验收测试?
有
3.团队是否有测试工具来帮助测试?
没有
4.团队是如何商量并跟踪软件的效能的?从软件实际运行结果来看,这些测试工作有用吗?应该有哪些改进?
每开发完一个工能之后,都会进行大量的调试、测试,这些测试工作非常有用,测试过程必须将诸多因素考虑进去,不能有任何的怠慢。
5.在发布过程中发现了哪些意外的问题?
对云服务器的配置,之后进行发布。
12.我们学到了什么?如果历史在来一遍我们会做什么改进?
对软件的测试也是一项高技术的要求,并不只是输输测试内容那么简单,他需要考虑多个层次,多个方面。