软件工程课程作业

一、什么是DevOps?

DevOps中的Dev指的是Development(开发),Ops指的是Operations(运维)

DevOps包含了三个部分:开发、测试和运维,是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合。

DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系;突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

二、查阅相关资料,了解什么是Scrum中的3355?

Scrum是用于开发、交付和持续支持复杂产品的一个框架,是一个增量的、迭代的开发过程。

Scrum框架敏捷项目管理核心要素是3355,指的是3个核心角色,3个工件,5个关键事件和5个价值观。

1、3个核心角色

 (1)产品负责人

负责最大化投资回报率,通过确定产品特性,把它们翻译成一个有优先级的列表,为下一个Sprint决定在这个列表中哪些应当优先级最高,并且不断地重新调整优先级和梳理这个列表。

职责是定义需求,定义需求优先级,定义需求的验收标准,定义产品发布内容与日期。

 (2)Scrum 教练

帮助产品开发团队学习并应用Scrum来达成商业价值,为大家服务,会做任何力所能及的事情来帮助团队、产品负责人和组织取得成功。

职责是促进团队的工作,帮助团队熟悉和掌握敏捷的价值观与框架,帮助排除影响生产力障碍,确保团队不受打扰。

(3)开发团队

建造产品负责人所指定的产品。对交付结果负责。

团队是“跨职能”的,它包含了所有专业能力,如开发、测试、需求分析等,并且它是“自组织”,被给予很高程度的自治和责任。

2、3个工件

(1)产品代办清单

产品视角的需求清单,每项需求都需要描述其外部价值

(2)Sprint迭代代办清单

此次冲刺周期内规划要完成的内容,团队需要一起定义“完成”标准

(3)潜在可发布产品增量

冲刺结束后可对外发布的产品功能增量部分

3、5个关键事件

(1)Sprint冲刺

2~4周,固定周期,固定事件开始,固定事件结束。

(2)Sprint 计划会

Sprint计划会的核心议题是下一次冲刺要实现的目标和范围。

(3)每日 Scrum 站会

站会的目标是促进信息在团队内共享与透明。每次15分钟左右,不对问题进行深入讨论,每天固定时间召开。

(4)Sprint 评审会

评审会在冲刺默契召开,检查本期的成果,需要团队全员参与,并邀请产品相关干系人对产品进行展示,若与产品负责人预想的不一样,产品负责人可以拒绝接收成果。

(5)Sprint 回顾会

冲刺结束后,团队一起复盘本次冲刺的过程,总结经验与教训,并形成切实可行的改进清单。

4、5个价值观

(1)开放

Scrum把项目中的一切开放给每个人看

(2)尊重

每个人都有他独特的背景和经验

(3)勇气

有勇气做出承诺,履行承诺,接受别人的尊重

(4)专注

 把你的心思和能力都用到你承诺的工作上去

(5)承诺

愿意对目标做出承诺,全身心投入去完成Scrum团队的目标,而不是必须按计划完成,两者之间是有区别的。

三、理解结对编程

1、含义

结对编程来自于极限编程,是一种敏捷软件开发方法,通过两名程序员共同在同一计算机上编写代码,以提高代码质量、知识分享和团队合作。

2、实践形式

(1)分工明确型团队:
一个人负责编写代码,另外一个人审查代码,负责代码的正确性和可读性;
一个人负责详细设计,一个人负责代码实现;
一个人写功能代码,一个人写测试用例。

(2)共同合作型团队:

两个人共同讨论关于所开发功能的架构设计、编码实现、测试方法等,然后轮流做输入和观察的工作。

3、优势

(1)提高代码质量:两名程序员共同审查和编写代码,可以更加快速地发现错误和缺陷,减少拼写错误等,从而提高代码质量。

(2)有利于知识分享:结对编程中两位程序员可以互相学习各自的知识和技能,更有经验的程序员可以向较新的程序员传授技能。

(3)提高工作效率:两位程序员共同工作可以更加快速地完成任务,遇到问题时可以及时地沟通,减少了寻求帮助的等待时间。

(4)团队合作:结对编程鼓励团队成员之间的紧密合作,增强了团队的凝聚力和协作能力。

(5)减少代码错误:两个程序员共同审视一段代码,可以大大地减少软件中的漏洞和问题。

(6)提高工作的积极性:当面对困难时,可以向另一个程序员寻求帮助,一起分担和共同解决问题,能够增加工作的积极主动性。

(7)互相监督,共同进步:结对编程需要两个程序员间的密切合作,要保持同频和专注度,可以减少工作拖延和偷懒的情况。

(8)多角度看待问题:两个程序员可以从不同的方面来思考和解决问题,更加具有创新性,看待问题更加全面和客观。

你可能感兴趣的:(软件工程课程作业,软件工程)