本次播客是一个新系列播客中的第一篇,该系列播客名为“工程师文化”(Engineering Culture)播客,来自于InfoQ.com和QCon大会的幕后人员。\

在本次播客中,QCon旧金山大会、 伦敦大会和纽约大会的主席Wes Reisz访谈了GitHub的工程主管Phil Haack,Haack在Github的工作聚焦于实现将软件推送到开发人员的桌面,当前正致力于发布GitHub Desktop这样的软件。GitHub Desktop是用于Visual Studio开发工具和Atom文本编辑器的Github扩展。Haack于2011年加入Github,他也是.Net社区中的重量级人物。在Microsoft工作时,Phil在NewGit、ASP.NET和MVC.NET的发布中起到了核心作用。\

\

关键要点:

\

  • 我们常过度关注软件开发实践的具体细节。但是当扩展到大型的项目和团队时,挑战就不再是技术上的,而是社会问题。 \
  • 研究显示了多样化程度更高的团队会更加的高效。 \
  • 正在向管理层转化的工程师应将这种转化看成是与任何技术领域一样的一门学问;这并非是一件“仅靠即兴发挥”就能去处理的事情。 \
  • 建立高效团队需要信任,信任的存在可使团队成员在不破坏相互关系情况下,进行坦率的探讨和健康的辩论。一对一交流是一种实现信任的有效方法。 \
  • 要成为工程师团队中有影响力的教练,管理者需要体现出强大的技术领导力。在技术上不可靠的人通常不会被技术团队很好地接纳。

\

点击播客链接收听\

播客记录

\

1分59秒:“我们常过度关注软件开发实践的具体细节。但是当扩展到大型的项目和团队时,挑战就不再是技术上的,而是社会问题。”(引用自Peopleware)。在从按个人喜好开发项目转到参与几十上百人共事的大型开发项目的过程中,开发人员所面对的最艰难挑战在于如何与他人共事、如何很好地相互协调以及如何从他人那里学到最多的东西。\

3分09秒:一种应具备的重要能力,是采取证据法识别那些对推动协作产出有效的实践和方法,但是该领域的研究并不多。我们只能依赖于现有的研究方法,逐个试验它们的应用效果。这样才能确定一种方法是否真正有效,或者仅是一种不能实际应用于开发空间中的“传统观念”。\

3分40秒:合理的开发实践就是配置能运行的开发环境的技术。这样开发人员下载项目之后就可按下F5键去编译项目,而无需在完成繁杂的设置后才能使用该项目去做甚至是最简单的操作。如果项目是从代码库克隆而来的,那么仅需寥寥数步操作就可让该项目在开发人员本地的机器上运行起来。\

4分26秒:自动编译、持续集成等工具有助于使开发人员保持理智。\

4分52秒:在QCon旧金山大会的“软件技能”专题报道中,安排了报告“用于高效团队和产品的社交编程”。但是在实际中,社交编程的相关技能是非常难以学习并应用于日常生活中的。\

5分09秒:我们所存在的最大问题是社会学上的,这些问题通常并未得到企业和工程师的足够重视。企业和工程师的努力方向侧重于去解决技术实践问题,但是问题的根源却在于人们间是如何交流以及如何共事的。\

5分36秒:该报告内容包括了许多的个人经验教训,以及对这些经验教训的研究。一些经验证的研究显示,部分经验教训对实现更高效的团队有用。\

5分56秒:研究显示多样化程度更高的团队会更加高效。具有更加多样化构成的工程团队是更有生产力的。社会公正是一个由试验性证据支持的重要方面,这些证据显示了团队中多样性的价值所在。\

7分11秒:Haack曾在Microsoft从事开源软件工具和产品工作,他的工作可以说是在防火墙之外,并正在向Github迁移。那时Scott Guthrie是该项目的领导,他支持推动ASP.NET MVC开源,并认为Microsoft的未来取决于其对开源的支持程度。\

