zoukankan      html  css  js  c++  java
  • 心得分享 | 软件研发效能(1)

    最近参加了关于研发效能的培训,结合自己的工作经验,将相关的心得总结出来,希望对大家和自己都有一些帮助。

    研发效能

    软件研发可以看作是一条流水线:

    这条流水线具有很高的灵活性:

    • 灵活的最终产品——实现哪些用户需要的功能;
    • 灵活的节点间关系——不同节点是可以融合的,例如测试可以放到本地开发中;
    • 灵活的节点——节点有多种实现方式,例如测试可以用TDD、BDD;
    • 灵活的开发者——对于相同的问题采取不同的方法解决;

    研发效能即通过流水线持续地为用户产生有效价值的效率,包括3个方面:

    • 快速——很快地生产发布产品;
    • 准确——产品对客户、对公司提供价值;
    • 持续——能够持续地高效生产;

    效能度量

    管理学大师彼得德鲁克曾经说过“你如果无法度量它,就无法管理它”(“It you can't measure it, you can't manage it”)。

    为了提高研发效能,首先就必须能够度量整个流程,找出流程中关键的点,哪个点效能有问题。

    效能度量需要一定的技巧,如果和绩效直接挂钩,往往不能达到效果,甚至会像下面的漫画描述的那样造成不良后果(检查bug修复数就去先产生bug)。

    下面列出了可用于有效度量的部分具体指标:

    如何建立高效研发流程

    成本可以分为生产成本和交易成本。交易成本是指完成工作需要额外处理的内容,例如软件研发中的发布就可以看作一种交易成本。

    自动化和持续流程是降低交易成本的有效手段,下面介绍在研发流程的不同阶段建立高效研发流程的常用手段:

    代码入库前

    • 规范优化流程——获取开发环境、本地开发流程、入库前系统检查;
    • 快速反馈——自动化测试、联调环境、并行化提高效率;
    • 优化代码入库前流程和代码检查系统——UT、IT、自动化代码检查;
    • Trunk-based——代码尽早进入共享分支集成;

    代码入库后

    • 持续交付——高效发现、定位问题,自动化保证检查效率;
    • 持续部署——提高资源使用效率;

    代码上线后

    • 数据收集和问题定位——打点、Dashboard监控、Logview;
    • 功能开关——实现功能的快速“回滚”;

    除此之外,针对流水线的优化可以基于以下几个原则进行处理:

    • 5个持续;

    • 提高测试完整性保证产品质量——建设框架、工具支撑测试用例编写、运行;

    • 提高流水线运行速度避免阻塞——包括构建速度、测试速度、反馈速度;

    • 提高环境一致性提前暴露线上问题——包括机器、数据、软件、网络;

    • 提高灵活性增强有效性——集成内外部工具,流水线可以自助化、自定制使用;

    欢迎关注我的个人公众号”My IO“,转载请注明出处。

  • 相关阅读:
    20145219《信息安全系统设计基础》实验二 固件开发
    20145219 《信息安全系统设计基础》第09周学习总结
    20145219 《信息安全系统设计基础》实验一 开发环境的熟悉
    20145219 《信息安全系统设计基础》期中总结
    20145219 《信息安全系统设计基础》第07周学习总结
    20145219 《信息安全系统设计基础》第06周学习总结
    20145219 《信息安全系统设计基础》第05周学习总结
    20145219 《信息安全系统设计基础》第03周学习总结
    20145219 《信息安全系统设计基础》第02周学习总结
    20145219 《信息安全系统设计基础》第01周学习总结
  • 原文地址:https://www.cnblogs.com/feiyun0112/p/13611264.html
Copyright © 2011-2022 走看看