研发效率破局之道
葛俊
前Facebook内部工具团队Tech Lead
立即订阅
3343 人已学习
课程目录
已完结 39 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么你要关注研发效能?
免费
研发效能综述 (3讲)
01 | 效能模型:如何系统地理解研发效能?
02 | 效能度量:效果不好甚至有副作用,怎么回事?
03 | 效能度量:如何选对指标与方法,真正提升效能?
研发流程 (7讲)
04 | 流程优化:怎样才能让敏捷、精益真正为我所用?
05 | 代码入库前:Facebook如何让开发人员聚焦于开发?
06 | 代码入库到产品上线:Facebook如何使用CI/CD满足业务要求?
07 | 分支管理:Facebook的策略,适合我的团队吗?
08 | DevOps、SRE的共性:应用全栈思路打通开发和运维
09 | 信息流通:让团队高效协同,让产品准确击中目标
10 | 答疑篇:反对996并不是反对奋斗
工程方法 (10讲)
11 | 研发环境:Facebook怎样让开发人员不再操心环境?
12 | 代码审查:哪种方式更适合我的团队?
13 | 代码审查:学习Facebook真正发挥代码审查的提效作用
14 | 质量与速度的均衡:让“唯快不破”快得更持久
15 | 开源:从Phabricator的开源历程看开源利弊
16 | 高效上云:如何用云计算来提高效能?
17 | 测试左移:测试如何应对新的开发模式?
18 | 蓝绿红黑灰度发布:这些五颜六色的发布到底怎么用?
19 | 不再掉队,研发流程、工程方法趋势解读和展望
20 | 答疑篇:如何平衡短期收益和长期收益?
个人效能 (11讲)
21 | 高效工作:Facebook的10x程序员效率心法
22 | 深度工作:聚焦最有价值的事儿
23 | 效率工具:选对用对才能事半功倍
特别放送 | 每个开发人员都应该学一些VIM
24 | VIM:如何高性价比地学习VIM的实用技巧?
25 | 玩转Git:五种提高代码提交原子性的基本操作
26 | Facebook怎样实现代码提交的原子性?
27 | 命令行:不只是酷,更重要的是能提高个人效能
28 | 从工作场景出发,寻找炫酷且有效的命令行工具
29 | 1+1>2,灵活的工具组合及环境让你的工作效率翻倍
30 | 答疑篇:关于价值导向和沟通
管理和文化 (6讲)
31 | 业务目标和技术目标两手抓:怎样打造高效团队?
32 | 从Netflix公开的著名PPT谈硅谷公司文化
33 | Facebook企业文化:工程师文化是创造力引擎
34 | Facebook工程师文化实践三大支柱之一做感兴趣的事
35 | Facebook工程师文化实践三大支柱之二拥有信息和权限
36 | Facebook工程师文化实践三大支柱之三绩效调节
结束语 (1讲)
结束语 | 超越昨天的自己,享受成长的快乐
研发效率破局之道
登录|注册

11 | 研发环境:Facebook怎样让开发人员不再操心环境?

