M1阶段告一段落,针对M1阶段的情况我们做了全组讨论,并在此总结。
一、设想
我们的设想是开发一个快捷方便的记事本App。从用户体验角度出发,在一般记事本App的基础上进行创新,给用户不一样的体验。
当然这个设想的产生是有一定的过程的。我们在讨论过程中曾头脑风暴出各种想法,比如说做一款怀旧游戏贪吃蛇,做一个常用的记账软件等。最终我们从方便编写和实用的角度进行了抉择,选择了一个大家都认可的快捷记事本App。
决定了方向后,我们针对这个想法扩充了一些功能,有了让这个App包括悬浮窗和锁屏界面的快捷按钮的功能的设想。
二、设计
在提出这个设想后,我们立刻开始了App的设计。当时将任务交给了两个同学,让他们共同完成。他们商讨决定,一人负责界面的大致框架,另一人负责设计各个界面的细节。
两个同学用了将近一周的时间来设计,紧接着我们整个团队进行了第二次全体商讨会议。这时出现了一个小小的问题,由于负责设计的两个同学对于界面设计有各自的想法,而没有及时进行沟通,导致出现了一些不一致的设计。一番讨论后,我们认定应当首先实现该App最为实用的一些功能,因而选择了较为简洁的界面设计。而对于稍显复杂的那些设计,我们也记录了下来,准备后期把细节更丰富。在界面的设计敲定后,我们紧接着讨论了功能的设计,最终达成了团队的一致。
三、计划
完成了初步的设计,我们对各个模块进行了任务的划分,并且制定了相应的计划。M1阶段我们的计划主要围绕着“制成一个功能全面的App”展开,希望实现的功能有:文字笔记、语音笔记、图片笔记、悬浮窗功能、搜索功能。从结果来看,计划的工作基本完成,但有一点遗憾的是图片笔记的功能尚在调试中。
经过小组讨论分析原因,我们认为问题主要出现在过高的估计了我们的开发效率上。在制定计划时,我们仅仅是将美化界面与制作实用功能分开,而没有仔细追究开发、调试并完善每个功能所需要投入的时间。对于我们这个App来说,每一种笔记都是一个单独的模块,各个模块之间没有可以重用的代码,没有可以遵循的经验。制作每一个模块都要从头查资料、敲代码,出了bug没有经验可循,只能再查资料,尝试着修改,再不断进行调试,直到完成这项功能。这样,每一个模块的制作对我们来说都是一个挑战,这导致了我们的任务量过大。
这种不科学的计划主要原因在于我们对于安卓开发的不熟悉,现在经过两个多星期的开发,我们渐渐了解了安卓各个功能的难易程度,相信下一阶段能够制定出一个更为合理的计划。
四、资源
我们需要的资源主要是各种图片。根据以前做软件开发的一些经验,我们认识到获取图片资源的不易,于是将这个工作作为单独一个部分交给了一个组员来做。现在我们认为这是十分有必要的,因为它大大节省了我们其他的组员的时间,使他们能够全身心投入到写代码的工作中。
五、变更
经过团队讨论,我们认识到在M1阶段我们没有管理软件的变更,当开发人员做出了新的功能后没有及时告知其他人。这也导致我们发布测试报告的时候用的不是软件的最新版本。经过讨论,我们认为在下一阶段的工作中,我们要加强沟通,尤其注意这种变更管理,防止相同的情况再次发生。
六、测试计划
在M1阶段,我们在测试方面也有一些做得不足的地方。在最终测试的时候我们更多地考虑了功能上的测试,旨在寻找未发现的bug,而对于兼容性问题的测试则没有做得很全面。在观摩了sixsix队的测试成果后,我们学习到了一些经验。下一阶段我们将使用一些测试工具来对软件进行一个全面而整体的测试。
七、团队的模式
我们的App主代码的规模与其他模块规模类似,而细节方面有很多工作要做。对于每一个模块而言,它们都是与主代码相接。根据这一个特点,我们制定了一个特别的工作模式——以结对的形式完成团队任务。前期,由一个人写主代码,其他人与他沟通来写各模块代码(悬浮窗、搜索、新建笔记、设置界面等)。现在主代码已经完成,下一阶段我们将转换方式,写主代码的人反过来和其他人多沟通。这种工作模式使得整个团队的管理更为容易,责任更加明确,后期的所有模块的整合也可以轻松完成。