提升软件交付效能的关键点及挑战
极客时间编辑部
讲述:初明明大小:4.58M时长:05:00
如何提高软件交付效能?研发支撑部门 BP 化、项目管理流程精简化、忘掉代码量去构建效能度量模型等理论都很受用,那么该怎样落地呢?近日,在 TGO 鲲鹏会的杭州分会活动中,KodeRover 创始人李倩分享了如何分步骤、阶段性地真正提升软件交付效能,以下为演讲重点内容。
一、提升软件交付效能的关键之处
所谓技术研发,就是通过开发软件为企业带来业务价值。那么软件交付效能是什么?它指代生产软件持续为用户产生有效价值的效率,这可以理解为三个关键词:有效性、效率、可持续性。
有效性:关注产品是否能为客户、公司带来价值;
效率:关注团队能否快速生产和发布产品、快速应对市场需求变化和企业业务目标;
可持续性:小团队做小业务,可能没问题;随着业务规模和团队规模的成倍增长,还能有效控制研发效能吗?这就是可持续性探究的问题,也是很容易忽略的一点。
那么,如何提高软件交付效能呢?首要任务,就是改善研发人力投入结构,动态平衡时间、成本、质量三者之间的关系。
软件交付效能不是技术团队可以单独决定的,尤其在涉及到 ToB 环节时,链路很长。分析一下链路中的利益相关方就会发现,CPO 对企业生存发展负责,通过识别商业价值,使产品经理能够完成实际的需求定义。接下来,技术团队才能推进实现和研发交付。最后,市场和销售观测、验证市场反馈,服务团队进行客户支持和响应,接着开始新的一轮软件交付周期。
所以,软件交付管理的过程,要从商业识别到客户服务的端到端开始管理,是端到端的价值流动和需求响应,既不是从产品经理拿到需求的那一刻开始,也不是到代码上线就结束了。
而在研发交付环节,最大的痛点就是如何在保证研发速度的情况下,兼顾质量。
综合看来,效能低的外在表现就是需求响应慢、交付周期长、事故多、服务能力下降,进而导致企业无法快速进行创新创造。
二、交付的挑战和变革
做软件研发的核心是处理人、技术、流程之间的关系,目标是在三者间建立良好的关系与合理的机制。
其中包含四个关键点:
人的服务化:建立面向开发者的服务体系,将支撑部门 BP 化;
组织效能的数字化:面向流程、工程、业务指标、技术建立多层次的效能度量体系;
技术的云原生化:充分运用云技术提升 IT / Infra 使用效率与开发人员生产力;
流程的工程化:简化流程体系,用工程代替流程,流程越精简越好。
最终四个关键点回归一个最简单的逻辑:帮助开发者生产高质量的代码,上线到生产环境,并为客户提供服务。
帮助开发者生产高质量代码的思路,在国外已经非常成熟,Facebook 的持续开发过程聚焦的正是让开发者毫不费力地完成代码的提交和验证过程。
Facebook 的持续开发过程大体如下:
开发人员负责 UT 和 IT,在本地开发机器上进行开发、包括本地的编码、调测、单元测试等;提交 PR(Pull Request),云端执行完整的测试过程,并行运行包含静态检查、单元测试、集成测试、安全测试,以及性能测试等;
测试通过后,是 Phabricator 的机器 CR(Code Review) 和人工 CR 环节,人工 CR 选择性的触发端到端的系统测试、调测,并具有一票通过和否决权,通过后入库;
入库后进行持续交付的自动化测试验证、灰度上线验证,目前已经能支持到 CR 级别的持续部署能力。
可以看到,代码入库前经过的本地、云端、机器自动化测试案例和实时质量检测及基础设施都是以服务化的形式提供,可以灵活的调用。入库后的运维过程也是高度自动化的。
可见,硅谷顶尖互联网企业的流程非常轻量、灵活,而国内很多公司则设定了大量的流程框架,看上去好像是在帮助管理者明确工程师的工作内容和开发进度,实则不然。提升效能的根源在于开发者能否顺畅的写完代码并上线。
有些人可能会质疑国内外工程师有差异,但其实水平和智商方面并没有差别,差别源于工程交付思维的不同。
了解了提升软件交付的关键点和挑战,怎么做才能提升软件交付效能呢?因篇幅受限,这部分内容将在下文继续分享,欢迎持续关注。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论