敏捷开发

敏捷教练(scrum master)前端

1.敏捷开发概念(对比传统瀑布式开发)java

从需求到设计git

设计到编码docker

编码到测试编程

测试到提交产品后端

瀑布式缺点: 需求常常改,开发人员作增量交付,迭代式开发,并可以持续发布架构

以用户需求为核心,进行迭代,按部就班进行软件开发app

敏捷强调适应性而非预见性 运维

项目需求发生变化, 项目团队快速响应交付ide

 

软件开发初期会切分红多个子项目,各个子项目的成果都需通过测试,具有可视化,可集成,可发布

主体软件随时可发布,可交付给用户

 

2.敏捷开发人员架构划分

部门->项目组->小团队

8-10我的的小团队

小团队里有四个角色

PO:product owner 产品或业务负责人(产品经理或项目经理) 肯定产品前景原景 定义产品发布内容 交付任务的优先级 交付时间

SM:Scrum Master 敏捷专家 (team leader) 熟悉敏捷开发模式和实施流程 

DEV:开发人员

QA:测试人员

 

3.敏捷开发相关的四个会议

  1.敏捷计划会 一个月一次月初 一个迭代开一次  任务明确 需求划分 故事点划分(小的任务点 1-3天完成的)

  迭代或冲刺:Sprint 周期 一个月 因此每一年12个迭代

  2.天天立会 对着任务展板 说 从昨天的立会到如今,我完成了什么.从如今到明天立会,我计划完成什么.有什么阻碍了个人进度,风险和困难抛出  让leader进行抉择

  我这边进度正常,没障碍

 

3.敏捷评审会

  向客户和利益关系人展现 团队在本次迭代中完成的工做并获取客户的反馈

  4.敏捷回顾会 一个月一次月尾 

  每一个迭代结束时进行,总结工做中的经验和教训 30-60分 整个团队参加

    1.定量分析 

    迭代是否完成目标

    收集评审迭代的度量指标 wiki的工具链上作

 

  2.定性分析

    主观化的 那些好的保持 很差的中止 改进的,提建议,在下一个迭代改进

4. 平时写代码怎么样的, 任务如何完成

立会上领取故事点(任务点)

跑测试用例,功能测试彻底经过才能push

ci流程 代码质量的保证 不经过重复上述流程 跑过了进入team leader那进行代码评审code review 不经过 在循环改代码直到经过  入库 闭环反馈机制操做

 

合代码宗旨

人与人不影响 最大程度隔离 作任务能全速推动

任务与任务中间不影响

不须要每一个人任务作完,主分支才能交给客户,随时随地交付

 

敏捷是一种科学作事的方式 

从人员划分 开会 故事点划分 编码里的守护防御系统 开发和代码评审的方式

circle ci

 

 

 

 

 

 

 

 


目前参与过公司的项目,公司专业从事敏捷开发,也比较成熟,能够分享下其中的细节。

一、概念,能够参考敏捷宣言,强调适应变化,四句指导

个体和互动 高于 流程和工具(动员每一个人积极交流,相互之间能够 battle,头脑风暴);
工做的软件 高于 详尽的文档(好的代码是不须要注释和文档的,顶多有一些规范指南一类的在线协做文档);
客户合做 高于 合同谈判(真心实意为客户创造价值,而不止于眼前的功能交付,这个很难,由此还专门有一个角色去 control 这件事);
响应变化 高于 遵循计划(计划是赶不上变化的,随时改需求随时变更迭代计划,有迭代的概念);

基于于右边,而更注重左边的价值,并非说彻底抛弃传统的瀑布式开发。

二、人员架构

由于公司没有所谓的各类领导,这里就说下交付组里,我所见的一些角色,也是天天在一块儿工做的小伙伴:

PM:项目管理者,这里不是项目经理,负责和客户签合同,各类会议的组织者,没有项目经理那种权利
BA:业务分析师,专门和客户谈需求,超强的交流和控制客户的能力,几乎天天都和客户泡在一块儿开会过需求,疯狂开会,驱动客户(咱们组的BA是御姐型的,气场极强)
QA:测试人员
DEV:开发人员,其中有掌握技术话语权的 TL

PO:比较特殊,是客户某的部门领导人,通常和 PM 单独沟通,几乎没出现过,网友同样的存在

一个团队通常 1 PM、1 BA、1 QA 、6 DEV (三前三后,至少两个TL)

这里没有 MS,因此每一个人都是 SM,233333

来自安卓客户端2019-07-06 19:35
 
竹薯 三、会议

IPM:迭代会议,每一个迭代开始以前开一次,主要是排下个迭代的故事卡,并给每张卡估点,我遇到的是两周一个迭代(通常会有卡墙,有物理的,也有线上的)
Showcase:开发成果展现,每一个迭代结束开一次,通常是BA或QA给客户演示上个迭代作的功能,固然也是优化和新改动提得最多的时候
Retro:回顾会议,每一个迭代结束开一次,讨论上个迭代团队作得好和作得很差的事(不是针对和人,不含人身攻击),并给出改进方案,在下个迭代中执行
Stand Up:天天早上的站会,你们站成一圈,通常由 PM 主持,轮流阐述本身的昨天工做内容和工做进度,和今天要完成的工做,以及遇到的一些问题,及时反馈出来(咱们组有个小龙猫的毛绒玩具,你们挨个传递,挨个阐述)

