[BUAA软工]Alpha阶段事后分析
设想和目标
虽然我们是从零开始的一个自定义项目,但语音Coding助手从一开始的设计与目标就很明确:加入语音接口使其能在shell端实现命令语音实现以及编辑运行脚本,设计前端编辑器并将后端shell与编辑器结合起来形成一个完整的项目,完善功能以及实现英文听写......而我们以及跨过了alpha阶段正在逐步着手下一阶段的工作和任务。而在每天的Scrum Meeting中我们又会不断地提出新的需求与需要解决的问题,但并不会使我们项目的整体主线产生大的偏移。我们项目的典型用户其实主要分为两类,一类是肢体障碍人群,帮助肢体残障人群进行方便的编程活动也是我们最初做这个项目的初衷;第二是那些通勤中的程序员,为了缓解广大程序猿在通勤过程中记录idea,连接云服务器,运行脚本的需要。所以我们是特别需要用户反馈的一款项目,因为方便快捷的使用是这款语音Coding助手最重要的地方,如果用户实现起来都很困难,那么我们的工作将没有任何意义。所以不断的听取试用的同学以及助教的建议来改善我们的需求与目标也是十分重要的。而更加详细的典型用户和典型场景的描述在我们之前的功能规格说明书已经描述分析的十分清楚了。
计划
我们团队的计划大致分为两种,一种是在每个阶段初期我们会制定比较长远的计划,比如这个阶段需要攻克的主要任务以及达到的预期目标,这些都是大家都商量拟定好的,而我们在这个阶段的所有工作也都是照着这个计划朝着阶段性的里程碑目标进行着。而每天细分的个人的计划是我们的PM和每个人在Scrum Meeting中行进分配与协商,根据每个人不同的时间安排与能力,在与组员个人进行交流与确认之后,PM会在github上面发布详细的issue,每一项具体任务的定义与交付以及对应的分类和隶属的阶段都有详细的定义与记录,具体可以查看我们团队的github issue。项目在alpha阶段的整个过程也都正常按照计划进行,个人的任务也都按时交付。但在即将要发布的时候,我们却发现了一个史诗级的bug,将termux包名改为我们自己的包名之后致使termux自己维护的源的包出现了错误的情况,具体详情可以查看我们当时的issue说明。而这个问题也影响了我们在alpha阶段的预期发布,导致既定发布时间延迟。这个风险是在计划过程中不太好估计到的,因为之前接触的很多Android项目并不会因为更改包名而出现类似的问题。我们的问题是在alpha阶段计划中并没有留下缓冲区,每天的工作推进松弛有度,导致在冲刺阶段出现了问题延迟了发布。缓冲区是每个项目必需的给项目交付时间留有余地的预先性设定,可以在遇到未知风险的时候可以从容的在缓冲区处理并按时交付,而我们团队在alpha阶段所经历的这次bug风险正是因为没有留有缓冲区而导致的发布延迟。所以在beta阶段我们会改进这一点,在前期的工作中加紧一些,留下几天的缓冲区,可以从容应对未知突发的风险,如果没有遇到可以在缓冲区进行项目的完善和优化。
资源
我们团队在alpha阶段是6个成员,人力资源方面是充足的。而且我们团队成员在后端开发方面也很有经验,可能在前端方面大家经验都有所欠缺,所以alpha阶段前端还是有很大一部分时间在于Android前端的学习以及完成了一个简易的前端编辑器。alpha阶段后端的任务可能偏重一些,所以在这一阶段后期也有一位负责前端的人员快速投入到了后端的工作中,协助后端工作人员解决项目在后期遇到的困难。而在beta阶段由于转会我们的团队也是变成了5人,在人力资源安排上也进行了一定的调整,任务也更加艰巨。而在每项任务的时间与人员等资源安排上也会在组会上根据任务的难易程度和繁琐程度来讨论协商,根据alpha阶段的经验,我们对于任务资源的拆分和分配还算合理,大家都能在规定时间内通过自助的结对编程等方式准时完成任务。
变更管理
如果有什么变更的消息,我们的PM会在github上面发issue并 “@” 相关部分的成员,github会通过邮箱来告知成员有新的变更通知。如果是比较紧急的一些变更消息或者突然的一些工作请求组长或者PM会在我们的团队群里面去通知大家,在这个信息泛滥的时代相信大家也会时不时的注意一下自己手机上的消息,所以通知还是可以及时的传达给每一个成员以获得更快的反馈。另外每日组会也是很重要的一个收集以及传播信息的有效的方式,每天我们我们都会准时召开例会,会总结一下当前的进度以及决定第二天的任务之类的。所以例如“推迟”和“必须实现”等这种信息基本都是在每日组会进行一个商量决定以及分配的。对于项目的出口条件,我们的alpha阶段完成的部分已经是一个比较完整的改自termux 的语音助手了,所以说我们可以说在alpha阶段我们已经完成了我们之前既定的所有任务与目标——“做好了alpha阶段”。不过离一个完善的项目当然还很远,我们的出口条件就是很好的完成我们已经拟定好的任务,这个项目可以被他人顺利很好的使用,这就是我们阶段性的“做好了”。而由于每日例会的存在,特别紧急需要的变更也不太可能出现,所以只要按部就班有反馈与分配,同时变更就会跟进到每一个成员。
设计/实现
我们整体的设计工作是在每个阶段初期的正式组会上完成的,由组长提出一个大概的框架,然后大家一起讨论将这颗集任务,分工,目标等多项设计的框架树填充完整,然后各尽其责。在实际工作过程中前端和后端都出现了一定的bug,其中后端一个很致命的bug也在前面的“计划”部分有过介绍。而在发布之后会有一些需要改进的影响用户体验的bug,后面我会在“改进”部分详谈,并没有再出现过其他重要的bug。
测试/发布
我们在alpha阶段重点是在于后端shell对于语音的识别等方面,所以我们的测试重点也在语音接口与termux测试(前端只是简单的编辑器,基本在试用过程中就可以把测试完成了),包括单个字符,其他未知字符,字符组合,已经定义好的python关键字等,具体测试相关的内容可见测试报告,其中还有对不同机型不同环境的各种操作测试。在发布方面由于我们没有设置缓冲区的缘故,所以我们的发布时间被延迟了,所以我们首先通过百度云盘来发放apk从而获得第一轮的用户反馈信息。而在发布过程中,我们首先选用了学长推荐的酷安app平台,可是在等待审核过程中发现酷安需要盖有公章的安全测试报告之类的东西,不能稳定而快速地通过审核,所以转而在应用汇app平台发布。之后我们肯定会去在各种app平台去发放我们的产品。
对比敏捷的原则,你觉得你们小组做得最好的是什么?
我认为我们小组做的最好的是“在团队内部,最具有效果并且最具有效率传递信息的方法,就是面对面的交谈。”因为我们完全落实了课程所提倡要求的每日例会,而每日例会也确实给我们团队提供了更多的面对面的交谈机会,即使是有多人不能当面当场的情况,我们也会决定一个例如晚上的时间进行一个视频会议,同样可以起到面对面交谈的作用。大家可以当面反馈交流,更高效明确自己的任务目标以及与其他成员之间的协作与交付关系。
什么是在下个阶段要改进的地方?越具体越好
- 首先当然是完成好我们beta阶段最基本的工作,连接后端shell和前端编辑器,并且使功能完整无误
 - 有用户反馈voice的button可以改成是悬浮型(可移动)的,以便使用
 - 在软件第一次启动的时候我们会加上一个教程,因为用户可能会因为操作上的错误而导致软件不能正常运作
 - 前端编辑器有一个保存文本不会自动刷新的小bug,我们也会不断寻找类似的有关用户使用感受方面的bug并不断修复
 

