一、研发痛点在传统的开发模式下,研发过程分为需求阶段、设计阶段、开发阶段、测试阶段和维护阶段, 整个过程存在很多痛点。1、人员成本高每个阶段都需要有对应人员,这些人员通常属于不同部门,人员分工较细,数量较多。2、迭代速度慢完成一个软件研发过程,需要至少5个阶段,阶段之间是串行关系,环环相扣。一个阶段完成了,才能进入下一个阶段。阶段和阶段之间有大量的评审和文档生成,非常耗时。造成整个研发过程持续时间非常长,通常需要几个月的时间才能完成一个迭代。3、开发质量管控难由于整个研发过程中,前一个阶段是后一个阶段的输入,一旦前一个阶段出现问题,就会导致后一个阶段出现问题。并且,最终的产品要到最后一个阶段才能看到。发现问题的时候,通常已经到了最后阶段,造成修改问题的代价非常大。为了管控质量,不得不依赖于大量的评审和文档,难度非常大。二、使用软开云的先决条件建立一个敏捷开发组织是使用华为软件开发云的先决条件。1、传统研发组织传统研发组织通常如下所示:传统研发组织是对应传统研发过程而产生的组织架构,职能化特征明显。部门之间极有可能存在部门墙。打破部门墙要产生大量的沟通和协调工作。这需要一名强有力的项目经理才能完成这一挑战。2、敏捷开发组织敏捷开发组织是一个全功能的团队,通常如下所示:我们会按照功能特性组建<10人的全功能团队,俗称“2披萨团队“,可以实现业务快速开发、决策与上线,角色的作用如下:PO:Product Owner,负责产品规划、设计、分析运营:负责产品运营UE:UCD工程师,负责用户研究、交互设计、美工、视觉SL:特性经理Service Leader,对应敏捷模式Scrum Master,带领团队进行开发TL:技术leader,对应于系统工程师SE,负责架构、系统设计开发:负责代码实现测试:负责测试验证运维:负责部署、发布、运维、监控三、软开云解决了什么问题华为软件开发云实际上解决了敏捷开发过程的管控问题,一个典型的敏捷开发过程可分为如下阶段:1、需求规划这个阶段由PO负责,会把项目需求逐层分解:Epic->Feature->Story,软开云提供了很好的工具:从Story分解到Task(开发任务),需要SL介入,每个开发任务对应哪个Story,关系一目了然。2、代码开发华为软件开发云提供了代码托管和代码检查服务:代码托管代码托管服务支持三种新建方式:普通新建、按模板新建和导入外部仓库。如果担心代码安全,可以把代码放到华为云以外的服务器,然后通过“导入外部仓库”方式导入,但是服务器必须通过外网ip地址能够访问,同时不支持代码提交时自动触发代码检查。代码检查支持多种语言的代码检查,基本上常见的开发语言如Java、C++、C#、JavaScript、Python、Go等都已囊括。同时内置了非常全的代码规则集。取代Sonar、Findbugs等工具完全无压力,同时跟流水线集成得很好。3、编译构建支持从华为软开云、GitHub和通用Git取代码进行编译构建。同时支持22种构建工具,包括Maven、Gradle、Ant、Npm等常用工具。4、软件测试提供测试管理、移动应用测试、接口自动化测试和性能测试,值得肯定的是,接口自动化测试能够通过流水线跟代码开发任务、编译构建任务等其他任务很方便的集成到一起,对实现CI/CD意义重大。不足之处是不支持UI自动化测试。5、部署发布支持4种部署模板,包括:SpringBoot应用部署、Tomcat应用部署、Docker应用部署(Linux)和容器应用部署(CCE/CCI)。通过流水线,我们可把代码托管、代码检查、编译构建、软件测试和部署发布任务集成起来,实现代码提交以后的一系列自动化操作,最终实现CI/CD,能够极大的提升我们的研发效率。四、结论华为软件开发云作为一种敏捷开发过程的管控工具,对我们践行敏捷开发提供了很大的帮助。通过流水线等一系列工具,我们能非常容易和快速地实现CI/CD,而实现CI/CD是实现敏捷开发的必要条件。然而,华为软件开发云毕竟是一种工具,如果不能深入理解敏捷开发的理念,也没有对应的敏捷型开发团队来使用该工具,那么使用华为软件开发云的效果将会事倍功半。
0 评论