如何使用 CODING 进行瀑布流式研发

图片

你好,欢迎使用CODING!这份最佳实践将帮助你通过 CODING 更好地实践瀑布流式开发流程。

什么是瀑布流式研发

1970 年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到 80 年代早期,它一直是唯一被广泛采用的软件开发模型。瀑布模型要求软件开发严格按照【需求→分析→设计→编码→测试】的阶段进行,每一个阶段都可以定义明确的产出物和验证准则。瀑布模型在每一个阶段完成后都可以组织相关的评审和验证。严格的瀑布模型每一个阶段都不能重叠,需要在评审通过后才能进入下一阶段,遵循自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

图片

瀑布模型的优点是可以保证整个软件产品的质量,保证缺陷能够被提前发现和解决。采用瀑布模型可以保证在整体上充分把握系统,使系统具备良好的扩展性和可维护性。

如何使用 CODING 进行瀑布流式研发管理

博弈论(Game Theory)告诉我们看起来利益最大化的策略并不能帮我们达到最好的目标,而是要根据实际情况来制定最合适的策略。同样的,在软件研发管理的战略上,企业并不需要把所有的系统都换成最新、最快的,更重要的是根据业务模式的不同来匹配相应的管理模式和管理工具,让研发和业务能同频共振,而不是互相拖累。

图片

不同部门的 IT 需求侧重点各不相同。比如类似手机 APP 类应用,往往需要更灵敏的市场反应速度和创新能力,因此需要更有弹性的 IT 架构和快速迭代的软件交付能力。相对而言,后台支持性部门比如 ERP、数据库等部门,其业务重心在于保持运营稳定、风险管控以及成本控制。因此,他们的 IT 需求偏重稳定、安全,对于快速响应能力和弹性架构的要求相对较低。这也是瀑布流式研发管理经久不衰的原因。

一、创建项目

第一步是在 CODING 中创建一个项目,之后所有的工作都在这个项目中完成。在确认好团队成员后,就可以邀请所有人加入到项目中来。每一个项目都对应独立的代码仓库,因为很多中后台的研发项目会涉及到外部供应商的参与,独立的代码仓库可以确保数据的相对隔离,确保企业数字资产安全。

图片

二、配置权限

在邀请完所有成员后,项目经理就需要为不同的角色配置相应的权限。瀑布流研发模式的核心在于安全和可控性,CODING 权限管理功能可以帮助项目管理员方便地根据项目成员的角色来分配相应的权限,减少误操作带来的安全隐患,同时还支持自定义用户组,增加研发管理的可控性。在项目开始的时候,由项目经理先行配置好所有成员的权限,确保团队更有序地进行软件开发。

三、需求文档撰写

在配置完所有权限后,项目便正式进入研发阶段。此时由项目经理开始文档的撰写,瀑布流式研发管理模式的特点就是各个阶段都需要完备的文档支持。

如果团队中有产品经理的话,产品经理会通过 CODING 的需求管理功能创建一个需求池。产品经理将规划上线的功能、用户的反馈以及市场调研的结果整理出来,通过需求管理中需求的形式统一归纳,形成需求池。同时项目经理对需求池中的需求进行进一步分析,根据团队习惯将需求分为技术问题、设计问题和产品问题。每一条需求下都会根据需求的复杂程度创建一系列子任务。

图片

产品经理亦可在 Wiki 中根据需求撰写完整的产品功能文档。 同时可以使用 CODING 的文件功能上传分享产品的原型图。 CODING 的文件功能和 Wiki 功能为研发团队提拱了内置的文档协作和团队知识沉淀工具。

四、产品研发

图片

完成产品的原型设计和功能说明文档后,项目经理开始邀请研发团队加入项目,由研发工程师开始进行相关功能的交付开发。如果需求中涉及设计团队,研发工程师可以直接在需求管理页面通过关联功能关联相应的设计任务。

图片

CODING 研发管理系统的代码仓库支持 Git 和 SVN 两种主流版本控制方式,方便各类研发团队快速上手。

图片

瀑布流式研发管理中最看重的一点就是质量。CODING 内置的 Code review 功能和持续集成模块是确保软件研发质量的关键。

  • Code Review

研发工程师开发完成后通过提交 Merge Request 进行代码评审,通过代码评审后 merge 进入 master 分支,确保代码质量。

  • 自动化测试

图片

