1、团队成员简介
Email:qianlxc@126.com Free time:8:00 7:00 a.m ~ 11:00 12:00p.m Introduction: 我是一个热情的人。开朗的人。活泼的人。(小编觉得用逗号分开比较好 我喜欢交际,喜欢沟通。 我的理想是做一个软件硬件都能有扎实基础,同时具备很强的工程实践能力与学习能力的架构师。我想成为一名真正的Hacker,能为计算机的发展做出自己的贡献。我是一个半理想主义者。 我不是码农,我是工程师。 Role:写代码,整体框架与结构的设计,负担沟通接洽各个成员的责任。 Duty: Product Manager(产品经理) Personal Homepage:http://www.cnblogs.com/SivilTaram/ |
||
Email:309143859@hotamil.com Free time:不上机的晚上 Introduction: 我觉得自己的专业能力在这个团队当中是最差的,但是我会努力学的……其实觉得目前市场上的软件功能已经逐渐覆盖包围,对于我们这样一个小团队来说要开发新的功能确实不太容易,所以我个人的想法是着眼于身边,在北航甚至是计算机学院的背景下做一些东西。 Role:任何职务(主要我觉得自己都不太会)组织要我干什么我就干什么 Duty: Reporter(文档撰写人员) Personal Homepage:http://www.cnblogs.com/lydiavitani/ |
||
Email:1143974257@qq.com Free time:晚8点-晚12点 Introduction: c,java,安卓开发。这次团队项目我更倾向于做安卓应用或开发安卓游戏,主要是使用的是我们更加熟悉的java语言。同时java也非常适合协作开发。 Role:运动教练,写代码,协调工作=。=(你还卖萌 Duty:Programmer(代码开发人员) Personal Homepage:http://www.cnblogs.com/mnb10109/ |
||
Email:634208109@qq.com Free time:早上4八点半到晚上八点半,并不是空闲时间,12小时工作时间。 Introduction: web后端,渗透测试。 对团队看法:我们差个牛逼的前端画网页。。目测全系也没有。。。。。。 软件工程看法:软工主要是学管人的,团队合作,这俩我都不擅长,我只提些架构上的建议,一切听领导安排。(确实差个好前端,快来个人跳槽呀! Role:后端开发 Duty:Project Mannager(项目经理) Personal Homepage:http://www.cnblogs.com/hoerwing/ |
||
Email:504037668@qq.com Free time:周一下午及晚上,周五下午,周末至少一天 Introduction: 突然发现我可以不把个人介绍搬上来呀哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈! Role:前端设计 吹比担当 Duty:UI Designer(UI设计师) Personal Homepage:http://www.cnblogs.com/kibbon/ |
||
Email:songxh_scse@126.com Free time:8:00~11:30am(周四) 7:00~11:00pm(周一、三) 以及一些零散时间 Introduction:个人编程能力不强,目前仍然在学习之中,但是我愿意学习,希望在以后的学习工作中与大家一起进步。 Role:可写代码,也可以测试,还可以提供一些想法 Duty:Programmer(代码开发人员) Personal Homepage:http://www.cnblogs.com/songxh-scse/ |
||
Email:acewjh@sina.com Free time:周四上午,周五下午 Introduction: 本人擅长java已经c++编程,开发过简单的Android应用,也做过一些UI设计的工作。有任务时保证严肃完成,没任务时可以活跃团队气氛,实乃软工组队一把好手。希望通过这门课程能够与组里的小伙伴们同进步,共成长~ Role:写代码,UI设计,整理博客,气氛担当, Duty:Programmer(代码开发人员) Personal Homepage:http://www.cnblogs.com/acewjh/ |
||
2、典型用户描述
2.1 团队项目的目标
本项目致力于计算机计算代替人工计算,使用简单可行的原理,利用服务器端的计算功能将高校学生从物理实验的繁杂计算中解脱出来而开发的一款网站。
2.2 预期的典型用户
名字 |
小徐 |
性别 |
男 |
职业 |
某校一般学院大三学生 |
物理知识层次与能力 |
好得我实验都重修了 |
生活情况 |
大三也要每周花将近一天时间坐地铁回沙河上物理实验,十分苦逼 |
动机 |
我真的不想再挂科了 |
目的 |
希望能够帮助自己处理好实验报告,至少能保证实验报告不因数据处理步骤不对而被老师退回。 |
困难 |
自己物理知识较弱,希望计算过程能详细又简洁。 |
用户偏好 |
简洁即可 |
用户比例 |
约占同届学生10% |
典型场景 |
登陆实验平台,根据预习报告模板写好预习报告。在实验完成后,将数据导入网站,一键生成物理实验报告,按正确的步骤写好报告,获得及格分,通过物理实验。 |
典型描述 |
哈?你说啥?我实验报告又没过?! |
名字 |
小何 |
性别 |
男 |
职业 |
某校物理学院大二学生 |
物理知识层次与能力 |
活到老,物理学到老,物理就是我绳命。 |
生活情况 |
物理实验,物理实验,物理实验。 |
动机 |
要选修够将近60学分的物理实验,保守估计至少需要做11~12次物理实验。有些物理实验很难,不太懂其中的计算过程。 |
目的 |
希望能给出具体的计算过程,把自己方法中不太会的地方搞懂。 |
困难 |
工具简单易懂即可 |
用户偏好 |
比物理实验网站好看就行 |
用户比例 |
绝大多数,约占校人数70% |
典型场景 |
处理实验数据时遇到了困难,有某个方法不太明白计算过程。在物理实验平台上通过展示出每一步的计算过程学会了方法。 |
典型描述 |
我爱物理实验,可是...它不爱我呀 |
2.3 预期用户量与实际
我们的预期注册用户数量是300,活跃用户是每天50人次以上(独立访客人数)。到截止时间为止,虽然实际注册用户只有299人,除去我们项目团队注册的几个号外,实际注册用户有大约280人左右。
虽然我们的预期用户数量没有达到想象中的多,但是我们的稳定用户和活跃用户在用户中占了很大的比例。我们的物理实验平台交流群在11.6日成立,在11.17日就已经突破了160人。14,15日每日访问人数达到了60人左右,在11.16日(星期一)访问人数突然提升,提升到了600人!
综上,我们的网站从11.14日起使用CNZZ来进行网站数据的统计分析,在14~17日这短短几天时间内,我们的网站页面被浏览的次数达到了3000次,总共浏览过的独立访问用户足有600余人,并且每天都有100以上的活跃用户使用网站进行他们的实验数据处理,足见我们的网站是非常贴切用户需求的。
2.4 分工协作
我们的分工协作可以使用下图来表示:
在我们的工作中,固定的人有相对固定的领域:
- 邢浩——服务器端网站框架设计与后端工程师
- 鲁聃——UI和前端工程师
- 何小松——后端数据处理主程序员
- 刘乾——安排任务,督察任务进度,与各个分支产生联系与沟通
我们的结构是一个三足鼎立,中间还有项目经理作为胶水加固的结构。
在我们的工作中,我们使用了github作为维护项目的工具,我们的代码提交流程是这样的:
- 对于邢浩or鲁聃
可以从github上的pull request记录里看出我们曾经的规范化流程:
- 对于其他人
2.5 团队代码的软件工程质量
关于团队代码的软件工程质量,我们团队对自己的评分如下:
- 测试: ★★☆☆☆
- 代码规范: ★★★★☆
- 文档: ★★★★☆
- 需求分析与反馈: ★★★★★
关于测试:我们本次项目测试确实没做好,这也是本次项目最大的不足之处。物理实验报告对过程正确性要求是非常严格的,但是由于项目经理在这一方面预留的时间比较少,也没有强调做单元测试的重要性,导致开发人员几乎没有关于后台处理脚本的单元测试。虽然程序本身是可以根据一些真实数据跑出近似结果的,但是没有单元测试意味着缺少安全保障。那两颗星是给我们的黑盒测试的自我评价,在黑盒测试中我们测试出了12个BUG。并且由于我们的网站是11.11日上线的,所以我们发起了"双11捉虫令"的活动,这次活动共计找出5个BUG,均是由用户反馈得到。
关于代码规范:代码规范有严格的文档,并且在使用过程中开发人员遵守了代码规范上的绝大部分要求,尤其是变量的命名,常量的命名以及方法的命名等。并且每位开发人员都有相应的比较良好的注释,方便互相理解与对接代码。
关于文档:我们所有的文档都通过Github来维护,并且在第一周时就已经有了用户需求分析、团队编码规范、网站界面原型的雏形,到今天为止每一篇文档都至少经过2~3次的修缮工作,比之前更加健全,考虑更加周到。
关于需求分析与反馈:在第一周时,我们就已经发放了问卷调查用户关于网站发展方向上的意见,共收回有效问卷94份,并从中获得一些比较好的意见。在网站发布后,为了方便与用户的交流,我们专门成立了物理实验网站的交流群,有需求或反馈的信息我们第一时间即可获取。并且我们团队设计了诸多小活动和一些小的奖励措施比如发金额较小的红包(约5元一个)来鼓励用户提出更多好的建议与意见。截止至目前为止,我们已经将收集到的6条比较好的建议放在Github上的Issue里,作为改进建议列入了β阶段的计划中。 我们不仅做了问卷调查,还在群里做了群投票:
并且根据优先级排序依次开始处理了1021,1051和1061,到截止时间,已经成功做出了1021和1061的实验数据。
3、团队项目的实际进展
我们的项目进展情况如燃尽图所示。实际上我们在Scrum Meeting会议10次后,仍有约占1/4的工作量没有做完,当然,最后在维护稳定阶段我们集中将其中几个Issue最后消灭掉了。在项目进展的过程中,我们的Issue一方面因为任务的完成而在不断减少,另一方面由于Issue划分为小Issue而动态增长,截止到17号为止,Github上我们的Issue已经成功关闭了72个,而我们最初时Issue只有36个。Issue的细致划分,让团队内的每一个人都有更合理的团队项目实践的时间,有着更加细致的引导与实现方向。
3.1 注册登录功能
用户可以通过在注册页通过输入用户名、邮箱和密码完成注册功能(此版本还不具有邮箱验证功能)。用户可以在登录页通过输入邮箱和密码完成登录。其它所有的功能都必须在登录之后才能使用。
3.2 查看物理实验预习报告
用户可以在报告生成页通过选择相应的实验来查看对应实验的预习报告。
3.3 生成物理实验数据处理报告
用户可以导入数据,后台处理数据,得到对应实验的数据处理报告。(目前已经可以支持1021,1061,1071,1081四大实验)
3.4 收藏数据处理报告
用户在生成数据处理报告之后可以通过点击收藏按钮,收藏该实验以及与输入的数据对应的数据处理报告;用户还可以通过点击右上角的个人收藏页查看收藏的物理实验报告。
3.5 反馈功能
点击导航条上的反馈,即可选择给我们的邮箱发信,或在我们的博客下方留言,或者加入我们的QQ交流群。
3.6 持续集成
我们在网站发布后并没有停下脚步,而是一直在进行着完善以提供给用户更好的用户体验,大大小小63次commits代表了我们做好网站的决心(最后两个是一个人)
4、贡献分配
职位 |
姓名 |
具体贡献 |
项目经理 |
刘乾 |
|
框架设计师与后端工程师 |
邢浩 |
|
UI设计师与前端工程师 |
鲁聃 |
|
数据处理组组长 |
何小松 |
|
数据处理开发人员 |
王嘉豪 |
|
前端开发人员与测试 |
佘彦廷 |
|
数据处理开发人员与测试 |
黄雨萌 |
|
5、 软件特色功能
5.1 漂亮的公式与一键生成
5.2 从数格子到自动化画图
6、用户反馈
6.1 用户提出的建议
自网站上线以来,学弟学妹的反响热烈,许多学弟学妹给了我们非常好的反馈,以下为部分截图:
以上这些只是用户的部分反馈建议,比较好的建议我们都已经收录到了Github作为新功能将在β版本里考虑添加与推出。这些来自用户的心声与建议,是我们第二轮迭代展望的基础。
6.2 用户的贡献
除了建议外,有同学主动向我们贡献一些很好的资料与文件,鼓励以供网站的加速建成:
1、学长马冲当年做的方法在线计算网站:https://malash.me/project/phycacl/
2、有学弟主动在群里上传了一些他们曾经做过的为了方便所做的小工具:)
3、耿欣学弟贡献了之前他为1051写过的python处理文件和报告
4、田争曦学妹为我们找到了比较标准的1061的实验数据处理流程
5、听说我们要答辩,于东方学弟主动录了一段视频帮助我们
6、不明身份的学弟或学妹主动在我们的博客下留言给我们加油
6.3 用户找出的Bug
从用户那里获得的Bug如下几个,这是由我们的捉虫令活动发起后所得到的用户反馈的bug:
Bug1、
- Bug描述:网站密码明文传送,注册时后端没有检测密码里是否含有非法字符。
- 官方回复:密码后端是加密的,sql语句是编译的,不会产生sql注入,所以暂时不需要密码中含有非法字符对网站的影响。
- Bug报告者:6系小学弟冯xx(保护个人隐私不放名字了)
- Bug奖励:中等金额红包一枚
Bug2、
- Bug描述:预习报告名字错误,应该为 冰的熔解热测定
- 官方回复:文字性错误一样算bug
- Bug报告者:6系小学弟汪xx和王xx
- Bug奖励:小金额红包两枚
Bug3、
- Bug描述:在注册时每过一行就会多加一行宽格符
- 官方回复:bootstrap的一个小问题,现在已经修复
- Bug报告者:6系小学弟江x
- Bug奖励:小金额红包一枚
Bug4、
- Bug描述:选择框里输入1012(暂时没有的实验)点击select,不出现报错
- 官方回复:正则表达式写的有问题,已经更改
- Bug报告者:6系小学弟岳xx
- Bug奖励:中等金额红包一枚
7、总结
从知识层面上:
团队中的每个人都学到了自己之前没有接触过的知识。
黄雨萌:我在这一段时间内熟悉使用LaTeX处理物理实验报告、了解了在网页中嵌入PDF的方法、学会用Python编程处理数据、熟练使用Markdown编辑器。
佘彦廷:html,js,jq,css的基础用法,页面跳转,表格,浏览器自适应,bootstrap模态框,滚动条检测,xml构造与发送,网站工作机制
邢浩:在后端框架设计方面:我学会了逻辑处理和数据模型的分离,之后可以进一步解耦,前后端交接的api分离为路由,数据的处理逻辑主体分离为控制器,参数的预处理逻辑分离为中间件,后端的整体动作分离为系统服务和触发器,数据的处理分离为模型,数据库结构和填充分离为数据迁移和数据填充。这样就很好的保证了代码的条理清晰,重用性,易于维护。之后在数据模型方面,我进一步加深了对数据库完整性的理解,构建出符合3N范式标准,并有充分的完整性约束的数据库模型。
鲁聃:我学会了bootstrap,ajax,jQuery,js以及网站的一些其他技巧,学会了非常多的前端实用技巧。
刘乾:学会了matplotlib,numpy,scipy库关于积分计算,图形显示方面的技巧,学会了latex排版,学会了jinja2用来渲染latex公式,最重要的是学会了解决团队冲突与问题。
何小松:学会了latex处理,使用python读取xml文件,学会了matplotlib库的画图使用,学会了jinja2的模版替换。
王嘉豪:学会了latex里的表格处理,学会了使用Python编程处理数据并且能够熟练地使用Latex编写公式。
从团队层面上:
分工细化对团队项目的帮助非常大。最好能将每个人的任务明确到每天。我们的团队确实是这么做的。 开始团队项目以来,我们团队的项目经理坚持在每天早上或者前一天的晚上将每个人一天的任务开scrum meeting会议进行明确与公示。并每天按时追进、跟踪、检查任务完成情况,以便及时调整项目进度。这样的弊端是项目经理的任务会很重很繁琐,但是这样做非常有成效:团队项目很顽固的一个问题就是如何保证团队中每个人的工作量,而一个大而化之的分工很容易使个人的任务虚化、不具体,从而不好下手,加之deadline距离较远,很容易使人拖延。作为学生来讲,除了软件工程还有其他的课程,那么就很容易产生“没关系还有时间我先处理别的事务”的想法。每位队员都有切身体会,每天的任务、汇报和站立会议的机制逼迫我每天不得不挤出时间来做团队项目,从而保证了工作量。
这个团队在α阶段收获了很多,更多的不是说专业知识的增长,而是懂得如何化解团队内的冲突与矛盾,如何更好地与他人协作完成一个项目。而我作为整个项目的项目经理,见证了网站的从无到有,从小到大,从简陋到优雅。在这段心情起伏不定的日子里,我也懂得了一点至关重要的东西:只有你真正对自己的项目有自信,才有可能真正成功。
最后用一句话作为本次项目的小结吧:不求尽人如意,但求无愧我心。