软件开发第一阶段总结
第一个里程碑结束了,我们紧接着就开始进入到beta版本的开发阶段。首先需要介绍的是根据课程的安排,我们的队伍有些许调整,李皈颖同学被交换离队,梁飞同学和张善驰同学加入了我们的队伍。在接下来的时间里我们将齐心协力,完成软件beta版本的开发工作。
在正式进入开发之前,我们需要对M1阶段的工作进行总结回顾,俗称事后诸葛亮会议。今天在软件工程课程上,所有成员均到场。大家畅所欲言,就关于Milestone1的问题展开了激烈的讨论:关键是改进的方面都有哪些?如果再有一次机会,如何改进?所有同学充分发言,并对集中的几个问题进行了投票并选出了最具代表性的三个进行分析,反思。
我们有哪些方面做的不错?为什么?
第一是我们对典型用户和场景做了详细的描述。组里每个成员对自己的任务和定位都有清晰的了解,并且在计划时大家站在用户的角度充分思考了可能的需求。
第二是工作划分的比较好,没有冲突。这样每个成员可以注重自己的任务的实现,不用等待其他成员的进度。
第三是每个人都能投入到开发过程中。开发过程中没有出现因为某个人的缓慢拖慢了整个进度的情况。虽然中途有人离开了一段时间,但是PM同学自己顶了上去,仍然达到了计划的安排。
我们有哪些方面做的不好?为什么?
第一个大问题是关于设想与计划方面的,大家一致认为第一阶段的很大问题在于做计划时对时间掌控严重有误,所有任务并非是有条不紊的完成的,而是前松后紧;甚至第一周完全没有着手计划,直到任务执行阶段才开始计划。在M2中我们会非常重视开发计划阶段的工作,确保不会再出现时间分配混乱的情况。
第二点就是在变更管理的环节,项目的出口条件有清晰的定义吗?怎么才算是做好了呢,大家并没有一致的结论,对这个概念过于模糊的处理,导致了工作效率和质量的降低,这无疑对产品的最终完成带来不好的影响。我们很快就会更新软件的设计概览,提出明确的任务要求和指标,并在M2中严格执行。
在设计与实现方面还是有很多问题,我们团队在运用单元测试、测试驱动的开发等工具上存在严重不足,主要还是态度不够积极,忽略了测试这一重要环节。在M2中我们会及时进行测试工作,将测试与开发结合在一起。另一点则是没有代码复审(code review),没能严格执行代码规范,同样应该引起重视。
除了以上三个较大的问题,还有一些环节处理不妥。一方面就是资源上,我们组因为同学们自己的事务导致人力资源不够,而且没有服务器的支持,相信在下一阶段的协调下可以得到解决;另外是计划上,并不是每一项任务都有清楚定义和衡量的交付件,大家只是仓促的完成了所需功能,交付过程过于草率,这导致负责整合的同学工作量较大,这点会在M2改进。
最后我还想说一个我们在M1最失败的地方,就是宣传工作。我们队伍的blog的成绩最差,访问量也很低。这是我们平时不重视宣传所造成的必然结果。我们做软件的最终目的是面向用户。软件做的再好,用户不知道也没用,现在已经不是那个关着门搞研究的阶段了。所以在M2中我们会重视我们的blog,利用好这样一个平台,及时发布我们产品的最新进展,并时常提供一些技术文档给有需要的读者学习使用。相信通过我们的努力,我们的软件会让更多的人知道。我们的队员有一流的开发能力,只要做好宣传工作,就一定能取得最后的胜利。