上周进行了Alpha版本项目的验收,为第一次迭代画上了句号。以下是我对本组项目第一次迭代的思考与总结:
设想和目标
1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
产品定义:我们软件定义明确,是为需要使用车辆的用户提供及时租车功能;
典型用户:出差在外上班族;
典型场景:机场。
2. 是否有充足的时间来做计划?
时间充足。每周每位成员都有本周必须完成的各自的任务,所以项目进度比较快。
3. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
通过沟通解决。任何成员有问题都会直接提出来进行的商议,最后由PM做决定。
计划
1. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
第一次迭代截止日期之前,本团队所有成员都按时完成了计划工作。
2. 有没有发现你做了一些事后看来没必要或没多大价值的事?
有一些。比如在第一次迭代时,网页开发没有使用框架,显得比较麻烦。
3. 是否每一项任务都有清楚定义和衡量的交付件?
没有很明确。每个部分都是根据开发人员的意愿,沟通之后不断调整。
4. 是否项目的整个过程都按照计划进行?
是的。每周我们都会有周任务并且按时完成了。
5. 在计划中有没有留下缓冲区,缓冲区有作用么?
有缓冲区。缓冲区是在第一次迭代开发截止日期的前几周,主要是在轻松学习。作用还是比较大,后续开发中效率很高。
6. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)
应该会根据第一次迭代的情况做修改,缓冲区长度可能会减少。团队工作模式延续。
资源
1. 我们有足够的资源来完成各项任务么?
我们完成了第一次迭代计划的全部任务。但是由于资金、时间限制,一些接口等不会实现。
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
估计:总时间是根据前两周开发具体情况估计,后续是自己调整安排
精度:一般。有事会出现临时安排打乱计划。
3. 用户测试的时间,人力和软件/硬件资源是否足够?
目前用户仅有开发成员和指导老师,所以各项资源完全足够。
4. 你有没有感到你做的事情可以让别人来做(更有效率)?
有!与我合作开发网页的队员很厉害,完全可以独当一面。
变更管理
1. 每个相关的员工都及时知道了变更的消息?
有任何变更都会通过群消息通知所有成员,所以比较及时。
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
有的部分实现方法相似,在第一次迭代中就先选择实现一个。但基于用户体验,所以第一次迭代完成了从注册到租车完成所需要的大体功能。一些细节,例如联系客服就留到了第二次迭代。
3. 项目的出口条件(Exit Criteria)是否得到清晰的定义?
做到完成除接支付宝接口的其他功能。
4. 对于可能的变更是否能制定应急计划?
基本没有,会随机应变,及时做出调整。
5. 员工是否能够有效地处理意料之外的工作请求?
有临时工作PM会根据本周的实际情况做出调整和具体部署。
设计/实现
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
大体的设计是在项目初期由PM根据老师的指导意见完成。后续开发根据实际进行调整。
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
在很多细节问题上都比较模棱两可,主要是通过沟通交流解决,解决不了会请教指导老师。
3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?
团队运用了UML来帮助设计。画完UML图对整个项目的流程更加清晰。在网页设计过程中,还用了阿里巴巴矢量图库等网站。
4. 什么功能产生的Bug最多,为什么?
管理员网页部分订单管理功能,因为它是综合了客户、车辆等所有信息,任何一个部分有问题都会影响它。
5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
并未进行代码复审。在写代码时就执行了代码规范。
测试/发布
1. 团队是否有一个测试计划?为什么没有?
只有验收标准并未制定验收计划。
2. 是否进行了正式的验收测试?
第一次迭代验收初步测试。
3. 团队是否有测试工具来帮助测试?
暂未考虑。
4. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
暂未考虑。
5. 在发布的过程中发现了哪些意外问题?
只考虑如期完成项目。不考虑发布问题。
总结
1. 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
属于CMMI一级,完成级。
2. 你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
磨合完成,规范初期。
3. 你觉得团队在这个里程碑相比前一个里程碑有什么改进?
团队成员之间学会了沟通交流,效率有了明显提高。
4. 你觉得目前最需要改进的一个方面是什么?
代码规范需要严格执行并且管理员网页要用框架来实现。
5. 对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例。
无论团队内外,面对面的交流始终是最有效的沟通方式
我们团队每周都会进行至少一次例会,把开发过程中遇到的问题提出来进行面对面沟通交流。
保持简明 - 尽可能简化工作量的技艺 - 极为重要
在进行实际开发之间我们都会指定明确的开发计划,按照计划一项一项完成工作。
只有能自我管理的团队才能创造优秀的架构, 需求和设计
团队成员尤其是PM,都十分自律,严格执行各项计划。
总的来说,我们团队整个进度和工作氛围都比较好,也按期、顺利、高质量的完成了各种工作,希望第二次迭代能够继续保持!