[BUAA软工]Alpha阶段事后分析的更多相关文章
- 软工_Alpha阶段事后分析总计
		
1.设想和目标 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件主要解决狼人杀玩家在游戏时的一些痛点.因为之前自己对于游戏中那些不方便的地方有过体 ...
 - [BUAA软工]Alpha阶段测试报告
		
测试报告 一.测试计划 1.1 功能测试 1.2 UI测试 1.3 测试中发现的bug https://github.com/bingduoduo1/backend/issues/21 https:/ ...
 - [BUAA软工]Alpha阶段项目展示
		
[冰多多]Alpha项目展示 冰多多项目: 语音coding 助手, alpha阶段目标: 语音辅助输入 一. 团队成员的简介和个人博客地址 成员 角色 个人博客地址 卓培锦 PM, 后端开发 htt ...
 - [Alpha阶段]事后分析博客
		
目录 Alpha阶段事后分析博客 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 讨论照片 Alpha阶段事后分析博客 作业要求:Alpha阶段事后分析 设想和 ...
 - [软工顶级理解组] Alpha阶段事后分析
		
目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 质量提高 会议截图 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰 ...
 - 软工alpha阶段个人总结
		
一.个人总结 类别 具体技能和面试问题 现在的回答(大三下) 语言 最拿手的语言之一,代码量是多少? java,代码量在一万行左右 语言 最拿手的语言之二,代码量是多少? C语言,代码量在五千行左右 ...
 - Alpha阶段事后分析报告
		