8分25秒:NewGit软件包管理器在一开始就是开源的,虽然经历了很长的时间才使团队可以公开接受项目贡献。\

8分51秒:在从Microsoft迁移到Github中的差别主要在于,从一个十万人的企业转变到一个只有30到50人的团队,并看着它成长到约600人规模。\

9分23秒:ASP.NET MVC的开源最初是以MSPO许可发布,开源需要企业文化的转变。最初在发布代码前要做IP审查,但是这个开销已经被精简了。\

10分20秒:Haak想从一开始就将NewGit迁移到Github上而非Codeplex上,这样可以支持更大型的开发社区。这样做的目标在于使NewGit对更广泛的开发社区有吸引力,而非仅是Microsoft爱好者。\

11分00秒:对于想要发布产品到开源环境中的开发人员,我们有如下的提示和建议:\

  • 从小规模开始; \
  • 挑拣其中独立的部分进行试水; \
  • 从他人的例子中学习; \
  • 响应反馈; \
  • 响应社区反馈需要做额外的工作,但是这些努力是值得的。

12分52秒:Haak很乐于看到ASP.NET发布在Github上,同时也惊讶于该事情的实现是如此之快速。\

13分34秒:作为一种跨平台脚本工具,Powershell已被发布在Github上。\

13分58秒:跨平台.NET易于使更多的Microsoft产品开源。\

14分26秒:Atom项目的目标是成为“最可控的文本编辑器”。Atom基于JavaScript、CSS和HTML,这些工具很可能为大部分开发人员所熟悉。开发人员可用已掌握的技能去扩展并定制自己的文本编辑器。\

15分36秒:Haak写过一个关于鼓励使用Atom的博客帖子,谈及用户在每次使用Atom保存文件时所给予的点滴鼓励。构建Atom扩展是一件多么有趣的事情呀。\

16分43秒:Electron项目是从Atom项目中抽取出来的,并已成为一个独立的项目。依靠自身的影响力,Electron已构成了一个重要的社区。Slack客户是基于Electron构建的,Nuclide Facebook IDE是基于Electron和Atom构建的,Visual Studio Code也是基于Electron构建的。许多企业正使用Electron作为跨平台应用的基础。\

18分00秒:类似于Node应用,Electron应用使用Node和NPM运行于Chromium客户Shell中,这意味着NPM包的引入有助于桌面应用的构建。\

18分35秒:Slack客户使用Electron构建。Slack的首席工程师之一Pual Bets原先是在Github,他深入地参与了Electron社区。\

19分06秒:借用Web开发技能去构建桌面应用的理念已经存在很长时间了,当前由于工具的存在和性能上的改进,构建一个好的跨平台应用是可行的。\

19分44秒:Haak应急需而成为Github的经理。\

20分22秒:对正进入管理层的开发人员的建议:\

  • 将这种转化看成与一种其它技术领域一样的学问;这并非是一件“仅靠即兴发挥”就能去处理的事情。 \
  • 学习并实践做管理所需的技能。 \
  • 学习如何去做好与你所管员工的每周一对一会谈。 \
  • 构建并发展你与每位同事间的信任。 \
  • 好的一对一会谈不是去做状态更新,而是去倾听你的团队成员的时间。

21分39秒:提供一个好资源:管理者工具(Manager Tools)播客。\

21分45秒:如果按30分钟时间来安排一对一谈话,其中的15分钟可用于团队成员的畅所欲言,另外15分钟由经理讲话;或者是对大家畅所欲言、经理讲话和展望未来各安排10分钟的时间。在谈话中重要的是应始终以团队成员的关注点为开始,因为谈话是关于团队成员的。一对一谈话可使得经理和员工彼此了解,进而构建相互信任的关系。\

22分22秒:建立高效团队需要信任,信任的存在可使团队成员在不破坏相互关系情况下,进行坦率的探讨和健康的辩论。\

