第一次迭代开发总结
设想和目标
1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们的软件主要要解决母系统中关于构件方面的新需求,经过与老师的商讨,已经定义的比较明确,对于用户和场景的描述因为之前母系统已经有用户在使用,所以已经有了一个清晰的轮廓。
2. 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
我们达到了第一次迭代开发计划中预计的功能,并且在此基础上又新增加了一个功能点(开发时考虑到整个流程的完整性,因此都做了出来)。
3. 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
子系统目前还没有部署到服务器上,因此还没有用户。
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
我们的任务分配是按照前端界面和功能实现来分配的,但在开发过程中发现后台功能和前端界面设计息息相关,按照我们的分配方式,增加了许多交流成本,因此在后面的开发过程中,负责某一功能的人同时负责该功能界面的设计。
计划
1. 是否有充足的时间来做计划?
计划时间还是比较充足的,完全将任务细化后才开始进行开发。
2. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
进行沟通交流,最后统一意见。
3. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
全部完成hhhh
4. 有没有发现你做了一些事后看来没必要或没多大价值的事?
熬夜一天肝完了我要写的东西zzz(因为要准备期中考试。。。)
5. 是否每一项任务都有清楚定义和衡量的交付件?
有的有的。
6. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
都按照计划进行,有的时候因为不同人负责的功能点在数据库中有重叠项,所以总是有人误删其他人的测试数据。。数据库设计时有的细节(比如主键编号自增)忘记设定,造成开发过程中的一些疑惑,主要还是不够细心,以及当时没有数据库设计经验,比较年轻嘿嘿嘿
7. 在计划中有没有留下缓冲区,缓冲区有作用么?
没留。。。
8. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)
13周周末有成员要参加六级以及CSP认证考试,因此13周会稍微少一点任务,后面可能要加一点班追回进程。
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
主要是程序开发的一些经验吧,有的东西确实只有做过了才会知道,吃过苦头才不会再犯嘛~
资源
1. 我们有足够的资源来完成各项任务么?
这个吃饭资金上略有不足,嘻嘻嘻。
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
基本上每个人负责自己的东西,做完再合到一起就可以了,最后de一波bug。
3. 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
测试还是ok的,美工确实之后要补一补了,现在的界面比较普通吧,还没有达到我计划中的效果。
4. 你有没有感到你做的事情可以让别人来做(更有效率)?
我自己当然是不用干活最开心了,效率的话,自认为组内最高好吧。
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
组内全是直男,基本没有审美,有也设计不出来界面,早知道就拉一个女生来专门搞一下这个了(虽然同班组的女生好像还不如我们)。
变更管理
1. 每个相关的员工都及时知道了变更的消息?
消息传递还是蛮及时的。
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
对功能开发难度进行判断,时间是否充足。
3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
有的有的。
4. 对于可能的变更是否能制定应急计划?
完全没问题。
5. 员工是否能够有效地处理意料之外的工作请求?
我们组的成员都很棒,没有说因为自己的事情耽误开发进度的。
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
对于特殊情况还是要能够及时有效处理的。
设计/实现
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计是由整个小组同老师讨论得出的。
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
明确需求后再进行开发。
3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
米有。。。
4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
构件方面还是有一些bug的,因为开发的时候发现有的功能实现起来比较困难,所以启用了plan B。
5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
自审了一波,然后就是小组互审了,有一些没有严格执行老师发的代码规范,因为母系统就没执行。。。想的是子系统最后还是要合并回去,所以统一一下代码风格咯。
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
开发之前对设计的功能进行开发难度上的预估,有的功能确实比较难,可以提前想好别的方法代替什么的。
测试/发布
1. 团队是否有一个测试计划?为什么没有?
有的啊。
2. 是否进行了正式的验收测试?
那肯定测了啊,不测不是凉凉
3. 团队是否有测试工具来帮助测试?
人工。。。
4. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
还没有进行这方面的测试。
5. 在发布的过程中发现了哪些意外问题?
还没发布。
我们学到了什么? 如果重来一遍, 我们会做什么改进?
测试真的很重要!!!
团队的角色,管理,合作
1. 团队的每个角色是如何确定的,是不是人尽其才?
分配任务的时候都是每个人自己选的,应该都是自己擅长或者喜欢的。
2. 团队成员之间有互相帮助么?
蛮多的,好多功能其实算是共同开发出来的。
3. 当出现项目管理、合作方面的问题时,团队成员如何解决问题?
沟通,达成共识。
每个成员明确公开地表示对成员帮助的感谢 (并且写在各自的博客里):
他们都没有感谢我,哭唧唧,我也不感谢他们,哼!
总结:
你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
CMMI。
你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
还在磨合吧,还没有做到最好。
你觉得团队在这个里程碑相比前一个里程碑有什么改进?
这才第一个里程碑啊。。。。
你觉得目前最需要改进的一个方面是什么?
任务分配!!!