课程简介
数字化时代的软件研发需要先进的软件工程能力,工程能力即是研发的目的是要提供价值,质量永远第一,要实现价值的持续交付,要使用系统化和科学的方法,达到持续提升研发效率,高效为客户和用户持续交付有价值的软件或服务的能力。提升工程能力,不仅要提升个人的能力素质,还要提升团队及公司的能力素质,包括编码能力、项目管理能力、系统设计、需求把握,以及运维能力、质量意识、沟通能力等,将代码、文档、项目管理三个主要能力赋予个人素养,打造更优质、更不可替代的自我能力,创造更优质、高效和安全的企业服务能力。
本课程聚焦大型软件企业在软件工程领域的最佳实践与经验总结,阐述将理想的软件研发与现实的软件研发之间的差距,纵然有不可逾越的鸿沟,但有可无穷接近理想的实现方案,剖析需求分析、开发者自测的工程实践、代码质量提升与代码评审、持续集成、系统集成等的流程及优化对策,全方位呈现一套企业级软件工程能力提升与落地的实践应用。
课程收益
1.深入理解软件工程的时代背景和重要性,全面掌握中大型企业在软件研发的需求、设计、开发、测试、运维等阶段的最佳实践;
2.全面掌握软件研发过程优化的主流实践与方法,理解研发过程中的常见误区,提升企业级软件研发的工程能力,避免实施中的踩坑;
3.深入理解国内外厂商在软件工程能力提升上的实践与探索、互联网大厂和传统企业的成功/失败案例,掌握解决企业级软件研发过程中的典型问题,并提供建设性解决方案。
受众人群
1.软件研发负责人、研发管理负责人、工程效能负责人、软件架构师、资深研发工程师;
2.测试架构师、运维架构师、资深测试工程师、资深运维工程师、运维负责人研发管理人员、研发流程工程师;
3.DevOps工程师、、DevOps负责人、SRE工程师以及其他对软件工程能力和研发过程优化感兴趣的开发者们。
课程周期
3天(18H)
课程大纲
标题 | 授课内容 |
模块一:软件研发过程优化导论 | 1. 软件研发越来越慢,成本越来越不可控的原因 2. 当今软件研发的本质 3. 软件工程的四大内在属性 4. 软件的规模与复杂度困局 5. 软件技术债务的种类与特点 6. 质量和效率真的不可兼得? 7. 软件研发过程优化的体系化方法 8. 软件研发成本估算的可行性 |
模块二:理想中的软件研发与现实中的软件研发 | 1. 软件企业研发过程中遇到的主要问题 2. 研发过程改进和优化的核心思路 3. 互联网企业研发过程优化对软件工程的启发 4. 敏捷研发模式的理想和现实 5. 敏捷研发模式的主要误区与应对措施 6. 案例:传统软件企业的研发过程优化案例 7. 案例:互联网企业的研发过程优化案例 |
模块三:软件研发中的需求分析 | 1. 如何应对产品经理的“一句话”需求 2. 需求质量对软件研发的重要性 3. 需求问题空间和软件解决方案空间的异同 4. 需求优先级评估的卡农模型 5. 需求团队和研发团队的常见合作模式与主要问题 6. 需求团队和研发团队的改善探索:基于业务架构师的实践 7. 需求颗粒度(大小)的把控原则 8. 需求拆分的常见问题与应对策略 9. 需求管理的多种形式和应用场景(瀑布模型 VS 敏捷模型) 10. 需求变更的应对方法和最佳实践 11. 需求不明确以及需求不稳定的主要应对措施 12. 版本发布模式与需求管理 13. 案例:传统软件产品需求分析案例详解 14. 案例:互联网软件产品需求分析案例详解 |
模块四:本地开发与开发者自测的工程实践与流程优化(上) | 1. 高效获取一致性的本地开发环境 2. 基于AI精准提升的代码输入效率的常用工具 3. 基于Copilot的开发模式 4. 整洁Git的设计 5. 前端低代码能力与常用工具 6. 后端低代码能力与常用工具 7. 本地编译加速的常用方式与工具 8. commit message的规范 9. code search平台的使用 10. 个人本地测试的测试环境管理与提效 11. 第三方依赖库的管理 12. 软件成分分析与代码安全流程优化 |
模块五:本地开发与开发者自测的工程实践与流程优化(下) | 1. 开发者自测与测试左移的关键实践 2. 代码静态质量的前期把控 3. 代码动态质量的前期把控 4. 静态代码扫描的流程优化 5. 单元测试普遍做的不好的根本原因 6. 单元测试的实用范围分析 7. 单元测试与代码覆盖率的关系 8. 提升单元测试执行效果的关键实践 9. 单元测试的自动生成技术原理解读 10. 单元测试的代码管理 11. 单元测试的测试版本管理 12. 单模块的接口测试与Mock 13. 代码覆盖率统计与质量门禁 |
模块六:代码质量提升与代码评审 | 1. 代码评审普遍实施不到位的根本原因 2. 代码评审的开展时机 3. 代码评审的核心理念 4. 代码评审的最佳实践(小批量、多批次、找对人) 5. 代码评审的责任认定 6. 如何提升代码评审本身的质量 7. 代码评审的常用工具体系 8. 代码评审的典型案例分析与解读 9. 代码评审的社会学属性探究 10. 代码委员会机制与代码评审流程改进 11. 代码评审的其他最佳实践 |
模块七:持续集成(CI)的工程实践与流程优化(上) | 1. 持续集成(CI)流水线的整体解读 2. 持续集成(CI)流水线的主流实践与工具 3. 持续集成(CI)完整步骤详解与最佳实践 4. 代码合流CI流水线的设计 5. 代码合流CI流水线的扩展能力 6. 慢SQL扫描的扩展 7. 典型分支模型解读与适用场景分析(主干开发,Github Flow,GitFlow,AOne Flow) 8. 影响分支模式选择的主要因素 9. 分支模型的流程优化与定制 10. 分支模型的典型问题与应对策略 11. 开发协作模式的选择 |
模块八:持续集成(CI)的工程实践与流程优化(下) | 1. 静态代码检查常见问题 2. 静态代码检查规则库的选择与优化 3. 静态代码检查的前沿实践与工具 4. 制品库的管理(传统制品和容器镜像) 5. 制品的版本号管理 6. DevSecOps的概念与实践 7. DevPerfOps的概念与实践 8. 研发效能双流模型的设计理念与落地实践 9. 研发效能双流模型的详细解读 10. 双流联动的技术选型与实现 |
模块九:持续集成(CI)中的软件测试 | 1. 持续集成(CI)中的自动化测试策略 2. 持续集成(CI)中的API接口测试 3. 持续集成(CI)中的GUI自动化测试 4. 持续集成(CI)中的安全扫描与测试 5. 持续集成(CI)中的性能基线测试 6. 持续集成(CI)中的测试环境管理与优化 7. 持续集成(CI)中的测试数据管理与优化 8. 基线环境和特性环境的设计与实践 9. 实现特性环境的主流工具详解 |
模块十:系统集成与测试阶段的最佳实践 | 1. 瀑布模式下的测试策略 2. 敏捷模式下的测试策略 3. 基于高效测试策略的测试流程优化与改进 4. 分层的测试体系建设 5. 测试中台的顶层设计与落地实践 6. 测试中台中各个测试服务的详细解读 7. 自动化测试:录制回放式 VS 脚本式 8. 自动化测试的局限性和影响效能的误区 9. 企业级测试成功实践:探索式测试的威力 10. 企业级测试提效成功实践:流量录制与回放 11. 企业级测试提效成功实践:基于MBT和大数据的精准测试 12. 企业级测试提效成功实践:基于代码覆盖率染色的精准测试 13. 企业级测试提效成功实践:测试数据构造能力建设 14. 企业级测试提效成功实践:测试环境的高效管理 15. 企业级测试提效成功实践:智能化技术对自动化测试的增强 |
模块十一:发布与运维阶段的工程实践与流程优化 | 1. 人肉运维和自动化运维 2. SRE背景下运维角色的变更 3. 从CI/CD到CO/CE 4. 常用的灰度发布方式与策略设计 5. 监管控一体化的运维体系设计 6. SRE的核心概念与实践详解 7. AIOps的基本原理与落地实践 |
模块十二:软件工程能力提升与流程优化的行业实践解读 | 1. Google软件工程能力核心实践解读 2. eBay软件工程能力核心实践解读 3. BAT的软件工程能力核心实践解读 |
Neo Ru
百林哲咨询(北京)有限公司专家团队成员
Neo Ru
百林哲咨询(北京)有限公司专家团队成员
Neo Ru
百林哲咨询(北京)有限公司专家团队成员
Neo Ru
百林哲咨询(北京)有限公司专家团队成员
Neo Ru
百林哲咨询(北京)有限公司专家团队成员
Neo Ru
百林哲咨询(北京)有限公司专家团队成员
Neo Ru
百林哲咨询(北京)有限公司专家团队成员