如何在家里安全高效地开发软件?阿里技术专家教你这样做。

响应国家号召,“大工厂”已发出在家工作和延期工作的通知。当时,“网上协作”已经成为一个热门话题。与大型集团公司不同,中小型企业缺乏足够的预算和相应的经验,因为它们有足够的财务资源和能力来构建远程办公系统。阿里小芸一直致力于成为数字企业的研发效率引擎。在这个特殊的时期,我们希望与中小型企业分享我们的经验和工具,以便他们能够在家中安全高效地开发软件。

因此,我们特别邀请了阿里巴巴高级技术专家张燎原来详细讲解“在线协同开发”的关键

阿里技术

对于以知识为基础的经济活动,高可见度和快速连接能力意味着灵活协作的可能性,而在线是所有这一切的基础。在线使人们能够在任何时间和任何地点快速集合和组织协作,使远程办公方法(如SOHO)成为可能。

下面,我们将从“在线项目协作”、“在线代码协作”和“在线交付协作”三个方面阐述如何实现在线协同研发,使不同地区、不同时区的人们能够快速连接,真正进入数字化研发时代

在线项目配合

需求,从拉通和端到端价值流可视化开始,

可见,这是合作的基础通过电子看板,以需求为流程单元,可视化端到端价值流,以流程效率为核心组织需求交付端到端价值流的可视化必须是价值驱动的,也就是说,每个流单元反映反映用户价值的业务需求;来回拉动,也就是说,可视化目标是“端到端”的价值流,从用户问题开始,到用户问题得到解决为止。

阿里技术

我们可以通过以下三个标准来测试可视化效果,即:

?是否能反映端到端的交付过程,是否能实时反映影响价值流的瓶颈和问题,是否能根据可视化信息进行协作和决策

同时,我们可以打开从项目协作到软件发布的整个环节,代码提交和发布信息也能实时反映在需求卡上,以便集中和及时的工作状态同步, 减少日常沟通,使项目管理目标更加注重价值传递和问题解决。

软件交付的关键是客户价值的流动,而组织障碍、沟通延迟和协作障碍是主要障碍。基于价值流看板的端到端可视化、产品需求调度或团队日常会议的任务分配,围绕需求看板组织日常项目协作从右到左,从测试工程师、开发工程师到产品经理,查看需求的交付状态,并跨职能部门进行协作。同时,需求中的任何风险和问题都被突出显示在广告牌上,通过打钉等即时通讯工具可以快速反馈给负责人,从而实现对问题的即时发现、即时响应和快速链接聚合。

从需求计划、需求计划、每日车站会议和需求恢复形成了一个完整的价值反馈回路从整体交付节奏来看,将形成每月计划、每周日程安排和每日会议的节奏。所有这些都可以通过在线电子广告牌来实现。

阿里技术

限制在制品的数量,并加速业务需求的交付

影响需求(价值)流动效率的关键是批量和并行,这通过限制在制品的数量来加速需求的交付(我们称之为“用水打沙”)同时,数字化合作有利于研发过程中绩效数据的沉淀,建立绩效改进的基线和愿景目标,以客户响应周期和质量改进为目标,推动问题的发现和解决,为持续改进奠定基础。

在线代码协作

代码协作是集体代码所有权,

团队成员共同负责代码基于Git分布式版本控制系统,实现了基本的代码管理功能。在当前的代码协作概念中,分支是协作的载体。世界各地的开发人员可以根据产品需求建立不同的分支机构,同时进行开发。适当的分支模式使分散的工作能够在版本中快速集成和跟踪。每个代码库的自述信息详细解释了代码设计,并建立了基本的代码质量管理标准(如单元测试和增量代码的自动静态扫描),以确保连续增量代码不会影响现有功能,并使协作成为可能。

提高了代码的可见性,并有助于代码协作

从简单复杂性、重复分析、依赖关系分析、领域语言识别、安全敏感信息识别和其他工具(如阿里巴巴代码规范)方面大大提高了代码的可见性。程序员可以从大量代码中充分掌握关键信息。

与此同时,借助云集成开发环境和云分布式代码托管工具,社交编程得到了有效的推广,无论是结对编程还是代码评审,都使代码本身和编码过程变得显而易见:

?促进团队内部知识共享,提高团队整体水平,确保团队统一规范,没有“天书”代码;工具早期干预中潜在缺陷的检出率可提高30%;透明的代码,多人讨论可以促进积极的鼓励,积极的思考和追求卓越

代码安全性

代码在线协作。代码共享和重用文化的建立都依赖于代码平台复杂的权限控制系统。这是一把双刃剑。越开放意味着代码泄漏的风险越大,但是越封闭意味着协作效率越低。为了让开发人员更好地享受代码协作带来的好处,有必要注意以下几个方面:

