Alpha版本项目展示
TEAM C#
一.团队成员简介
杜正远,队长,开发主力,具有较强的编码能力。
博客地址:http://www.cnblogs.com/kevindu/
崔强,后期PM兼开发主力,责任心强,抗压能力强。
博客地址:http://www.cnblogs.com/mavourneen
曾哲昊,辅助开发,学习能力较强。
博客地址:http://www.cnblogs.com/ace123/
黄上,测试员,对待工作认真。
博客地址:http://www.cnblogs.com/hshang
石岚,前期PM,心思细腻,完成任务质量较高。
博客地址:http://www.cnblogs.com/yuccalan/
金知焕,测试员,为人谦和。
博客地址:http://www.cnblogs.com/geeffan/
金东禾,测试员,向往知识和技术。
博客地址:http://www.cnblogs.com/dongdong88/
二.项目展示
团队日程管理(Agenda Manager)
主要功能:1、添加好友
2、建立群组
3、向组内推送日程提醒
主要服务人群:有集体活动要参加的团队或小组
场景模拟:
小红:明明,你怎么还在宿舍里,今天1点上课!
小明:什么?今天软工提前一个小时上课?
小红:对啊!今天要答辩了你不知道嘛!?
小明:Oh, No! 马上就要一点了,本宝宝还没吃饭呢!
面对小明这样的学生,罗老师作何感想?
您想不想有这样一种软件,用了就可以让学生不再有借口迟到?
没错,这款软件就在这里,团队日程管理(Agenda Manager)
要求设备操作系统版本在Android 4.0.3 及以上。
我们的用户应有如下需求:
1、注册新用户并登录
2、通过ID添加好友
3、创建群组
4、邀请好友进入群组
5、被邀请的好友选择接受或拒绝
6、创建群组的用户在本地创建好日程提醒
7、可以创建多个日程
8、将日程提醒推送给群组内每个人
9、组内用户收到推送后选择接受或拒绝
10、某个用户拒绝后,创建者收到反馈。
11、日程提醒的时间格式应为: year – month – hour - minute
12、创建日程提醒的人可以手动修改或删除该日程的任意信息。
13、日程提醒过后,可自动删除该项
14、实现自动登录,即在退出后的短时间内,无需再次通过用户名和密码登录。
15、到设定好的日程提醒时间后,完成弹窗震动或响铃提醒。
16、重启后,原有日程提醒不失效。
在本轮迭代开始之前,我们设定的团队目标是,完成具有以上功能的android版本。在第二轮实现ios版和windows版。
事实上,该版本只完成了1、3、6、15。
所以我们没有达到预期,也不能完全满足用户的需求。
已知BUG(除去以上未实现的功能):
1、 按手机上的返回按钮,会退出软件,而不是真正的返回功能。
2、 注册时,若重复点击确定按钮,会报错(该情况只出现在网络较差时)。
3、 关闭日程提醒后,有一定几率导致软件崩溃。
4、 同账号可多处登录,且没有提醒。
在有众多BUG和未实现的功能的情况下,我们也尝试着在百度开发者平台发布了软件,预计下载量100,实际下载量如下图:
原本计划在11.10正式上线,但由于审核的问题,推迟到11.13才完成了百度助手和91助手的上线。按照曲线图来看,10号完成上线的话,基本可以达到100下载量的预期。
三.开发过程及反思
<问题分析>
1、团队的组建
仓促、陌生。
2、团队模式
主治医师模式
这样的团队中,有首席程序员(Chief Programmer),他/她负责处理主要模块的设计和编码,其他成员从各种角度支持他/她的工作(后备程序员、系统管理员、工具开发、编程语言专家、业务专家)。
一人主导,其余辅助。
“以有进取心的人为团队为项目核心,充分信任支持他们”。
做到了三分之二。
3、团队积极性
自主管理:以前领导布置了任务,我们实现就可以了,现在要自己挑任务;每次Sprint结束之后,还要总结不足,提出改进,并且要自己实施这些改进。“自主管理”不等于“没有管理”。
队员在开发过程中表现不积极,例:1、博客。 2、辅助开发。
4、绩效管理
自我组织:以前做好自己的事情就好了,安心下班。现在每个人要联合起来对项目负责,有人工作落后了还有帮助他改进,项目缺少某类资源自己还要顶上去。
Alpha: M = 280 * (H*10 + 50)% * a% * (P + B)% + 10
(M为分数,H为难度系数,a为贡献度,P为任务完成度,B为额外贡献度)
让队员抱有侥幸心理的,直接影响到积极性。
<如何改进>
1、 全职PM
2、取消基础分,并严格执行绩效制度,以增加团队积极性。
Beta: M = 350 * (H*10 + 50)% * a% * (P + B)%
3、改善整体的团队成员分配,增加开发人员到4名,测试由一人承担。
<一点小小的吐槽>
软件工程中的开发思想,起源于现代开发公司。学院给学生开设这门课程,我猜想,是想让学生提前体验一下公司的开发方式,提早适应社会,理解团队开发与个人写个小程序的区别。我很赞同这个想法,也确实从这门课程中收获了不少。
然而这样的“移植”,是否可能存在一些隐患呢?
学生?职员?
老师?老板?
能约束学生的除了分数之外,就只剩下自觉性。而能约束职员的,除了有了它就不用割肾买Iphone的奖金外,还有掌握在整个团队以及老板手中的,对每个人是去是留的生杀大权。
在公司的开发团队中,消极怠工的人他们可以选择将他踢出。而在学校的开发团队中,消极怠工的人我们只能选择忍。因为同学情不比同事情。
在公司的开发团队中,我们可以选择有能力的同事组队。而在学校,我们完全不能保证队里的每个人都是具备一定能力的。而当这类同学表现出能力不足时,只能将任务转给有能力的同学。这样在无形中,给部分队员就增加了压力。然而在最后分配贡献分的时 候,同学情又会起很大作用。所以“能者多劳”这四个字得以充分体现,只是“多劳者”往往要碍于面子,不好意思“多得”。