认识敏捷开发
在课堂上了解了瀑布开发,又在课下学习敏捷开发过程后,我发现,敏姐团队做的开发工作虽然和瀑布开发一模一样,但他们的做事方式很不一样。简单来说,两者的差别在于:瀑布开发必须先完成当前的步骤后才能进行下一步骤,而敏捷团队做需求收集,设计,编码和测试,最后交付给客户。接着再重复这个过程,周而复始,工作推进的过程中不断地改善、调整流程,一直到项目完成为止。敏捷开发是一种整体流程,也就是说,需求收集,设计,编码和设计是完全整合彼此依赖的流程。在实践中,无论我们用什么方法敏捷开发,遇到缺陷,别等到最后关头,要立即修复,等它有机会在系统里繁衍存活了好几个月之后,修复成本可就高了;通过展示可工作软件的方式,才能发现想要的是什么。正因为敏捷流程能够照顾到客户的持续反馈,项目才能不偏不倚地走下去;还有一点就是,只写必需的文档,将文档工作融入流程,只写有关的,有效用的文档。总的来说,敏捷方式的核心思想就在于迅速交付商业价值,体现为可工作的软件,还要以定期增量的形式持续地交付价值。
Scrum角色
产品负责人
在Scrum中,产品负责人是唯一有权要求团队做事以及改变列表条目优先级的人。产品负责人需要确保团队理解了客户和最终用户的需要,并且相当于产品愿景的监护人。愿景包括,产品为谁而建、他们为何需要、如何使用。敏捷教练Simon Baker对产品负责任角色惊醒了精妙的描述:“你必须要认识到,要能够有效地推动项目向前以及负责最终能叫付出业务价值,你得写用户故事和接收测试,按业务价值划定用户故事优先级,决定接下来开发哪一个用户故事,提供快速反馈等等。作为项目的幕后推手,你必须得以可见、畅所欲言及客观的形象出现”。
Scrum Master
Scrum Master担当教练角色,引领团队达到更高级的凝聚力、自组织和表现。Scrum Master是团队的Scrum专家,帮助团队从Scrum上获取有可能得到的最大价值,Scrum Master还有一个另一个关键的作用,就是为团队移除障碍。
团队成员
Scrum是高度协作的,也是自组织的。团队成员可以全权决定如何完成工作,团队可以自行决定要使用的工具和技术,以及团队成员如何瓜分任务。
Sprint
Scrum过程的基本节奏是Sprint周期,不过这不是Scrum独有。敏捷方法论都有一个共同点,就是以迭代方式完成工作。
项目选择
在线评测系统(Online Judge)起源于国际大学生程序设计竞赛(ACM/ICPC),是一种采用黑盒测试原理进行计算机程序正确性判题的自动化程序。该系统具有比赛公平性好,评测自动化程度高、节约人力成本等优点,广泛应用于各类计算机程序设计比赛和教学。
几乎每一个大学都拥有自己OJ重点内容,像国内的北京大学和杭州电子科技大学国外的Codeforces和LeetCode都是一些著名的刷题网站,里面有众多的高质量的算法题供你练习,但是很遗憾,我们长沙学院没有属于自己的一套OJ系统,作为学校的一员和一个伪ACMER想建立自己学校的OJ。
计划实施
由于以前没有类似的项目经验,所以在开源HUSTOJ基础上进行实现,HUSTOJ分为两大部分,core和web,分别对应判题和数据管理两大功能。
core分为三部分,judged,judged_client,sim。
①juded是一个服务进程,负责轮询数据库或web端,提取判题队列
②judge_client进程为实际判题程序,负责准备运行环境,数据,运行并监控目标程序的系统调用,采集运行指标,判断运行结果
③sim为第三方应用程序,可进行语法分析判断文本的相似度,通过检验的程序将由judge_client复制进题目数据的ac目录,成为新的参考样本。
web分为两大部分,前端和admin目录下的管理程序。
团队合作
团队名称:BUGG
团队成员:周斌、唐浩、黄欣欣、许嘉荣、廖帅元、舒溢
团队分工:我在团队里负责项目前端的实现
如何在团队实践Scrum:我们要用Scrum显现出,作为一个团队,怎样最大化的输出,怎样最敏捷的应对各种变化,怎样让每个人忙的有价值。首先做好需求分析,然后将要开发的产品做一个产品级别的backlog;制定一个sprint计划,分析和评估各个产品backlog;根据指定的sprint backlog开始迭代开发,一个sprint的周期暂定为2周;Scrum会议每周开三次,每次不超过20分钟,所有人参加,不做无关的讨论。这是目前我们团队关于实践Scrum的计划,具体计划后面还会一步步细化改进。
转载于:https://www.cnblogs.com/xxx68799/p/7648292.html