葛俊 2019-09-16
你好,我是葛俊。今天,我来和你聊聊研发环境的问题,也就是如何才能让开发人员少操心环境,甚至不操心环境。从这篇文章开始,我们就一起进入工程方法模块了。
第 5 篇文章关于“持续开发”的讨论中,我与你介绍了获取开发环境是开发工作的核心步骤之一,对提高研发效能来说是非常值得优化的环节。当时,我与你提到了开发环境服务系统以及沙盒环境,解决了开发环境的准备工作。
而这里的“开发环境”只是研发环境的一部分,特指开发机器环境,包括开发机器的获取、网络配置、基本工具以及代码的获取和配置。今天,我们就来看看整体的研发环境的配置问题,从全局上切实解决开发人员因为操心环境而导致的效能低下。
在此之前,你可以先回忆下是否对以下问题似曾相识呢?
开发人员使用的电脑配置太低,运行太慢,编译一次要 10 分钟;
测试环境不够,上线时熬夜排队等环境;
工具零散,不成系统,很多步骤需要手动操作,开发思路常常因为流程不连贯而被打断;
团队成员的环境设置参差不齐,有个别开发人员环境配置得比较好,效率比较高,但没有固化下来,其他团队成员也用不上。
这些问题,实际上都可以归结为研发环境不够高效。就像低劣的空气质量和食物质量会影响我们的身体健康一样,不理想的研发环境会严重降低研发效能。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《研发效率破局之道》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(12)

  • 小名叫大明
    我看到了个人认为比较重要信息: Facebook认为人力成本更高,这个意识比较重要,很多公司没这个意识,有这个意识的确是通过延长工作时长来补,加班及长期加班又降低了非工具和环境造成编码效率,恶性循环。

    慢慢理解招聘时多研发自驱,兴趣等能力的重视的原因了。哈哈

    作者回复: 很高兴能启发大家一起思考!这才是最重要的 :)

    2019-09-16
    7
  • 日拱一卒
    关于研发环境的高效性,我目前的工作中是用资源池的方式,可以在几分钟内获取一套自定义的虚机,通过加载项目维护的Docker镜像,可以在半小时内搭建一套完整的环境。
    但这种方式对于小型公司来说,有没有成本来创建和维护这样一套环境?从技术人员的角度来看,这样做很有价值,从公司长期发展的角度来说,也是有必要的。但是很多公司 不是互联网公司,它们可能是很传统的软件公司,平时没有高并发之类的需求,例如政府相关的项目,这种类型的项目,很多时候在现场开发,机器都不是自己提供的。这种情况很难保证研发环境的高效。
    当然,这也许只是一个借口,用来发牢骚,我们应该抓住工作中任何机会去改善和提升。

    关于思考题中的截屏,这是非常有价值的一个做法,特别有时涉及到不同组沟通讨论的时候,截图是很好的证据。我们的解决方案和你说的差不多,涉及到不同的工具,处理方式不太一样。
    1. 如果工具本身支持图片存储,例如ZenHub或者JIRA,我们用工具本身来存储图片。
    2. 如果工具本身不支持图片存储,我们用公司提供的网盘来存储图片,在工具中引用相关的链接。

    作者回复: 写得非常好,可以看出你们团队,以及你个人,平时是比较关注研发效能,也关注研发人员技能成长的。这样的工作环境,应该很不错!

    2019-09-22
    2
  • 寒光
    截图的这个处理方法的确很赞👍

    作者回复: 是呀,我个人超级喜欢 :)

    2019-09-16
    1
  • 我来也
    我办公用的电脑,显示器,键盘,触控板都是我自己花钱买的。
    公司配的比较差。

    作者回复: 我最近公司也是自配 😎

    2019-10-26
  • oillie
    我一般都是在jira里贴图的,然后把jira链接放到commit message里

    作者回复: 这样做步骤比较多。不过也还可以 :)

    2019-10-13
  • 日拱一卒
    做到研发环境的高效性,一个基本的前提就是要意识到人的价值,人比软硬件更有价值。
    如果认识不到这一点,文章中说的这些内容,会很难推动。

    作者回复: 是的是的。软件研发因为灵活性和创造性,人的价值更重要了。

    2019-09-22
  • Geek_1988
    之前想在公司应用trunk base的代码管理,发现总会跟别人的代码产生冲突,但每个人负责的模块不同,按理不应该冲突才对。学到这里恍然大悟,我们的开发环境和测试环境混合在了一起,并且代码没有及时同步!由于我们是一个机器人团队,每台机器人既是开发环境也是测试环境,大家通常会在机器人上进行开发,但机器人没办法分配给每人一台。

    代码分散在了不同的测试环境中,没有及时同步到仓库,而测试环境又是大家共享,当同步代码时就不可避免地产生了冲突。

    作者回复: 很高兴能给你一些解决问题的思路 :)

    反正原则是想方设法让大家尽快合并代码,尽早解决冲突!

    2019-09-18
    1
  • 李双
    都是基于长远考虑,学习了

    作者回复: 嗯,一直都是在短期和长期之间权衡 :)

    2019-09-17
  • 寒光
    想问下老师,“一图胜千言”的解决方案有没有对应的开源产品呢?现实中这个问题太烦人了,好多流程管理系统对图片不友好,word文档又太麻烦,不好管理。

    作者回复: 这个我没有找到开源的方法 :(

    当时我在一个小公司是这样做的:
    * 图像存储是Google Drive
    * 截屏上传工具是Share Bucket (https://apps.apple.com/us/app/share-bucket-image-sharing/id611078158?mt=12) 它支持上传到指定的Google Drive,同时存储URL到剪贴板。



    2019-09-16
  • 刘晓光
    请教一个问题,开发机能够快速分配,有没有回收的策论?能给介绍一下么?

    作者回复: 开发机器因为是开发人员经常要用,所以应该长期运行,而且系统不应该主动回收。通常来讲,可以限制每个人有1~2台。

    2019-09-16
  • 许童童
    让开发流程顺畅,不阻塞,就等于是提高了效率,提升了研发效能,而且这种提升是每个开发者,员工能立即享受到的提升。

    作者回复: 是的。这种环境开发起来很舒服。员工满意度容易比较高。

    2019-09-16
  • Weining Cao
    我们现在遇到的一个问题是线上测试资源不够。因为我们发布的软件要支持mac系统,可是目前没有找到合适的提供mac虚拟机的服务商,可是买mac硬件又很贵。。。所以现在大部分mac环境提测的job都会长时间排队。。。

    作者回复: 美国那边有Mac IaaS服务,比如MacStadium(https://www.computerworld.com/article/3431659/macstadium-announces-cloud-based-mac-iaas-for-developers.html)

    不过在国内好像没有听说过。我搜了一下也没有搜到。。。

    2019-09-16
收起评论
12
返回
顶部