天天还有 Code Review,动态安排时间,咱们团队一直坚持,刚开始是先后端一块儿过昨天每一个人写的代码,后面时间太长,就先后端分开。你们一块儿来找茬,你的命名和代码逻辑划分,代码风格,都有个能会被挑刺。在相互找茬的过程当中,坚持下去,对我的的成长有很大很大的帮助。

四、写代码

DEV 要作开发,就要先领故事卡,俗称开卡,本身选好一张故事卡,拉上BA和QA去过其中的细节,理清细节,而后才能上手开发,开发完后再拉上BA和QA去结卡,检查卡中的功能是否是都完成了,有问题就被打回去改,直到BA和QA以为完善了,才能关卡。。。

代码质量要求很严格,遵循 TDD,前端有 lint,有单元测试(不能偷懒,并且有覆盖率要求),有 e2e 测试(必须写,和QA一块儿看),当你的代码走过这三个流程,提交到公共仓库,CI 自动构建会拉你的代码,再走一遍测试(挂了就要修代码),而后自动发布新版本到 Dev 环境。

你觉得这就完了?还有代码嗅探器,时刻在扫描代码仓库,有两个重复的函数不行、重复率过高不行、使用了骚代码去作类型转换之类的不行、空间内有命名重叠不行。。。。这一套下来,再加上 code review,菜鸟开发天天一半的时间都在改昨天的代码。

项目还有规定,CI 不能红过夜,当天的问题当天要修好。。。。

以上这些,小公司就别说什么没时间,项目吃紧,而后就没作,自求多福吧

这些都是我所经历的,敏捷实践各不相同,你们看看就好
2019-07-06 19:36
 
竹薯 公司叫 ThoughtWorks,待遇好,想内推的小伙伴能够联系我
2019-07-06 19:37
 
空蝶K 回复 @竹薯 :怪不得看着感受这么熟悉,是Martin Fowler的书么?
2019-07-06 20:36
 
竹薯 回复 @空蝶K :是的,Martin Fowler是公司创始人之一
2019-07-06 21:33
 
也许我爱的是你爱我 大佬,想问问入职贵公司有什么要求吗,我目前是一个小公司的Java程序猿,经验一年半
2019-07-06 22:40
 
莺声缭乱 过于真实公司的开发一直在改,太菜了,我这个测试很是无奈
2019-07-06 22:48
 
空蝶K 回复 @竹薯 :看前面感受怪怪的,看到ThoughtWorks虎躯一震
2019-07-06 23:18
 
竹薯 回复 @也许我爱的是你爱我 :SpringBoot、SpringCloud 全家桶要会,会点微服务,基础的 Java8 知识,熟练使用 stream 编程之类的,目前咱们组的 Java 开发一半时间都是在写测试用例,要会写单元测试+集成测试之类的。
2019-07-07 09:29
 
larrytc tw,主要搞java
2019-07-07 14:48
 
AESIRTECH 回复 @竹薯 :成都吗?那边如今有多少人
2019-07-08 21:46
 
竹薯 回复 @AESIRTECH :三四百吧好像
2019-07-08 23:51
 
做唐逆子 回复 @竹薯 :久仰久仰
2019-07-15 23:24
 
ahianzhang TW很重视 TDD DDD 不知道能不能交流一下
2019-07-18 09:08
 
竹薯 回复 @ahianzhang :刚入职的菜鸡实习生一枚,在搬砖学习,大佬不嫌弃能够私聊🌚
2019-07-19 22:40
 
davidzwb 为何和up主介绍的CI不一样,up的CI彷佛是不经过不能提交,而这里介绍的是仍然能够提交,只不过CI有红色警告,我感受up主介绍的那种对人的压力小些。
2019-07-21 05:41
 
竹薯 回复 @davidzwb :提交的时候,本地git hook会自动跑lint和测试,过了以后代码就进远程仓库了,远程仓库会触发CI,CI会自动把本次提交后的代码拉给本身,跑测试、构建、代码质量分析。

因此只要本地测试能过,提交上去后CI会本身跑,这个时候开发一边写后面的代码,一边能够观察上一次提交的状况,上一次挂了就排查。

你们都是写一下子,顺便看下CI
2019-07-22 19:40
 
竹薯 回复 @davidzwb :流程没有绝对的标准,根据组内的人员和项目的状况选择适合的就好
2019-07-22 19:43
 
davidzwb 回复 @竹薯 :原来如此,谢谢
2019-07-23 01:21
 
疯狂302 哇,这大叔不就是敏捷开发的创始人么
2019-07-24 11:51

 

 

 

 

先作好运维,再作运维开发。zabbix,elk,ansible,docker,k8s这些工具自带的功能基本够一开始用了。业务驱动

 

用了这么多PM工具,Atlassian JIRA Confluence + 插件是挺好用的,这个平台就是JAVA开发里的一个很牛产品

 

ThoughtWorks 了解一下

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息