• 团队项目之事后分析


      

     设想和目标

    1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?

        我们的网站主要是参照豆瓣的部分功能,解决用户分享影视,音乐,摄影交流平台的问题。

        网站的定义是比较清楚的,我们主要根据这三个功能模块进行展开论述,用户的定位也是20-30岁这个年龄段的年轻人。

        我觉得我们对典型用户和典型场景描述的较为清晰,首先根据我们团队的设想进行构思和描述,后面通过查阅网络相关资料,询问身边的同学和朋友来确定我们的场景。

      2. 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)?

        总的来说,我们达到了原有的目标。

        基本功能虽然有一些细微的问题,但总体而言还是完成了。由于期末考试临近,所以我们在原有的一些基础上进行了细微的调整。

        由于网站还没有上线,所以暂时无法统计我们的用户数量。

      3. 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?

        在团队看来,团队成员对网站的重要功能还是比较满意的。当然,跟预想的结果还是有一点不一样,但总的来说,我们离目标是更进一步了。

      4. 有什么经验教训? 如果历史重来一遍, 我们会做什么改进?

        经验教训是要提前分配好任务,预留无法工作的时间,因为期末临近,并不是每一天都有空弄这个改进的东西。

        如果历史重来一遍,我们会做好规划,并更好的付诸行动。

    计划

      1. 是否有充足的时间来做计划?

        我们预留了时间做计划,但不算很多,

      2. 团队在计划阶段是如何解决同事们对于计划的不同意见的?

        我们出现不同意见的时候,大多数会先在组内展开讨论,如果实在无法达成共识的话,队长就会选择他觉得比较合适的方案。

      3. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?

        团队成员基本上完成了自己的任务。

      4. 有没有发现你做了一些事后看来没必要或没多大价值的事?

        有时候因为没有事先商量好负责哪一个板块的东西,所以导致出现了一点小的问题,导致工作量的重复。

      5. 是否每一项任务都有清楚定义和衡量的交付件?

        对的,基本上每一项任务都有清楚定义和衡量的交付件。

      6. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?

        网站由于时间有限和成员能力有所不足的问题,进展比较缓慢,没有准确预估好团队成员的工作时间。

      7. 在计划中有没有留下缓冲区,缓冲区有作用么?

        有,缓冲区可以让我们歇一口气。

      8. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)

        留够充足的时间来完成项目,留下更多的时间给缓冲区,增加项目的灵活性。

      9. 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

        主要从这次项目中学到了团队协作,一个人走的话虽然走得快,一群人走的话才会走的元。

    资源

      1. 我们有足够的资源来完成各项任务么?

        人力资源上:我们有6个人完成,其中4个人负责后端的模块,2个人负责前端的模块, 

        开发资源:我们的开发资源主要通过github上的开源项目还有百度百科上的一些开发经验给我们帮助。

        设备资源:我们的设备主要是通过人手一台的电脑来实现的

        时间资源:我们还是留出自己的空余时间一起完成这个项目。

      2. 各项任务所需的时间和其他资源是如何估计的,精度如何?

        同样是根据任务量估计的,根据网站的功能,细化的功能大小来预估,精度还算是较为准确的。 

      3. 测试的时间、人力和软件/硬件资源是否足够?对于那些不需要编程的资源(美工设计/文案)是否低估难度?

        测试的时间、人力和软件/硬件资源还是相对比较充足的,并没有降低非编程的资源是否低估难度。

      4. 你有没有感觉你做的事情可以让别人来做(更有效率)?

        可以把分工做的更还一点来提高团队的效率。

      5. 有什么经验教训?如果历史重来一遍,我们会做什么改进?

        需要更多的时间和资源来完成项目。

    变更管理

      1. 每个相关的员工都及时知道了变更的消息?

        是的。每位成员更新代码后,都会上传至GitLab,并且在微信群通知大家;每位成员测试时发现接口文档有问题,都会提交到gitLab的issue中,方便成员及时更新接口文档

      2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?

        从两方面考虑,一是需求,二是实现难度。结合需求与实现难度,综合难度较低的需求必须实现,综合难度高的需求需要推迟。

      3. 项目的出口条件(Exit Criteria - 什么叫“做好了”) 有清晰的定义么?

        有。

        Web页面可以及时响应数据给用户

        用户的相应需求都能得到满足

        测试时发现的一些bug得以修复

      4. 对于可能的变更是否能指定应急计划?

        可以。对于临时增加的紧急需求,可以通过gitLab创建分支,在分支上进行相应的开发,等满足需求后,并测试稳定后合并到上线的分支上,更新项目版本

      5. 我们学到了什么?如果历史重来一遍,我们会做什么改进?

        整个过程我们体会最大的还是团队合作的意识,唯有团队分工明确,主旨统一时,才能够较好地完成一个项目。如果重来一遍,我们会更好地分工,在分好工后再开始实现项目

    设计/实现

      1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?

        在测试阶段开始的时候,我们一起商议了接下来等待完成的各个工作。对于新增接口,大家一起商定,由前后端人员分别实现。前端的美化由陈俊锋去完成,图片和图标等素材由易俊楷完成。测试则由郑伟金先进行,其他人完成各自工作后进行辅助。

      2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?

        有,比如对于某些新功能是否需要的问题,大家的意见不一致,我们就当即进行讨论,对于相应的情况进行表决,以多数的投票为意见

      3. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?

        基本没有,由于大家的基础不同,所以代码风格各有差异,所以代码规范基本是以个人的代码素养为前提来进行复审的。

      4. 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

        在一开始的时候,由于没有分析好需求与相应的难度,我们制定了许多了需求,到了后期,由于时间的不足与需求难度的上升,导致一些需求无法满足而被搁置了。归结到底,是由于我们最初没有考虑好产品的定位,从而导致了需求过于复杂。如果再来一次,我们会把基础的需求先提出来,而后对于难度较大的需求进行综合评估,看看团队是否有条件与能力去完成这个需求。

    测试/发布

      1. 团队是否有一个测试计划?为什么没有?

        有,由于是前后端分离,所以需要书写接口文档,在对接口文档之前,需要前后端人员各自先本地测试功能是否能正常运行。不过测试是由具体的开发人员来完成的,不同部分进行不同的测试

      2. 团队是否有测试工具来帮助测试?

        没有,在整个开发过程中,都是通过一些假数据来进行模拟的

      3. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?

        对于此款软件我们团队对其进行了相应的压力测试,观察了后台大概能够承受的并发量。由于该软件未上线,所以测试工作的作用并未得以体现,最好是可以将软件上传到相应的服务器,然后用几台机器进行压力测试

    总结

    • 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?

        达到CMMI中的二级,管理级别。在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对相关的项目实施人员有相应的培训,对整个流程有监测与控制。但是还没有一套完整的管理措施,没有制度化。

    • 你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?

        磨合和规范之间。

    • 你觉得团队在这个里程碑相比前一个里程碑有什么改进?

        很多大家的磨合度明显提高,效率也提升了,而且更加有默契,遇到问题大家都会讨论解决

    • 你觉得目前最需要改进的一个方面是什么?

        代码规范性问题,我们的代码注释比较少,以及开发效率问题

    • 我们小组什么地方做的比较好?

        我们组的很积极、团结,配合程度还是比较不错的,遇到问题大家会积极参与讨论,合作起来比较顺利

    • 下个阶段需要改进什么?

        没有下了阶段了。但还是期待大家后续的合作

    改进

    1. 团队目前最需要改进的地方是,团队合作的流程不够规范,没有完整的制度或流程有效地提高效率
    2. 时间规划不够好,到后期,大家的时间都比较紧,不过,后来通过每天提交代码的形式,团队的执行力有效提高了,只要任务布置下来,大家都会挤出来时间去完成的。
  • 相关阅读:
    [linux]Linux下的log
    [WDT]内部看门狗和外部看门狗
    [misc]printf/fprintf/sprintf/snprintf函数
    [Linux]read/write和fread/fwrite有什么区别
    移动端图片操作(二)——预览、旋转、合成
    移动端图片操作(一)——上传
    实现tap的多种方式
    Hammer.js分析(四)——recognizer.js
    Hammer.js分析(三)——input.js
    Hammer.js分析(二)——manager.js
  • 原文地址:https://www.cnblogs.com/ZWJCNBLOG/p/12032267.html
Copyright © 2020-2023  润新知