首页 > 其他分享 >团队任务2-需求分析

团队任务2-需求分析

时间:2023-10-29 21:35:32浏览次数:44  
标签:需求 git develop Feature 任务 master Develop 团队 分支

Git的工作流:

在协作中,通常使用的工作流有一些不同的模型,但最常见的是Git Flow工作流,它基于分支管理。Git Flow 包括以下几个主要分支:

  1. Master分支:这个分支包含最近发布到生产环境的代码,即稳定版本。通常,只有通过经过充分测试和审查的代码才会合并到 Master 分支。

  2. Develop分支:Develop 分支是主要的开发分支,包含所有要发布到下一个 Release 的代码。这是开发团队的主要集成分支。

  3. Feature分支:Feature 分支主要用于开发新的功能。每个新功能通常都会有一个对应的 Feature 分支。一旦功能开发完成,这个分支会合并回 Develop 分支,然后被删除。

  4. Release分支:当准备发布一个新版本时,会基于 Develop 分支创建一个 Release 分支。这个分支用于解决小问题、版本号更新等准备工作。完成之后,会合并回 Master 和 Develop 分支,然后被删除。

  5. Hotfix分支:Hotfix 分支用于修复在生产环境中发现的紧急 Bug。一旦修复完成,会合并回 Master 和 Develop 分支。这确保了 Bug 修复同时也包含在下一个 Release 中。

这个工作流程会根据我们小组具体的项目需求进行适当的调整,但其实大多数情况下git的主要工作流程就是这样的。

这些分支管理策略不仅确保我们小组团队协作,合理分工。同时保持项目的稳定性和可维护性。

主分支

实际开发中,一个仓库(通常只放一个项目)主要存在两条主分支:master与develop分支。这个两个分支的生命周期是整个项目周期。就是说,自创建出来就不会删除,会随着项目的不断开发不断的往里面添加代码。master分支是创建git仓库时自动生成的,随即我们就会从master分支创建develop分支,如下图所示。

  • master:这个分支最为稳定,这个分支代表项目处于可发布的状态。

例如王二狗向master分支合并了代码,那就意味着王二狗完成了此项目的一个待发布的版本,项目经理可以认为,此项目已经准备好发布新版本了。所以master分支不是随随便便就可以签入代码的地方,只有计划发布的版本功能在develop分支上全部完成,而且测试没有问题了才会合并到master上。

  • develop:作为开发的分支,平行于master分支。

例如王二狗要开发一个注册功能,那么他就会从develop分支上创建一个feature分支 fb-register(后面讲),在fb-register分支上将注册功能完成后,将代码合并到develop分支上。这个fb-register就完成了它的使命,可以删除了。项目经理看王二狗效率很高啊,于是:“二狗你顺带把登录功能也做了吧”。二狗心中暗暗骂道:日了个狗的,但是任务还的正常做,二狗就会重复上面的步骤:从develop分支上新创建一个名为fb-login的分支,喝杯咖啡继续开发,1个小时后登录功能写好了,二狗又会将这个分支的代码合并回develop分支后将其删除。

支持分支

这些分支都是为了程序员协同开发,以及应对项目的各种需求而存在的。这些分支都是为了解决某一个具体的问题而设立,当这个问题解决后,代码会合并回主分支develop或者master后删除,一般我们会人为分出三种分支。

  • Feature branches:这种分支和我们程序员日常开发最为密切,称作功能分支。

必须从develop分支创建,完成后合并回develop分支

如下图所示。

  • Release branches:这个分支用来分布新版本。

从develop分支创建,完成后合并回develop与master分支。

这个分支上可以做一些非常小的bug修复,当然,你也可以禁止在这个分支做任何bug的修复工作,而只做版本发布的相关操作,例如设置版本号等操作,那样的话那些发现的小bug就必须放到下一个版本修复了。如果在这个分支上发现了大bug,那么也绝对不能在这个分支上改,需要Featrue分支上改,走正常的流程。

实例:王二狗开发完了登录注册功能后决定发一个版本V0.1,那么他先从develop分支上创建一个Release 分支release-v0.1,然后二狗在这个分支上把版本号等做了修改。正准备编译发布了,项目经理说:“二狗啊,你那个登录框好像向右偏移量1个像素,你可以调一下吗?”二狗心中有暗暗骂道:日了个狗,但是。。。你们懂得,功能还的正常改。不过二狗发现这个bug特别小,对项目其他部分不造成不可预知的问题,所以直接在release分支上改了,然后愉快的发布了版本1.0.版本上线后,二狗将这个分支分别合并回了develop与master分支,然后删除了这个分支。

  • Hotfix branches:这个分支主要为修复线上特别紧急的bug准备的。

