团队作业9-事后分析
设想和目标
1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
软件的目标是要解决中小学生日常四则运算的练习、解决学生四则运算纸质考试的麻烦和老师批卷的繁琐。在项目中定义清晰。
针对典型用户小学生,典型场景四则运算有清晰明确的描述;针对典型用户老师,也有清晰的描述。
2. 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
达到目标了,原计划登录注册、四则运算练习、考试系统、排行榜、计时功能都已经完成,按照原计划时间交付,用户数量也已达到。
3. 和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?
团队软件工程的质量有所提高。对于工作的内容和自己的职责所在更加熟悉,整个团队也能够更自觉去搭配队友进行协作,更有默契,而不用单纯的依靠管理工具进行协作。
4. 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
与事先预想的一致,完成了用户所需要的核心需求外,我们在目标的基础上还有优化。
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
经验教训:
1、团队一开始在工作配合上做的不是很好,需要浪费较多的时间在沟通上,对于leangoo等的项目管理工具使用也相对机械;
2、团队的专业性并不够好,花了一定的时间在明确自己的分工上,在时间不够紧迫的时间的积极性也不够强。
改进:
1、学习在完成自己的工作范围内,去大概了解其他成员的工作内容,学会配合其他成员的工作;
2、加强自身的学习,保证不给团队拖后腿的基础上能够为团队付出更大的贡献;
3、学习维持团队的工作积极性,合理安排工作时间,让项目更有序有效的进行。
计划
1. 是否有充足的时间来做计划?
有
2. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
开会当面解决,更好沟通:
1、每位成员提出自己的意见
2、按顺序对每位成员的意见进行讨论,得出解决方案
3、整合以上解决方案,投入实施
3. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
做完了,并在基础上有所优化
4. 有没有发现你做了一些事后看来没必要或没多大价值的事?
没有,每一个所要做的事情都是团队成员一致认为有价值的事情
5. 是否每一项任务都有清楚定义和衡量的交付件?
我们团队在这一点上做的并不够好,只有一个相对完整的框架,没有特别具体
6. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
整体按照计划进行,项目出现了一次意外是排行榜功能并没有按照预期的完成,拖后了1-2天
对于实际完成的时间和预估完成的时间并不完全不一致,不完全受把控
7. 在计划中有没有留下缓冲区,缓冲区有作用么?
没有留下缓冲区
8. 将来的计划会做什么修改?
对任务的安排做更好的安排,留下一定的缓冲区,让项目能够按照预想更顺利的进行
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
学到了沟通和对有可能出现意外的地方做好备用方案是非常重要的
改进:和团队成员的沟通需要更有效,在开会的时候要有逻辑性和目标性
资源
1. 我们有足够的资源来完成各项任务么?
有
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
根据各部分工作内容对应人员的工作能力预估,精度正常
3. 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
人力和资源是欠缺的,对于不需要编程的资源有所低估
4. 你有没有感到你做的事情可以让别人来做(更有效率)?
没有,团队成员各有擅长、各司其职、相互帮助
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
明确自己和团队所拥有的资源和能力,合理安排时间
变更管理
1. 每个相关的员工都及时知道了变更的消息?
是的,有变更消息一定会第一时间保证所有成员知道
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
团队成员数量少,对于功能的优先级级别都是在开会的时候一起决定的
3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
开发完成后有产品确认需求是否完成,测试通过
4. 对于可能的变更是否能制定应急计划?
可以
5. 员工是否能够有效地处理意料之外的工作请求?
基本可以
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
不管之前规划的多么好,出现意外情况是极其有可能性的
要学会准备应急方案,在面对意外情况的时候及时沟通
设计/实现
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计工作在最开始的时候就进行,并且整个项目的过程中都不断进行,主要有产品来完成
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
基本没有遇到,团队所要达成的目标十分明确,对于设计工作,产品也能很好的解决
3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
对这些工具的使用并不熟悉
4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
排行榜和出题功能出现的bug较多,发布之后没有发现什么重大的bug
5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
有技术复审,执行了代码规范
测试/发布
1. 团队是否有一个测试计划?为什么没有?
有
2. 是否进行了正式的验收测试?
是
3. 团队是否有测试工具来帮助测试?
没有
4. 在发布的过程中发现了哪些意外问题?
没有发现
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
测试工作对于产品能不能上线十分重要,只有测试通过了才能放心上线,保证不出现重大的失误
改进:加强测试
团队的角色,管理,合作
1. 团队的每个角色是如何确定的,是不是人尽其才?
根据团队成员自身能力和兴趣确定,是
2. 团队成员之间有互相帮助么?
有
3. 当出现项目管理、合作方面的问题时,团队成员如何解决问题?
团队成员少,一起沟通,共同决定
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
加强沟通交流
总结:
你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段? 你觉得团队在这个里程碑相比前一个里程碑有什么改进? 你觉得目前最需要改进的一个方面是什么?
处于规范阶段,团队成员在项目期间已完成了磨合
由磨合向规范前进
增加工作的积极性,团队建设
名字 |
角色 |
贡献分(100) |
可验证的贡献 |
兰天宇 |
组长 |
35 |
开发 |
郭文茜 |
队员 |
32 |
测试 |
陈颖锋 |
队员 |
33 |
产品 |