每个团队编写一个事后分析报告,对于团队在Alpha阶段的工作做一个总结. 请在2016年11月24日上课之前根据下述博客中的模板总结前一阶段的工作,发表在团队博客上,并在课上的事后分析会上进行汇报,并 ...
 - [软件工程基础]Alpha 阶段事后分析
		
设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 帮助选修物理实验的学生撰写实验报告,计算实验数据,验证计算结果,并提供一个讨论的平台. 全体成员认 ...
 - Alpha阶段事后分析
		
设想和目标 我们在Alpha阶段对网站的定位布局一直在摸索,网站所有功能和网站所能解决的需求痛点并不是在前几次会议就定死了的.Alpha阶段整个过程中我们团队靠着频繁的scrum会议和微信群交(shu ...
 
随机推荐
- 【RAC】 RAC For W2K8R2 安装--RDBMS软件的安装(五)
			
[RAC] RAC For W2K8R2 安装--RDBMS软件的安装(五) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也 ...
 - nodejs puppeteer linux(centos)环境部署以及用puppeteer简单截图
			
1.安装Node环境 如果有安装Node请忽略第1点 #下载cd /usr/local/srcwget https://nodejs.org/dist/v10.15.3/node-v10.15.3-l ...
 - 【监控】jvisualvm之jmx远程连接 jar启动应用
			
一.Java -jar启动添加如下参数就可以了 -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=127.0.0.1 -Dcom.su ...
 - openssl获取ssl证书,配置https
 - UDS诊断学习笔记
			
定义介绍: UDS(Unified Diagnostic Service)诊断的诊断服务.诊断协议是面向整车所有ECU(电控单元)的一种诊断通信协议,是诊断服务的规范化标准. UDS本质上是一系列服务 ...
 - 【原创】STM32低功耗模式及中断唤醒(基于BMI160及RTC)的研究
			
预研目标 六轴静止时,终端进入低功耗模式:六轴震动时,终端正常工作模式,从而极大减少非工作时的电流消耗. 解决方案 机器静止时,依据六轴算法,CPU进入休眠(停止)模式:机器工作时,触发六轴中断唤醒C ...
 - Codeforces D. Little Elephant and Interval(思维找规律数位dp)
			
题目描述: Little Elephant and Interval time limit per test 2 seconds memory limit per test 256 megabytes ...
 - linux卸载及安装mysql 5.7以上
			
删除: 1.rpm -qa|grep -i mysql 查看安装的mysql 2./usr/local/mysql/support-files/mysql.server stop 停止mys ...
 - ASP.NET Core  ----  系列文章
			
(13)ASP.NET Core 中的选项模式(Options) (12)ASP.NET Core 中的配置二(Configuration) (11)ASP.NET Core 中的配置一(Config ...
 - 第七篇:ORM框架SQLAlchemy
			
阅读目录 一 介绍 二 创建表 三 增删改查 四 其他查询相关 五 正查.反查 一 介绍 SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进 ...