必须从master分支创建,完成后合并回develop与master分支。

如下图所示:

git代码提交

1. 更新本地的 Develop 分支: 在你开始新的工作之前,首先确保你的本地 Develop 分支是最新的。你可以使用以下命令:

git checkout develop
git pull origin develop

这将确保你的本地 Develop 分支包含了团队的最新更改。

2. 创建并切换到 Feature 分支: 创建一个新的 Feature 分支,以进行你的工作。命名这个分支可以根据你的项目规则,通常是与功能或任务相关的名字。例如:

git checkout -b feature/new-feature

3. 开始工作并频繁提交: 在 Feature 分支上进行你的工作,按照你的项目需求和开发流程逐步实现功能。确保你经常提交你的更改。使用以下命令:

git add .
git commit -m "描述你的更改"

这将保存你的更改到 Feature 分支。

4. 同步 Develop 分支: 为了确保你的 Feature 分支与 Develop 分支保持同步,你可以定期将 Develop 分支合并到你的 Feature 分支:

git checkout feature/new-feature
git merge develop

这将确保你的代码基于最新的 Develop 分支。

5. 完成并提交 Feature 分支: 当你的功能开发完成时,进行最后一次提交:

git add .
git commit -m "完成新功能"

6. 推送到远程仓库: 确保将 Feature 分支的更改推送到远程仓库:

git push origin feature/new-feature

7. 发起 Merge 请求(Pull Request): 在 GitLab 或其他代码托管平台上,导航到你的仓库,然后选择 Feature 分支,并发起 Merge 请求。这将通知团队成员来审查你的代码。

8. Code Review: 等待团队成员对你的代码进行审查。他们可能会提出建议或需要你进行一些更改。

9. Merge: 一旦你的 Merge 请求通过审查,团队成员会将你的代码合并到 Develop 分支。

代码审查

由仓库管理员进行统筹安排,审查各个issue的完成情况,各个代码的测试使用情况。

代码合并

具有主要开发者权限,可以进行最后的合并操作,feature的分支合并到dev分支,dev分支合并到release或master分支。
需要添加标签、里程碑!方便后面的成员管理。

团队任务计划

(一)执行计划

  • Issue 使用: Issue 是一个强大的工具,可以用来记录各种信息和计划。在你的团队中,你可以使用 Issue 来制定 OKR(Objective and Key Results,目标与关键成果)、记录项目讨论、发布任务、积累重要的技术信息,或者分享创意想法。

  • 主要应用:

    • 制定周目标(OKR):使用 Issue 来记录每周的工作目标,可以在其中列出需要完成的任务。
    • 发布任务:团队成员可以认领任务并将任务状态更新为正在做、待认领或已完成。
    • 发布公告:记录重要的技术点或项目公告,供团队内部参考。

(二)里程碑

  • 里程碑(Milestone): 用于标记代码提交和任务发布的阶段,有助于了解项目的进展情况。通过将任务和代码与里程碑相关联,团队可以清晰地看到目前项目所处的阶段。

  • 应用场景:

    • 标记每个迭代周期或版本的发布。
    • 确定项目的重要时间点,如测试、审核和上线日期。
    • 了解项目整体进展情况,查看每个里程碑的完成情况。

(三)标签/标记

  • 标签/标记: 可以用于对任务进行分类、指定优先级、追踪参与的成员以及标记任务状态。

  • 主要应用:

    • 标记优先级:可以使用不同的优先级标签,如 "优先级1"、"优先级2"、"优先级3",以便团队了解任务的重要性。
    • 标记参与的成员:通过为任务添加标签,可以查看每个成员认领了哪些任务以及任务的进展情况。
    • 标记任务状态:使用标签来指示任务的状态,如 "正在做"、"待认领"、"已完成",以方便团队协作。
    • 标记任务类型:可以将任务分类为不同的类型,如 "文档"、"部署"、"公告",以区分任务的性质和需求。

需求分析

参考蓝墨云班课中资源,撰写本项目的《需求规格说明书》,并提交至码云。

在随笔中附《需求规格说明书》的Git链接(markdown文件及pdf文件,tip:pdf可由markdown转pdf工具得到)。
链接如下:https://gitee.com/xiao-zhancheng/codes/q5cy8fd7rogm3u1xn9vjb54/archive

