作者小头像 Lv.1
45 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
TA还没获得勋章~
成长雷达
0
45
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

发布时间 2020/02/03 14:26:27 最后回复 龙波 2020/03/15 23:07:42 版块 社区活动
41347 239 0
他的回复:
华为云:mymatin微信:路阳敏捷深化 迈向常态主要知识点:实例化需求行为驱动开发微服务架构契约测试针对实例化需求产生的验收条件,可以在此基础上实施驱动开发 狭义的测试驱动开发:单元测试 行为驱动开发:以用户行为作为视角来进行测试驱动开发微服务演进过程:把复杂的单体系统拆解为一个繁杂的架构,从而使每个微服务应用相对简单概念辨析:复杂(complex):系统内部有大量变量,而且变量之间的关系也在不断变化。所以很难预测该系统的行为,也很难在测试环境模拟该系统在生产环境上的各种行为。这也使开发和维护变得非常困难。开发周期变长,难以实现敏捷交付。繁杂(complicated):内部有大量组件,但每个组件相对简单且独立,组件之间的关系固定。由于每个组件相对简单可预测,管理难度并不高。契约测试:双方在开发前约定好对API接口的预期是什么样的。然后大家各自拿着这份契约进行开发和测试。在集成测试之前,双方已经通过这个契约各自测试好了,大家可以按照自己的节奏进行开发和测试。缩短了反馈周期,提升了交付的效率。也使双方开发完之后的集成测试变得更加顺利。组织形式: 传统企业:层级式,大部分决策由各级领导来完成。使得决策和行动比较缓慢。通常来说,一个交付过程涉及到很多不同部门,包括开发部门、测试部门、运维部门。产品小分队(特性团队):基金服务会涉及到各种系统,以这些系统作为维度,拆分成产品小分队,每个产品小分队负责这个系统的端到端开发和运维。小分队中包含各种角色:BA、开发、测试、运维。系统中的所有需求,包括项目中的新的需求开发,运维还有基于产品的持续改进,都由这个产品小分队负责。这些需求都会出现在产品小分队的统一Backlog中。由于产品小分队是和系统在一起的。因此他们也应该对系统进行持续改进(包括:搭建CI/CD流水线,从代码迁入到执行自动化测试,部署到测试环境,部署到生产环境,整个流程都可以自动化起来。提高部署效率,减少人为出错的风险。基于主干开发:传统开发模式会拆分很多不同的分支,一旦分支之间差距很大,合并将会非常痛苦,也会带来很大风险。因此,要尽量只维护一个分支,即使必须要拆分支,也要尽量做到每日合并,从而降低由于分支所带来的代码维护的难度。引入特性开关:在追求持续交付的过程中,希望能够提升部署上线的频率,但是一旦某个特性出现问题,我们希望有更快的回滚方法,特性开关就是在一个新特性上加入一个开关,一旦该特性在生产环境出现故障,可以通过马上关闭开关来避免对用户操作带来影响。由于干系人众多,没有统一的优先级,这里对团队进行了重新整合,让他们和主要干系人形成一一对接的关系,这个主要干系人可以对其所负责的领域进行优先级排序,从而让与之对接的交付团队有非常清晰的优先级。这种方式也可以简化双方关系,从而使需求分析和验收测试都有非常清晰的联系人。简化关系,缩短反馈环。组别变换:要尝试去打破按照职能来进行划分的组织形态,更多去考虑如何能够和业务进行更清晰的对接,以及如何能够使整个团队端到端进行交付共同负责。
发布时间 2020/02/03 14:26:27 最后回复 龙波 2020/03/15 23:07:42 版块 社区活动
41347 239 0
他的回复:
华为云:mymatin微信:路阳项目试点的各种问题经验总结:用户故事(具有一定业务价值的可以单独上线的最小的需求)对敏捷转型是十分重要的。用户故事做到持续上线,才可以真正实现敏捷过程。影响地图 定义MVP的必要性:开发一个功能所需要的时间和成本总是超出预算的需求是需要验证的假设,通过MVP可以快速实验,收集反馈并不断完善产品。MVP是从整体业务角度来找出一个既能实现相同业务目标,IT成本又最低的方法来快速启动新业务用户故事拆分(以支付为例):现金支付微信支付支付宝支付银行卡支付But 对于常规开发而言,Scrum不合适:优先级每天都在变,无法做Sprint计划(时间盒)看板方法看板方法的原则:进度可视化:通过一块可视板把所有需求及其进度可视化限制在制品:假设这个团队只有两个开发人员,他们可以同时开发两个需求,则开发这一栏应限制最多不超过四个需求进行,这样开发人员可以聚焦在有限的重要的需求。提高交付速度。一个需求在完成状态时,其价值才得以体现,大多数进行中的需求是没有意义的。倒逼业务和用户想清楚到底哪些需求是最重要的。观察和改善流:当所有需求的流动情况被可视化之后,可以观察到在整个交付过程里面哪里是瓶颈,可以针对瓶颈进行改善。如,在交付团队中开发和测试是分开的,则可以在看板中切出开发列和测试列。优化瓶颈才可以提升整体效率
发布时间 2020/02/03 14:26:27 最后回复 龙波 2020/03/15 23:07:42 版块 社区活动
41347 239 0
他的回复:
华为云账号:mymatin微信昵称:路阳Day 2工具落地 & 效率提升主要知识点敏捷与DevOps工具集如何通过团队共创工作坊来找出DevOps的改进点如何挖掘DevOps的改进时间和资源前置时间和周期时间的概念DevOps工具集:敏捷开发两大利器,彻底贯彻敏捷开发所倡导的去中心化、协作、集体讨论、信息共享、灵活、透明、可视化等原则。通过使用 Maven 和 Gradle 进行项目代码管理已经是绝大多数 Java 项目的首选如GitHub的提交行为,一旦提交完成,自动执行集成(包括从代码库获取所有代码、执行设定的Maven Goal(编译、运行测试、打包、发布到Nexus等)并输出运行结果,所有Job的运行结果都会被记录,团队的每日站会就应该查看当天的集成结果,如果发生任何集成失败,应该立即分配人员处理一旦放任任何一次集成失败,很容易造成代码和测试腐化sonarQube:给出团队代码质量趋势,其插件涵盖静态代码分析、自动化测试覆盖率等指标。告知团队指标的趋势是向好还是向坏,对于有遗留代码的系统,作为团队的代码质量目标,趋势比静态指标更加现实。Ansible(自动化部署软件):通过编写Play Book执行部署Jenkins(持续集成工具):可以灵活定义各种自动化的Job来完成特定的集成工序(包括定时触发、代码提交时触发),典型应用有:监测代码库。可以看到团队每天、每次的集成结果。可以嵌入SonarQube检查JIRA(项目与事务跟踪工具):广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。很多开源软件用它管理缺陷和交流Confluence(企业知识管理与协同,构建企业Wiki)Github(基于Git工具的在线代码托管平台,分布式代码管理工具):突破了传统的集中式代码管理模式,程序员可以通过Git在本地管理自己的分支,在成熟的时机把分支推到Github中,管理员可以通过保护主干分支,强制所有分支合并到主干的请求必须通过评审才能完成,从而强化代码评审的过程。Nexus:公司自建的仓库,用来缓存和管理代码库可以大大提高下载和管理的效率步骤:主题介绍头脑风暴排列组合提炼中心词模型图问题及对应解决方案业务请求跟踪性差-> 通过JIRA记录所有的请求和需求,并建立可视板使进度可视化,每日站会围绕JIRA可视板进行,确认每天的优先级、进度和障碍;通过Confluence建立项目文档和知识库使所有知识和信息透明化,提升沟通和学习效率缺乏回归测试->如何从全手工测试转向自动化测试然后通过Jenkins每天自动执行全部自动化测试并发布测试结果,结合sonaqube观测测试代码的覆盖率是否处于上升趋势手工部署:每次部署到测试服务器或者生产服务器都是手动进行,非常繁琐,容易出错,效率低下,由于公司大部分系统只能在周末进行维护和上线,一般由运维团队负责->通过Ansible实现部署上线的自动化,业务部门:销售部门:开发金融服务产品并销售给客户服务部门:对客户进行服务交付PMO:有新的项目需求时,销售部门和服务部门向该部门提交IT部门:引入策略: 在某些领域开展试点,用榜样来感化
发布时间 2020/02/03 14:26:27 最后回复 龙波 2020/03/15 23:07:42 版块 社区活动
41347 239 0
他的回复:
微信昵称:路阳华为云账号:mymatin敏捷开发与瀑布的最大区别:Scrum 和 敏捷 与 DevOps 之间的关系1. 剖析传统模式的问题,剖析瀑布模式的适用局限及其给业务和IT部门带来的痛点2. 转向敏捷,什么是敏捷开发,它和瀑布模式最大区别在哪里,具体方法价值观是怎样的3. 实施敏捷的好处,包括对业务部门和IT部门的好处4. 如何开展,具体的启动行动是怎样的1. 业务部门经常会遇到   1. 逾期交付   2. 超支   3. 看到成品时,项目已接近尾声   4. 整个过程缺乏透明度,不知道具体的进度在哪里   5. 很难变更需求   6. 最终发现开发出来的产品不是他们想要的   7. 贻误战机,丢失市场机会2. IT部门经常会遇到   1. 过度承诺   2. 难以一次性消化所有的需求   3. 惧怕需求变更   4. 不断重做   5. 后期压力很大   6. 经常要加班业务部门 -> (需求概要,期望的交付日期) -> IT部门IT部门:估算和计划项目开始时的确定因素:1. 预算2. 目标交付日期不确定因素:1. 项目的范围和具体的需求2. 中间可能会发生很多的需求变更3. 人员也在变动4. 估算的准确性很难保证5. 需求对现有系统的影响6. 服务器环境的搭建瀑布流模型的过程:需求分析->设计->编程->测试->发布存在的问题:1. 瀑布过程的每个环节,一环扣一环,设计、编程、测试都依赖于***完整和稳定的需求***。制定需求的时间VS开发的时间2. 因为每个阶段都是环环相扣的,需求变化牵一发而动全身,变更成本非常高3. 在整个过程中,业务部门要在测试的后半部分(用户验收测试阶段)才能看到成品,此时已经临近目标交付日期,此时发现不符合需求也来不及更改因此,瀑布模型适合***确定性非常高的项目***敏捷开发是一种***迭代开发***或者说***增量开发***敏捷开发具体方法:1. Scrum2. 极限编程3. 看板方法# Scrum### 基本概念1. Product Owner(PO):业务决策者(决定需求与优先级)2. Scrum Master:熟悉Scrum流程的人(指导和确保团队以Scrum的方式进行交付3. Sprint:迭代4. User Story:具有业务价值的交付单位5. Product Backlog:项目的待办列表敏捷宣言:1. 个体与交互胜于过程与工具2. 可工作的软件胜于面面俱到的文档3. 与客户的协作胜于基于合同的谈判4. 相应变化胜于遵循计划核心思想:快速反馈敏捷启动的建议:1. 围绕已知的范围和需求定义用户故事和建立***待办列表***2. 为***交付需求***排优先级3. 商定单次迭代的长度4. 商定针对单次迭代的计划会议和评审会议的日程5. 商定发布计划6. 准备相应的辅助工具