你好,欢迎使用 CODING !这份最佳实践将帮助你通过 CODING 更好地实践瀑布流式开发流程。
1970 年温斯顿·罗伊斯( Winston Royce )提出了著名的“瀑布模型”,直到 80 年代早期,它一直是唯一被广泛采用的软件开发模型。瀑布模型要求软件开发严格按照 [需求→分析→设计→编码→测试] 的阶段进行,每一个阶段都可以定义明确的产出物和验证准则。瀑布模型在每一个阶段完成后都可以组织相关的评审和验证。严格的瀑布模型每一个阶段都不能重叠,需要在评审通过后才能进入下一阶段,遵循自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
瀑布模型的优点是可以保证整个软件产品的质量,保证缺陷能够被提前发现和解决。采用瀑布模型可以保证在整体上充分把握系统,使系统具备良好的扩展性和可维护性。
博弈论( Game Theory )告诉我们看起来利益最大化的策略并不能帮我们达到最好的目标,而是要根据实际情况来制定最合适的策略。同样的,在软件研发管理的战略上,企业并不需要把所有的系统都换成最新、最快的,更重要的是根据业务模式的不同来匹配相应的管理模式和管理工具,让研发和业务能同频共振,而不是互相拖累。
不同部门的 IT 需求侧重点各不相同。比如类似手机 APP 类应用,往往需要更灵敏的市场反应速度和创新能力,因此需要更有弹性的 IT 架构和快速迭代的软件交付能力。相对而言,后台支持性部门比如 ERP、数据库等部门,其业务重心在于保持运营稳定、风险管控以及成本控制。因此,他们的 IT 需求偏重稳定、安全,对于快速响应能力和弹性架构的要求相对较低。这也是瀑布流式研发管理经久不衰的原因。
第一步是在 CODING 中创建一个项目,之后所有的工作都在这个项目中完成。在确认好团队成员后,就可以邀请所有人加入到项目中来。每一个项目都对应独立的代码仓库,因为很多中后台的研发项目会涉及到外部供应商的参与,独立的代码仓库可以确保数据的相对隔离,确保企业数字资产安全。
在邀请完所有成员后,项目经理就需要为不同的角色配置相应的权限。瀑布流研发模式的核心在于安全和可控性,CODING 权限管理功能可以帮助项目管理员方便地根据项目成员的角色来分配相应的权限,减少误操作带来的安全隐患,同时还支持自定义用户组,增加研发管理的可控性。在项目开始的时候,由项目经理先行配置好所有成员的权限,确保团队更有序地进行软件开发。
在配置完所有权限后,项目便正式进入研发阶段。此时由项目经理开始文档的撰写,瀑布流式研发管理模式的特点就是各个阶段都需要完备的文档支持。
如果团队中有产品经理的话,产品经理会通过 CODING 的需求管理功能创建一个需求池。产品经理将规划上线的功能、用户的反馈以及市场调研的结果整理出来,通过需求管理中需求的形式统一归纳,形成需求池。同时项目经理对需求池中的需求进行进一步分析,根据团队习惯将需求分为技术问题、设计问题和产品问题。每一条需求下都会根据需求的复杂程度创建一系列子任务。
产品经理亦可在 Wiki 中根据需求撰写完整的产品功能文档。 同时可以使用 CODING 的文件功能上传分享产品的原型图。CODING 的文件功能和 Wiki 功能为研发团队提拱了内置的文档协作和团队知识沉淀工具。
完成产品的原型设计和功能说明文档后,项目经理开始邀请研发团队加入项目,由研发工程师开始进行相关功能的交付开发。如果需求中涉及设计团队,研发工程师可以直接在需求管理页面通过关联功能关联相应的设计任务。
CODING 研发管理系统的代码仓库支持 Git 和 SVN 两种主流版本控制方式,方便各类研发团队快速上手。
瀑布流式研发管理中最看重的一点就是质量。CODING 内置的 Code review 功能和持续集成模块是确保软件研发质量的关键。
研发工程师开发完成后通过提交 Merge Request 进行代码评审,通过代码评审后 merge 进入 master 分支,确保代码质量。
可使用持续集成模块进行自动化测试,在确保软件质量的同时大幅节省开发人员的时间。CODING 的持续集成功能对每次提交的代码不断进行自动化的单元测试、代码检查、编译构建、契约测试,甚至自动部署。在 CODING 持续集成模块中可以对持续集成功能进行设定,当开发者 push 代码时,会自动触发 CODING 持续集成,持续集成会自动编译并测试该 commit。CODING 持续集成支持在任意阶段触发持续集。当开发者提交了一部分修改完成的代码后,总是希望可以快速、持续地得到直观且有效的反馈,以达到我们持续快速交付的目的。这也是 CODING 持续集成功能所希望达到的目标。
CODING 的持续集成预置了大量的构建环境镜像,例如 Java、Python、NodeJS 等等。同时还支持 Docker 镜像构建,让开发者可以快速上手。
当持续集成通过后,便可以把代码更新到 staging 环境。
更新 staging 的代码后,开始由测试人员进行相关测试。全面完善的测试也是确保软件质量的关键。在 CODING 的测试管理模块中可以方便高效地编写测试用例和创建测试计划。
当开发进行到测试阶段后,测试工程师便可以直接在平台上执行测试计划,并在计划中的每个用例里标注测试结果,如测试未通过则需记录相应的错误信息。
如果测试出现问题则会直接反馈到产品,再由产品分配开发进行修复,如此反复直到达到可以交付的标准。
大部分瀑布流式研发管理会涉及企业核心的中后台数据和代码。这就使得数字资产安全成为重中之重。CODING 的安全简介详见:链接
点击立即使用 CODING 进行瀑布流式研发
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.