可使用持续集成模块进行自动化测试,在确保软件质量的同时大幅节省开发人员的时间。CODING 的持续集成功能对每次提交的代码不断进行自动化的单元测试、代码检查、编译构建、契约测试,甚至自动部署。在 CODING 持续集成模块中可以对持续集成功能进行设定,当开发者 push 代码时,会自动触发 CODING 持续集成,持续集成会自动编译并测试该 commit。CODING 持续集成支持在任意阶段触发持续集。当开发者提交了一部分修改完成的代码后,总是希望可以快速、持续地得到直观且有效的反馈,以达到我们持续快速交付的目的。这也是 CODING 持续集成功能所希望达到的目标。

CODING 的持续集成预置了大量的构建环境镜像,例如 Java、Python、NodeJS 等等。同时还支持 Docker 镜像构建,让开发者可以快速上手。

当持续集成通过后,便可以把代码更新到 staging 环境。

五、测试阶段

更新 staging 的代码后,开始由测试人员进行相关测试。全面完善的测试也是确保软件质量的关键。在 CODING 的测试管理模块中可以方便高效地编写测试用例和创建测试计划。

图片

当开发进行到测试阶段后,测试工程师便可以直接在平台上执行测试计划,并在计划中的每个用例里标注测试结果,如测试未通过则需记录相应的错误信息。

图片

如果测试出现问题则会直接反馈到产品,再由产品分配开发进行修复,如此反复直到达到可以交付的标准。

六、数字资产安全

大部分瀑布流式研发管理会涉及企业核心的中后台数据和代码。这就使得数字资产安全成为重中之重。CODING 的安全简介详见:链接

点击立即使用 CODING 进行瀑布流式研发

### 软件工程与工程经济学期末复习资料 #### 1. 基本概念理解 为了更好地准备考试,考生应深入理解软件工程和工程经济学中的核心概念。这包括但不限于以下几个方面: - **软件定义及其特性**:软件是指计算机系统中按照特定顺序执行的一系列指令集合[^1]。 - **产业背景**:了解当前全球范围内软件产业发展趋势以及中国软件行业的现状和发展方向。 - **项目管理和开发程**:熟悉常见的几种软件生命周期模型(如瀑布模型、迭代增量式模型),并能区分不同类型的项目管理模式之间的差异。 - **质量保障措施**:掌握如何通过各种手段来提高产品质量,比如需求评审、设计审查、单元测试等方法的应用实践。 - **经济学基础理论**:学习有关货币时间价值的概念;掌握现金分析技巧用于评估投资项目的价值;能够运用净现值法(NPV)、内部收益率(IRR)等多种经济评价标准来进行决策支持[^2]。 #### 2. 成本核算原则 对于成本控制而言,重要的是要清楚地区分直接成本和间接费用,并合理分配这些开支给各个具体的产品线或服务部门。以下是关于成本计算的一些要点: - **全面统计各项支出**:记录所有涉及的人力资源耗费情况以及其他必要的物质消耗数据,例如办公场地租赁费、生产设备购置款等固定资本投入部分也需纳入考量范围之内[^3]。 - **精确划分两类开销**:将那些可以直接归属至某一单独任务上的花费认定为直接成本;而像公共设施维护保养这样的普遍性支出则属于间接性质的成本范畴内,在实际操作过程中往往需要依据一定比例将其摊派到各受益单位上去处理。 - **最终求得总体数值**:经过上述两步之后就可以得出总的生产制造成本了,这对于后续制定价格策略有着至关重要的意义所在。 #### 3. 过程分解技术应用 当面对复杂的大型工程项目时,采用过程分解的方法可以帮助我们更有效地完成工作量预估的任务。该方式主要是基于对整个研发周期内的各个环节进行细致拆解,从而获得更为精准的结果输出。具体来说就是把整体作业划分为若干个小阶段——从最初的市场调研到最后的产品发布验收为止,针对每一个独立模块分别做出相应的工时预测,最后累加起来即能得到较为接近实际情况的整体工期估计值[^4]。 ```python def estimate_project_duration(stages, stage_estimates): total_estimate = sum(stage_estimates.values()) return f"The estimated duration of the project is {total_estimate} days." stages = ['analysis', 'design', 'coding', 'testing'] stage_estimates = {'analysis': 10, 'design': 15, 'coding': 30, 'testing': 20} print(estimate_project_duration(stages, stage_estimates)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值