事后诸葛亮
设想和目标
-
我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
-
软件要解决的问题:为web开发人员提供API管理与测试功能的平台。定义较为清楚。
-
一个典型场景的描述:在前后端分离的web项目开发中,后端人员功能开发完毕后会有一套url(api),用于请求不同的数据,这时后端人员可以在本软件上进行api的设计,写明具体的请求会接收到什么数据等具体信息;前端人员就可以调用这些api来进行测试以及对前端页面的渲染和数据填充。
-
经典用户1:需要进行测试的后端开发人员,在开发的过程中,不可避免会接触到至少三个环境的程序部署:开发、测试和生产环境。可能在每个环境都使用一套数据库配置,路径配置等,如果每次都人工的干预每一个配置文件,工作会比较繁杂,且容易遗漏并且出错。 在开发时,有一些代码仅在开发时运行,发版时不能运行。比如:测试用的mock数据。
-
经典用户2:对于开发完前端界面的前端开发者,需要使用接口对接,获取数据,进行测试。
-
经典用户3:需要写接口文档的开发者。在没有api-management之前,我们使用文档记录方式(markdown或者word格式),但有时候为了追求速度,后台人员写得真的很乱,对于强迫症患者来说,格式整齐太重要了,使用api-management可以轻松的对api文档进行编写。
-
-
我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
完成的功能有:api以及状态码的管理(增删查改等);项目、用户权限管理;登录注册;项目概况、操作日志。
已按照原计划时间交付,用户量达到预计要求(500)。
-
和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?
提高了不少。成员之间对于git版本管理的使用更熟练、代码写的更加规范等。
-
有什么经验教训? 如果历史重来一遍,我们会做什么改进?
开发之前要做好详细的规划,写好文档,尤其是数据表的设计要认真仔细。
计划
-
是否有充足的时间来做计划?
有。
-
团队在计划阶段是如何解决同事们对于计划的不同意见的?
共同讨论。
-
你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
基本做完。部分功能没有做完,原因是需要顾及其他科目的学习,时间精力不够
-
是否每一项任务都有清楚定义和衡量的交付件?
yes。
-
是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
否,开发过程中数据表更改数次,每次更改都要更改对应的部分代码。这是因为在设计数据表时没有考虑周到。
-
在计划中有没有留下缓冲区,缓冲区有作用么?
无。
-
将来的计划会做什么修改?
添加api测试功能。
资源
-
我们有足够的资源来完成各项任务么?
没有。前端人员不够,开发压力太大。
-
各项任务所需的时间和其他资源是如何估计的,精度如何?
初版计划时,只能大概估计需要几天;一段时间的开发学习之后,再次召开站立会议,重新规划时间,此时的精度可以精确到“小时”。
-
测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
我们不需要美工。
-
你有没有感到你做的事情可以让别人来做(更有效率)?
有。
变更管理
-
每个相关的员工都及时知道了变更的消息?
否。
-
我们采用了什么办法决定“推迟”和“必须实现”的功能?
采用四象限法则:
- “重要紧急”类的功能
- “紧急不重要”功能
- “重要不紧急”类功能
- “不重要不紧急”功能
-
项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
没有。
-
对于可能的变更是否能制定应急计划?
不能。我们不少专业的。
-
员工是否能够有效地处理意料之外的工作请求?
基本不能。
设计/实现
-
设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
全体人员共同讨论。是。
-
设计工作有没有碰到模棱两可的情况,团队是如何解决的?
没有。
-
团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
是,使用JUnit进行单元测试。该工具有效。
-
什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
api管理功能,数据表没设计好,如上所述,出现了很多问题。没有。这。。。
-
代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
没有进行代码复审,时间不够。
测试/发布
-
团队是否有一个测试计划?为什么没有?
有。
-
是否进行了正式的验收测试?
否。
-
团队是否有测试工具来帮助测试?
有,使用postman。
-
在发布的过程中发现了哪些意外问题?
数据表设计不妥。
团队的角色,管理,合作
-
团队的每个角色是如何确定的,是不是人尽其才?
由队长指定。是。
-
团队成员之间有互相帮助么?
有。队员之间分工合作,互帮互助。
-
当出现项目管理、合作方面的问题时,团队成员如何解决问题?
一起讨论。
总结
-
你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
能正常使用,无页面逻辑错误,基本达到CMM的第二级。
-
你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
规范阶段
-
你觉得团队在这个里程碑相比前一个里程碑有什么改进?
没有
-
你觉得目前最需要改进的一个方面是什么?
要善用工具进行自动化测试,扩大试用的用户范围。
提高质量
-
代码管理的质量具体应该如何提高? 代码复审和代码规范的质量应该如何提高?
提前做好代码规范文档,严格遵守,写好注释,方便代码复审。
-
整个程序的架构如何具体提高?
多学习,多使用更高级更精简的语法。
-
其它软件工具的应用,应该如何提高?
阅读官方说明文档。
-
项目管理有哪些具体的提高?
定时开站立会议,规划好更详尽的功能表以及更精细的时间划分,按时上交issue。
-
项目跟踪用户数据方面,计划要提高什么地方?
查看数据库。
-
项目文档的质量如何提高?
统一markdown文档格式,编辑好目录,及时更新,删除冗余的描述。
-
对于人的领导和管理, 有什么具体可以改进的地方?
加强沟通,多交流,有问题及时提出。
-
对于软件工程的理论,规律有什么心得体会或不同意见?
代码规范和文档规范对后续开发作用很大。
角色及贡献
成员名称 | 角色 | 团队贡献分 | 可验证的贡献 |
---|---|---|---|
李俊贤 | PM、后端开发 | 25 | 组织成员开发、开发后端部分功能 |
李林飞 | 前端开发 | 25 | 包揽所有前端页面功能开发 |
黄博晓 | 后端开发 | 23 | 开发后端部分功能,编写博客 |
凌文宇 | 推广 | 19 | 完成原型的绘制,画了所有ui设计图 |
李业 | 测试 | 20 | |
陈金海 | 后端开发 | 18.5 | 需求分析、数据表设计 |
赖晋启 | 测试 | 19 |