23分14秒:怎样构建开发现代软件所需的伟大团队,对此建议如下:\

  • 一对一谈话并建立信任; \
  • 构建可很好交付反馈的企业文化(通常是很难的); \
  • 良好的反馈是持续性的、规律的、有建设意义的和积极的。

24分10秒:当一个团队中成员彼此间可以舒畅安全地给予坦诚反馈时,这样的团队就具备了不断改进的能力。\

24分40秒:如何聘请或培养一位好的经理?\

  • 在Github,经理是技术领导,是那些还具有一些个人职责的高级工程师; \
  • 经理领导4到6人的技术团队; \
  • 责任分割,80%是技术上的,20%是人事上的; \
  • 经理的职责受到主管的支持,主管的责任分割比例与经理相反,即80%是人事上的,20%是技术上的。

26分11秒:成为具有强大的技能、存在高度共鸣、具备指导并保证团队成员成长的能力的领导者。\

26分30秒:要成为工程师团队中有影响力的教练,管理者需要体现出强大的技术领导力。在技术上不可靠的人通常不会被技术团队很好地接纳。\

在2016年11月7日至9日间召开的QCon旧金山大会 上,Phil Haack将在称为“软件工程的软技能”的新专题上做报告。该专题关注如何去成为一名神奇的软件开发人员,聚焦于在开发人员角色上所需的有效人际交往能力。Haack的报告题目是“用于高效团队和产品的社交编程”。\

所提到的产品和工具

\

  • ASP.NET MVC\
  • Atom\
  • Chromium\
  • Node\
  • Nuclide\
  • Slack\
  • Nuclide\
  • Visual Studio Code

所提到的企业

\

  • Github\
  • Microsoft

资源

\

  • Peopleware:Tom DeMarco和Tim Lister所实现的高产能项目和团队\
  • 管理者工具(Manager Tools)播客

关于QCon大会

\

QCon是一个由业内人士驱动的大会,专为在团队中影响软件创新的技术团队主管、架构师和项目经理设计。QCon每年分别在伦敦、纽约、旧金山、圣保罗、北京、上海和东京举办七场大会。QCon将于今年11月7日至11日举办其第十届QCon旧金山大会,届时会有100多名业内专家作为演讲嘉宾,并有超过1300名与会者以及18个专题追踪报道,涉及当今推动软件开发行业的发展。请访问qconsf.com,了解更多详情。\

更多关于播客的信息

\

最新播客可通过我们的RSS feed更新,也可通过SoundCloud和 iTunes收听。本页所列出的播客摘要内容均附有可点击链接,点击后可直接切换到音频的相关部分。\

查看英文原文:Engineering Culture Podcast: Github’s Phil Haack on Moving from Engineering to Management

\\


感谢夏雪对本文的审校。

\\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们。