。代码中的敏感信息,如数据库密码,在被有意或无意地披露后,将对公司的业务造成致命的打击。访问控制:常见的包括访问IP控制、撤销权限恢复、代码库可见性设置等。异常行为风险识别:具有事后审计和预警能力,如通过下载大量代码来检测和预警异常行为。

代码协作是对技术卓越的追求,也是培养软件工艺精神的机会。借助于先进的代码协作工具和技术手段,它可以提升代码和编码过程的可视性,同时,使每一个程序员都能满怀信心地提交每一行代码。

在线发布协作

现代企业软件交付流程通常是跨多个系统的多人多角色协作。同时,为了确保可靠的交付,交付过程通常是复杂的,难以完全标准化。以及为什么阿里巴巴能够跟上市场变化,快速编写高质量的软件,这要归功于多年来沉淀下来的一整套DevOps方法和产品,以确保软件交付过程在网上高效可靠

从流程标准、流程改进、在线出版协作的建立到

在线出版协作,都需要基于相同的交付线,首先,需要通过软件集成流程拉动完成从变更到交付的整个系统;工具化流程,并通过工具串联整个集成交付流程。与此同时,流程中每个阶段的准入标准都已确定,下游活动基于上游产出的质量。其次,根据流程建立质量保障体系,并实现每个流程的自动化。第三,建立反馈机制,可以准确定位问题,立即做出反应,并快速修复。建立相应的测量反馈机制也可以不断优化过程和程序真正的

网上出版协作应满足过程工具化、部署无人化、测试自动化和反馈数字化的要求。

功能分支驱动多人多角色在线协作

,实现多人不间断研发,代码功能可以自由可靠组合交付。阿里巴巴的生产经验积累了一套AoneFlow代码分支管理方法。以功能变更为单位,配置项/配置项管道用于完全覆盖从构建、测试到部署的整个连续交付过程。过程中每一步和每一项任务的信息都可以通过信息、邮件、钉钉机器人等方式进行通知和追踪。以便诸如研发、测试、操作和维护、管道等角色。可以在线和异步一起工作

利用云本地技术打破开发和运营的界限

在过去的一年里,以Kubernetes、无服务器、服务网格、云IDE为代表的许多云本地技术都给人留下了深刻的印象。这套开箱即用的开源软件使中小型公司能够快速获得主要互联网公司曾经拥有的精英软件交付能力,如复杂的流量管理能力、灰度级发布能力、A/B测试能力、多环境管理能力、基础设施启动能力、快速扩展和收缩能力等。然而,企业在采用新技术的同时,也面临着许多挑战,如开源软件的复杂构建过程、黑屏交互设计、缺乏研发管理方法、缺乏企业权限管理能力等。阿里巴巴也在积极整合CI/CD工具、测试环境管理方法、应用操作和维护概念、DevOps协作方法等。使用基于云的技术为开发人员提供开箱即用的新技术解决方案

利用“云效应”轻松实现一站式在线研发合作。如果工人想做好事,他们必须首先磨利他们的工具。云效应可以提供来自“需求->”的信息。发展->。测试->。问题->。运营->。操作“端到端在线协作服务和研发工具”使您能够轻松实现一站式协作研发

阿里技术

我们可以用云效应来完成一天的工作:

。在上午的会议中,团队将根据精益看板来调整需求和任务,完成任务分配和开发。学生将根据特点进行开发,创建变更分支,通过离线或云开发环境进行编程,然后提交代码。代码将自动触发自动静态代码分析。并将其发送给指定的代码审查者进行审查

。已完成审核的代码将自动触发集成发布管道,自动完成构建,生成Docker映像,并分别部署在开发环境、集成环境和高级环境中完成相应的验证工作。经过验证,它将处于待发布状态,触发在线审查过程。网上

在运行维护完成、审核和发布过程中出现的任何问题,将按照“无消息即好消息”的原则予以明确,并及时反馈给指定负责人,实现准确反馈、即时响应和快速恢复。尽量避免垃圾短信的反馈和过多的噪音,这将降低合作的效率。

我们希望分享小芸多年来积累的实际研发经验和先进工具,让小企业拥有大智慧,在国内快速开展软件研发工作。与此同时,为了降低中小企业的采购成本,小芸推出了一项小微企业支持计划,而不到30人的研发团队可以免费使用小芸的所有功能。

阿里技术

关于云效率:

云效率是一个企业级的一站式开发解决方案,源于阿里巴巴的先进管理理念和工程实践,致力于成为数字企业的研发效率引擎!云效率由“需求->”提供。发展->。测试->。问题->。运营->。运行“端到端在线协作服务和研发工具”,通过应用人工智能和基于云的技术来帮助开发人员提高研发效率,并持续快速地提供有效价值。

大家都在看

相关专题