撰写《需求规格说明书》的工作流程、组员分工和组员工作量比例

工作流程

  1. 小组讨论,确定基本方向
  2. 组长将任务切分为五部分,小组成员认领
  3. 相关负责同学汇总和提交
    分工
    · 张顺扬:统筹安排和负责验收标准部分
    · 徐元琦:负责用户场景部分和功能描述部分
    · 沈楗翔:负责管理团队公众号,汇总小组成员介绍博客。负责引言部分
    · 李欣怡:负责管理团队git仓库,负责界面设想部分
    · 肖权城:负责管理团队git仓库和学习相关知识,负责撰写基础技能部分

标签:需求,git,develop,Feature,任务,master,Develop,团队,分支
From: https://www.cnblogs.com/zsy1748774883/p/17796516.html

相关文章

  • 实验1-实验任务6
    #include<stdio.h>#include<math.h>intmain(){ doublex,ans; while(scanf_s("%lf",&x)!=EOF) { ans=pow(x,365); printf("%.2f的365次方:%.2f\n",x,ans); printf("\n"); } return0;}  ......
  • 《需求分析与系统设计》阅读笔记2
    需求规格说明涉及对客户需求在需求确定期间进行详细建模,特别关注系统预期提供的服务。软件体系结构定义了系统内软件组件和子系统之间的相互作用方式以及它们的结构和组织形式。模型-视图-控制器(MVC)框架是许多现代体系结构框架和相关设计模式的支持者。模型对象代表了数据对象,即......
  • 实验1-实验任务5
    1#include<stdio.h>2intmain()3{4intyear;5year=(float)(static_cast<double>(1000000000/365/24/60)/60)+0.5;6printf("10亿秒约等于%d年\n",year);7return0;8} ......
  • 实验1-实验任务3
    1#include<stdio.h>2intmain()3{4charans1,ans2;//用于保存用户输入的答案5printf("每次课前认真预习、课后及时复习了没?(输入y或Y表示有,输入n或N表示没有):");6ans1=getchar();//从键盘输入一个字符,赋值给ans17getchar();......
  • Scrum敏捷开发培训:提升团队效率和项目交付速度"
    ​课程概述 Scrum是目前运用最为广泛的敏捷开发方法,是一个轻量级的项目管理和产品研发管理框架。这是一个两天的实训课程,面向研发管理者、项目经理、产品经理、研发团队等,旨在帮助学员全面系统地学习Scrum和敏捷开发,帮助企业快速启动敏捷实施。课程采用案例讲解+沙盘演练的......
  • 电子公文系统-规格需求说明书
    规格需求说明书1引言2用户场景3类图4界面原型5功能描述6验收验证标准角色功能功能实现预期结果系统注册姓名、电话号码、传真、邮箱、密码、单位、所属部门等基本信息,符合一定要求或验证完成注册对不同部门的工作人员基本信息录入系统,进行注册并且验证......
  • 转岗项目经理后,我是如何分析需求的
    项目经理有一项工作就是需求分析,需求的本质是根据认知进行假设,然后给出判断。如果需求分析的结果出了问题,那么产品也必然会失败。本文针对如何进行需求分析展开分析,希望能对你有所启发。一、什么是需求为什么要明确需求的定义,因为需求很容易被误解。在这里我们要区分下用户需求和产......
  • 撰写《需求规格说明书》的工作流程、组员分工和组员工作量比例
    工作流程准备工作共同研读团队任务需求分析目标以及指示进行小组会议讨论解决方法总结相关建议,确定基本行动基本行动调研分析用户需求项目基本概述及相关介绍性能分析及功能需求使用类图直观展示收尾行动对产品性能以及功能需求的验证验收标准......
  • 软件工程读后感3-软件需求过程3
    最近,我阅读了掌握需求过程的下一部分。功能性需求描述了产品的动作。它们应该做到能形成一份完整的、尽量避免二义性的产品功能描述。过去,我对于功能性需求的认识不够,将来,我会尽量了解更多有关功能性需求的知识。非功能性需求描述了产品的质量方面的表现——它是否需要快捷、安全......
  • 工业拾音器麦克风需求分析总结
    前记 随着数字化进程的不断推进,以及随着chatgpt的横空出世。在工业领域根据声音进行故障诊断的算法逐渐增多。最近一年做了不少工业领域拾音的产品。他们的需求可以说和传统的拾音器有很大的区别。 场景解析 传统工业化走到现在,遇到了很大的问题。一个很大的突破口就是需......