工程师文化播客: 从工程转向管理,访谈Github公司的Phil Haack相关推荐

  1. 从工程转向管理,访谈Github公司的Phil Haack

    在本次播客中,QCon旧金山大会. 伦敦大会和纽约大会的主席Wes Reisz访谈了GitHub的工程主管Phil Haack,Haack在Github的工作聚焦于实现将软件推送到开发人员的桌面,当前 ...

  2. kindel 资源_Hanselminutes播客71-Windows Home Server-Charlie Kindel访谈

    kindel 资源 My seventy-first podcast is up.  I've talked about Windows Home Server on my blog before a ...

  3. 技术进步停滞?中本聪是谁?大学教育还有用吗?Peter Thiel 有话要说 | ArcBlock 播客 ⑤...

    媒体: Decentralize Me Podcast 10 月 23 日至 10 月 25 日,ArcBlock 区块基石[1]参加了在美国华盛顿州贝尔维尤市举行的 COSM 技术峰会.参与 COS ...

  4. php 传智播客 学习内容

    第一阶段:(PHP+MySQL核心编程) 课程名称 阶段课程 课程内容 学习目标 PHP+MySQL核心编程(21天) PHP基本语法加强 Apache--directory配置段 一个IP和多个域名 ...

  5. 数字商会 Paul Brigner 访谈:架起区块链行业与政府的沟通桥梁 | ArcBlock 播客

    媒体: Decentralize Me Podcast 日期: 2019 年 10 月 15 日 ArcBlock 区块基石今年初加入[1]了全球首家领先的区块链行业协会"数字商会" ...

  6. 夸克链 CEO 周期访谈 | ArcBlock 播客

    媒体: Decentralize Me Podcast 日期: 2019 年 8 月 16 日 ArcBlock 播客专访夸克链创始人兼 CEO 周期 ArcBlock Decentralize Me ...

  7. 今天给大家介绍一下苹果手机的“播客”这个软件

    播客是一种非常流行的媒体形式,它可以让个人和机构以音频或视频的形式发布自己的节目,并与观众进行交流.在苹果公司推出了内建应用"播客"之后,播客受到了更广泛的关注和使用,成为了一个全 ...

  8. 软件工程师关注的播客

    Java The Java Posse 是一个以Java新闻.采访.点评以及"常见错误"为主要内容的播客 Ruby Ruby Rogues 内容包括Ruby生态系统与gems,以及 ...

  9. 传智播客支持中国制造2025人才培养工程

    2016全国IT骨干教师首期研修班火热开班 2016年7月24日,来自全国各地的高校IT老师来到北京星湖园温泉度假村,参加中国制造2025人才培养创新示范工程2016年全国高校IT骨干教师首期研修班. ...

最新文章

  1. 朴素、Select、Poll和Epoll网络编程模型实现和分析——Epoll模型
  2. web报表移动端如何进行移动设备绑定与撤销
  3. Angularjs $scope 里面的$apply 方法 和 $watch 方法
  4. 基于ubuntu16.04多用户编译android N(android 7.1)系统提示ninja_wrapper错误问题
  5. verilog for循环_HDLBits:在线学习 Verilog (二十四 · Problem 115-119)
  6. SpringCloud底层原理
  7. 寻找一个字符串中的最长不重复子串的长度
  8. 文件 服务器 pandas,疑难杂症-使用pandas_profiling查看EDA数据文档遇到的一些坑
  9. 10、jeecg 默认为空的字段值是如何被填充的?
  10. 蓝桥杯 入门训练 圆的面积
  11. ubuntu/Windows双系统,在ubuntu隐藏window分区的方法
  12. linux中批量替换文本中字符串
  13. 计算机操作系统 第五版 答案,操作系统-第5版-习题答案.doc
  14. 测试显卡矿卡用什么软件,3分钟看懂:AMD二手矿卡简明鉴别、检测教程,从此脱坑不求人...
  15. 微信小程序入门--注册账号
  16. Mysql调优(updating~)
  17. 使用Ryu实现交换式集线器(Switching hub)
  18. 知识库构建前沿:自动和半自动知识提取
  19. OSPF -LSA的类型及特点
  20. 盘点最近 火火火 的 7 个 GitHub 项目

热门文章

  1. circRNA相互作用预测数据库CSCD2
  2. 计算机视觉与深度学习 | 遗传算法(GA)的MATLAB实现(源代码)
  3. Matlab | Matlab从入门到放弃(1)——变量
  4. php关联二维数组,php-检查关联二维数组
  5. 语音信号之特性分析图(二)
  6. python实现线性回归预测_机器学习实战笔记(Python实现)-08-线性回归
  7. debug Tensorflow: ‘_UserObject‘ object has no attribute ‘add_slot‘
  8. lisp精要(2)-基础(1)
  9. vb.net2019-Accord.Net机器学习库安装与SVM简单分类
  10. 【深度学习】围观特斯拉总监把玩MNIST