1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们的软件很明确地定义为:在线电力监测系统,是为了便于监测管理大型变电站的一个软件。
典型用户:变电站运维人员
典型场景:变电站
交付和用户:软件功能基本实现,但实际投入使用存在困难,暂时无法投入使用
3.用户量,用户对重要功能的接受程度和我们事先的预想一致么我们离目标更近了么
暂未投入使用,用户实际接受成度未知
产品完成度不是很好,但是离目标是更近了
4.有什么经验教训如果历史重来一遍,我们会做什么改进
整体实现难度大,用到的技术全组人员都是从零开始学习,如果能重来一遍,会考虑换个有一定语言技术基础的项目
计划
2.团队在计划阶段是如何解决同事们对于计划的不同意见的?
计划阶段讨论都很顺利,没有太多不同的意见,可能这也是导致后来alpha版本计划功能没有完全实现的原因
3.你原计划的工作是否最后都做完了如果有没做完的,为什么
团队整体项目功能部分实现,alpha版本功能部分实现,还是实际开发跟不上计划导致后面很赶,以至于功能实现了却来不及集成
4.有没有发现你做了一些事后看来没必要或没多大价值的事
5.是否每一项任务都有清楚定义和衡量的交付件
没有,大家在一起编程,一起沟通,前端与后台直接整合连接
6.是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到
7.在计划中有没有留下缓冲区,缓冲区有作用么
有缓冲区:睡眠
有用,deadline是第一生产能力,要验收的前两周的效率都很高
8.将来的计划会做什么修改?(例如:缓冲区的定义,加班)
在beta版本中,团队还是继续和以前一样,大家一起编程,面对面交流,整合对接,平常一周七天有四天左右一起编程,后面几周几乎一整周(包括周末)大家都在一起工作
9.我们学到了什么如果历史重来一遍,我们会做什么改进
学到了很多前端的知识和语言,以及网页的设计布局制作,也认识到了和大佬的差距orz...
如果能重来,会选择除了前端网页界面制作以外,把与后台的连接也好好学习
资源
1.我们有足够的资源来完成各项任务么
没有,一开始指导老师说好的给我们的一些资料,之后告诉我们没有那些东西,得自己想办法通过其他方式实现,但是有在我们项目类似的学长的项目,给了一定的指导
精度不好,会出现效率不高和不能按时完成的情况
3.你有没有感到你做的事情可以让别人来做(更有效率)
我们组内是两个人主要负责前端,所以一直以来都是面对面交流分配前端任务,如果实在有问题就互相协助,所以不存在这个问题
界面设计不够规范,以至于后来和后台连接进行了很多修改
如果能重来,应该一开始先和后台沟通好再进行界面的编写,会节省很多工作量
变更管理
很及时,因为从做这个项目开始,不管有什么变更,都是大家开会一起决定的,就算之后有的修改,也会及时上传到群里,开始开发以后代码的无限修改,大家一起编程,修改都是当场知道的,同时git工蜂也会写下自己的修改更新内容,大家都能及时知道
2.我们采用了什么办法决定“推迟”和“必须实现”的功能
一开始就决定了主体功能,主体功能没有调整过,也没有删减过,附加功能都属于可推迟(但并没有太多的附加功能,一些附加功能都在开发的过程中就一起做了)
3.项目的出口条件(ExitCriteria–什么叫“做好了”)有清晰的定义么
能模拟实现项目的具体功能就好
4.对于可能的变更是否能制定应急计划
并没有提前制定任何应急计划,但是出现了紧急变更,会及时全组开会,立即做出相应调整
5.员工是否能够有效地处理意料之外的工作请求?
一般的意外请求大家都能及时做出反应,并想办法实现功能
6.我们学到了什么如果历史重来一遍,我们会做什么改进
集体编程,面对面交流,整合对接修改更新都很重要
设计/实现
整个项目的模式是在项目需求确定阶段,由全组人员和指导老师沟通商定的
2.设计工作有没有碰到模棱两可的情况,团队是如何解决的?
有,会采取组内多数人认可的一种
3.团队是否运用单元测试(unittest),测试驱动的开发(TDD)、UML,或者其他工具来帮助设计和实现?这些工具有效么?比较项目开始的UML文档和现在的状态有什么区别?这些区别如何产生的?是否要更新UML文档?
有UML图帮助设计
4.什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug为什么我们在设计/开发的时候没有想到这些情况
工单处理功能产生的bug最多,因为这是整个项目的核心功能之一,操作也很多,与后台的连接也特别多
没有发布
技术有限,功能过于复杂,也缺乏一定全面的测试
5.代码复审(CodeReview)是如何进行的,是否严格执行了代码规范?
按照老师给的代码规范组内人员对自己负责的模块进行了代码复查
团队的角色,管理,合作
1.团队的每个角色是如何确定的,是不是人尽其才?
团队角色的确定,以尊重个人意愿为主,再根据实际情况协商
2.团队成员之间有互相帮助么?
有!比如和我一起负责前端的组员给了我很多帮助,和我负责一个模块的后台人员也进行了很多沟通,互帮互助,大家都很和谐
3.当出现项目管理、合作方面的问题时,团队成员如何解决问题?
大家会理性讨论这个问题,然后根据需求反复确定,求同存异,最终达成共识
总结:
你觉得团队目前的状态属于CMM/CMMI中的哪个档次
磨合基本完成,接下来是规范
你觉得目前最需要改进的一个方面是什么
在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。团队在图书馆研讨学习空间,每天一起集体编程,效率会高很多,还能起到互相监督的作用