团队项目总结
### 关于规范化:
在整个开发过程中,老师非常强调规范化开发,具体表现在:
具体计划,包括每个人的整体计划与周计划;每周例会,包括进度总结、绩效考核等;对进度的可视化跟踪,如燃尽图、计划墙;文档,包括需求分析文档、整体设计文档、接口文档等;开发管理,包括代码管理、测试等;对于用户与需求的重视。在这里,先总结一下前几项的经验教训,用户需求这个问题后续详细总结。
在一开始,我们的整体项目是非常不规范的。我们没有具体计划,没有进度跟踪,也没有文档;开发管理倒是用了github,但是整个小组用了好几个repo,没有很好地利用github的工具性,也没有强求测试;没有每周例会,想起来才开一次会。后来,在老师的催促下,我们开始慢慢地尝试了这些方式,才发现很多方式是非常有用的。
关于具体计划、每周例会:学期刚开始的时候,我们每个成员都非常有激情、非常主动地工作,因此我们以为这些是鸡肋、是不需要的;然而到了后期发现,在有许多其他工作的时候,确实需要例会和计划的压力才能克服惰性与厌倦感。
### 关于用户:
对于所有的软件来说,用户都是至关重要的,而对我们这种强调用户个性化体验的app来说就更加重要。所以整个过程中我们一直在努力地寻找用户,最开始设计的时候就与许多用户交流过我们的设计理念和细节,并且得到了很多建议,虽然其中有一些很好的想法我们没有足够的时间去实现,但给了我们很多启发,也让我们开发时能够找准重点。在开发的早期,我们把功能还不完善(并且有一堆bug)的app给身边的朋友都试用过,并且得到了很多反馈。
从alpha版开始,也就是从有了一个可以实现基本功能的app开始,我们开始努力向熟悉的人推广我们的app,也有一些朋友会帮我们推广。虽然推广不是特别顺利、许多人都表示不太有兴趣,而且因为我们没有集中的发布渠道,也很难给试用我们的app的人推送最新的版本,但是在这个推广并收集反馈的过程中我们还是补了很多bug、收获了很多启发。
### 关于技术:
对于我们来说,技术是一个非常巨大的难关。我们所有人都是第一次接触java与安卓开发,所有东西都是从头学起。
在学习的过程中,我们参考了许多资料,包括《第一行代码》、官方文档,及stackoverflow github等各大社区论坛。经过一个学期的努力,我们有的人熟练掌握了Android开发中的UI组件,有的人掌握了数据库知识,有的人掌握了web开发。总之,我们都有很大的收获,对我们的未来也颇有裨益。
### 关于编码规范:
对于我们所有人来说,这都是第一次开发大型项目的经验,也是我们第一次真正理解编码规范的重要性。
一开始的时候,我们所有人都没太注意编码规范。我们没有明确要求单元测试,代码常常写得很随便,模块化很差。后来在老师的督促下,也在我们自己的反思之下,我们发现之前的代码有许多问题,包括可读性非常差因而难以调试修改、很多代码可以模块化却被重复了很多遍、没有测试暴露问题很慢等等。因此我们后来开始严格要求每个人都要写注释和单元测试,虽然很难保证测试面面俱到,但有了之后确实比以前好了很多。
作为一个学生组成的小组,我们一开始没有经验,而且组织管理非常随意,因此编码规范化没有严格的要求,我们也因此遭遇了上面说到的那些困难。在今后的大型开发中,尤其是公司里,确实需要对规范化有着严格的要求。
### 关于分工合作:
我们的分工基本形式是:四位做页面的同学,两两结对编程,从而互相帮助;三位同学负责数据库与服务器,内部自行分工。在整个项目中,我们的分工也不是一成不变,比如到了后期由于大家时间不太一样,保持两两结对编程有些难;如果有的人做不完工作会由其他有余力的同学帮忙做等等。不过整体而言,我们的分工从一开始的比较混乱,慢慢演变到后期较为清晰,大家各司其职。事实证明,这样大家工作起来方便了很多,而且出现问题时沟通也更加便捷。
另外,由于我们的工作分为了若干个部分,需要互相调用接口。一开始,我们设想的是先分别写,然后再进行修改,后来发现这样非常复杂,所以第一次数据库与UI对接花了若干个星期;后来,我们开始对每个部分明确定义接口,写接口文档,并且给出一定的接口样例。这样一来,整体顺了很多。
### 关于alpha版本和beta版本
我们的alpha版本是一个纯粹的本地版本,能够存取信息并且进行搜索、分析等,但是没有服务器的参与,很多功能如富文本也不够完善。
而我们的beta版本加入了服务器,可以登录、注册、同步信息,对很多功能进行了完善,对UI进行了优化。
###小组成员个人总结