设想和目标
1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
解决目标网页爬取的问题,定义的比较清楚。有较为清晰的描述。
2. 是否有充足的时间来做计划?
有时间,做了比较充足的计划。
3. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
对于不同的意见,团队随时召开小型讨论会,迅速解决分歧,保证计划的制定。
计划
1. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
做完了。
2. 有没有发现你做了一些事后看来没必要或没多大价值的事?
有一些,比如说在最开始花了大量时间在页面分析上,但是实际上在alpha版本确实没多大必要。不过这个工作对于beta版本的实现却有很大意义。
3. 是否每一项任务都有清楚定义和衡量的交付件?
有。对于每一个部分的工作,都在计划中清楚的定义和分配给每个人。
4. 是否项目的整个过程都按照计划进行?
基本按照计划进行。最开始的时候花了较多时间在学习和查找资料上,后来就将进度慢慢赶上了。
5. 在计划中有没有留下缓冲区,缓冲区有作用么?
有缓冲区。因为每个人的水平不同,分配的工作有时候需要进行人员调整。
6. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)
应该会使任务的分配更灵活,或者说留下更充足的缓冲区。
资源
1. 我们有足够的资源来完成各项任务么?
刚开始花了不少时间在寻找相关资料、买书、借书上,同时也花了一定时间熟悉服务器的使用。
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
精度比较粗略,毕竟大家都是第一次做爬虫,对于各部分所需时间和资源了解不是很清晰。
3. 用户测试的时间,人力和软件/硬件资源是否足够?
测试的时间还不是很充足,人力和软件/硬件资源足够。
4. 你有没有感到你做的事情可以让别人来做(更有效率)?
在这次的团队项目中,给不同人分配的工作还是比较合适的。
变更管理
1. 每个相关的员工都及时知道了变更的消息?
由于大家平时都离的很近,再加上有自己的团队项目qq群,消息变更都能及时了解。
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
通过及时的团队讨论,同时由PM做出决定。
3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
对于此阶段的项目,项目的出口条件定义清晰。
4. 对于可能的变更是否能制定应急计划?
没有制定明确的应急计划,但是对于已经发生的变更都处理的很好。
5. 员工是否能够有效地处理意料之外的工作请求?
意料之外的工作请求都由PM统一处理,使员工的效率不受影响。
设计/实现
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计工作由团队负责人在项目开始之前带领大家通过讨论完成。
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
这个是不可避免的。如果个人能力强的,就自己解决;否则,就由PM负责调配工作。
3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?
运用了单元测试,UML。感觉UML意义不大,单元测试倒是很管用。
4. 什么功能产生的Bug最多,为什么?
对于目标网页的确定bug最多,因为判断页面内容的相关性是比较复杂的部分。
5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
没怎么进行代码复审,因为在项目进行过程之中大家都互相有讨论,代码还是比较规范的。
测试/发布
1. 团队是否有一个测试计划?为什么没有?
有测试计划,而且执行的不错。
2. 是否进行了正式的验收测试?
应该算进行了,结果显示良好。
3. 团队是否有测试工具来帮助测试?
没有。
4. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
主要看对于网页的爬取速度和内容的相关程度。有用。相关度应该得到提高。
5. 在发布的过程中发现了哪些意外问题?
暂时还没有发现什么意外问题,因为alpha版本实现的功能不太复杂。
1) 对比敏捷的原则, 你觉得你们小组做得最好的是什么?
随着对于要实现的功能的不断明确,我们一直在完善不同部分的工作。
2) 什么是在下个阶段 m2 要改进的地方? 越具体越好。
最需要改进的是爬取效率和网页相关度的提高。
吴翰雄 40
贾伟 39
邓嘉 38
刘牛顿 30
由之望 22
祁彦博 21
闫生辉 20