文章都来自于学习极客时间《软件工程之美》
大型公司都在用哪些敏捷的方法?
回溯本质,不论什么方法归根都要解决一个问题就是怎么更好的进行管理和指导软件开发工作。其实最后用到所谓的方法论或者行之有效的方法就是“分而治之” 。 大项目拆分成N个小项目、大服务拆分小服务、大团队拆分小团队 、小项目拆分多个模块。
公司的管理也是这样的例子,总经理—部门经理—组长—组员!大趋势所需,现在微服务、容器化等技术越来越流行敏捷更流行吧!
参考学习下 敏捷开发的根本矛盾是什么?从业十余年的工程师在思考
敏捷开发相关的主要流程规范
毕竟要有一套行之有效的方法论,指导我们去进行相关事务的落实工作。那么我们看看都有哪些关于敏捷开发的流程?
- 一切工作任务围绕 Ticket 开展
最早是甘特图,相信很多大龄的貌似多多少少接触过,而敏捷是则是看板board,记得几年前在一家公司,总监曾就职隶属于老美的App Annie,当时就采用了scrum 敏捷的一些流程,现在回忆起来有点感慨,但是没做多久!
- 先说说看板(分为Todo,Progress,Done),就是管理软件来管理跟踪这些任务。即时贴 ticket 也有叫 issue 也就对应的和开发任务关联起来了。一个需求、一个bug、要重构的代码、都是一个ticket 。
- 每一个任务都有状态清晰的知道 谁在做?什么时间开始的?进度完成情况?
- 结合看板或者手机ticket 就知道 当前Sprint(迭代)的 Backlog(任务清单)更好的掌握全局情况。
任何时刻我们都要有风险意识存在,开发人员的主观能动性、
长期的ticket停留、ticket过多在一个sprint中、这些都是因素。是否sprint安排不合理,会议上每个开发错误的评估ticket时间等。
- 基于 Git 和 CI 的开发流程
- git 的流程去参考阮一峰老师的文章或者标准的git-flow ,CI 这个嘛!github 企业版有提供,当然公司自己搭建的gitlab 配合jekins 或者py或者shell脚本 等完成。
- 应用敏捷开发方法的基本开发流程:
1.开发todo-》Progress –》从master创建分支用于开发或者修复bug–》实现代码单元测试提交到分支–》持续提交代码更新到分支,直到完成–》创建PR–》codereview –》CI (包括检查代码规范、单元测试、集成测试)–》CI 通过 progress到done
- 应用敏捷开发方法的基本开发流程:
- git 的流程去参考阮一峰老师的文章或者标准的git-flow ,CI 这个嘛!github 企业版有提供,当然公司自己搭建的gitlab 配合jekins 或者py或者shell脚本 等完成。
- 部署上线流程
部署的不再是程序代码,而是 Docker 的 Image,每次代码合并后 CI 都会自动 生成新的 Image,测试也是基于 Image 测试。
部署生产环境之前,先在内部的测试环境充分测试。 部署生产环境前,需要审批确认,有 Ticket 跟踪。 部署时,先部署一部分,监测正常后再全量部署。 整个过程都有监控报警,出现问题及时回滚。
这里想补充下,并不是每个公司现在都容器化完善的,那么我们要向这个方向努力,理解这个过程更好的完善更重要,如果你有权你能决定这些 - 每日的站会
- 谁主持Scrum Master(敏捷教练)采用轮班制
- 会议内容
- 成员发言,昨天做了什么,今天计划做什么?有没有阻碍无法推进?
- 检查是否有新增ticket,是考虑加入sprint 还是backlog中
- 停车场问题,能解决的问题就当场解决,一般都是需要后续进行讨论或者再次组织会议。
总结:
敏捷开发中有很多概念,例如看板,ticket,git ,ci ,jira,禅道,站会,代码审查,自动化测试等等,这所有的一切都是保证敏捷的实施而已。要真正理解敏捷开发中的知识点,指定出好的规范。