美文网首页
个人开发习惯与团队效率之间的关系

个人开发习惯与团队效率之间的关系

作者: 翟志军 | 来源:发表于2022-03-11 08:01 被阅读0次
cat-g66a2113b2_640.jpg

案例一

大概在2014年,我在某公司开发一款持续集成方面的软件,叫openCI。它需要集成(请求)Jenkins、GitLab、Sonarqube等第三方软件,又或被这些第三方软件请求(Webhook)。

在我加入团队时,我发现团队成员经常要重启这些第三方软件。每次重启前,还会贴心地在IM群里通知一下,避免影响其他开发人员。但是并不是每个人都能及时留意到IM群里消息,以致于影响到一些需要长运的测试。

是的。每次第三方软件的重启,团队的工作效率都会被中断一次。而且,如果有人不小心“搞坏”这些第三软件系统时,整个团队似乎都无法工作了。

我是一个脾气暴躁的人,无法忍受这种低效。所以,就考虑如何每个人自己搭建一套第三方软件。想到了Vagrant。当时使用Vagrant搭建开发环境的人还非常的少。而无意间,又了解到Docker。就这样,当我需要集成到Jenkins时,我就会使用Docker在本地启动一个Jenkins实例。

这个案例的低效在于开发人员依赖于一个唯一的、脆弱的、不确定性很大的开发环境。

案例二

案例二是我工作几年后,来到一个采用事业部编制方式的大型企业。进入之后,发现当一个需求涉及两个事业部时,计划 server 端由 A 事业部开发,client 端由 B 事业部开发。

在总体上线时间不变的情况下,A 事业部(server端)要求占用90%的开发时间,只留给 B 事业部(client端)10%的时间。他们为此吵了起来。

当时我很好奇,为什么不可以同时开发?大家一起把接口定义出来,然后同时开发不就行了。后来,我才知道原来,client端的开发人员的开发习惯是:一定要server开发好,能真正请求了才能开始开发。而server端的开发员需要开发完成后,才能交给client测试。

案例二的低效在于开发人员之间本来只需要依赖一个协议,却要依赖于整个实现。

P.S. 我常常在团队中推gRPC的原因就是慢慢改掉团队成员之间的依赖耦合的问题。

案例三

最近几年,使用Kubernetes的企业越来越多。刚开始使用时,开发人员懵了。因为本地开发环境无法轻松的连接Kubernetes中的Redis、MySQL了。怎么办呢?他们一般是在企业内网找一台server,自己手工搭建Redis、MySQL等。然后本地开发环境连到这个集成开发环境。这其实和案例一是一样的低效。

案例四

现在公有云的使用普遍了,比如Elasticsearch这样产品,更多时候会选择云产品。开发人员经常会找到运维人员:你能不能给我开一个公网,我们本地开发需要连接上这个Elasticsearch。

总结

还有很多案例,我就不一一列举了。这里我只针对这些事实进行讨论,而不是针对个人。

小结一下,这些案例的共性就是:开发人员开发时,一定要“连”上某个开发环境才能进行开发。

我们可以看出开发人员越多,管理熵就越大。管理熵越大,团队效率就越低。

如何破局?这些年,我也观察到,大多数人的解决方案就是找运维再建立一套开发环境。这能解决问题吗?在我个人看来,这就是俄罗斯套娃,一套不够,再建一套。直到维护N套开发环境的成本大于团队的开发成本。另,如果套到极限,不就是人手一套吗。

而我的个人解决方案是:

  • 改掉开发人员的面向实现的开发习惯,改成面向接口的方式
  • 建立开发人员写单元测试的好习惯

遗憾的是,这个解决方案通常会被pass掉。答案是开发人员能力不足。

面对这样的回答,我思考过很长时间。这是很大的话题,不是本文的内容。

最后,作为个人,只能依靠自己影响力去影响别人了。

相关文章

  • 个人开发习惯与团队效率之间的关系

    案例一 大概在2014年,我在某公司开发一款持续集成方面的软件,叫openCI。它需要集成(请求)Jenkins、...

  • UML用例图

    前言 用例图主要用来呈现用户与系统之间的交互,展示user与不同的use cases 之间的关系。用于帮助开发团队...

  • 5年追踪180个创业团队,谷歌找到成功公司的5个元基因

    谷歌的研究发现,团队效率最重要的不是团队成员里有谁,而是成员之间如何合作。影响团队效率和团队合作关系的主要有心理安...

  • 前端的代码质量~代码规范整理

    前言 在项目开发中,个人的单打独斗式开发越来越少,团队合作越来越多。而在团队合作中,不同程序员之间的开发习惯是不一...

  • 团队之间协作“三板斧”

    在规模化敏捷开发中,会涉及到很多的团队之间的协作,团队之间协作的效率直接影响到产品的成功交付。怎么提高团队之间的协...

  • 【Scrum敏捷软件开发】第十章 团队结构

    一个团队的开发效率并不是与团队人数正相关。相反的,团队规模的扩大反而会降低人均开发效率。按照亚马逊的“两个披萨”原...

  • 第五章 练习与讨论//填坑

    1.团队模式和团队的开发模式有什么关系 *团队模式是团队内的人如何分工,每个人的职责是什么 *团队的开发模式是团队...

  • 最近重构的一些小思考

    现在的开发都提倡合作,以便提高开发效率,个人的单枪匹马肯定比不上一个团队的开发效率。重构也是如此。因此当我们从设计...

  • iOS设计模式与架构

    iOS设计模式与架构 架构 软件开发中的设计方案类与类之间的关系 模块与模块之间的关系 客户端与服务器之间的关系 ...

  • 习惯与观点之间的关系

    以后还是每天固定时间更新比较好,固定时间有利于养成习惯,就像是每天早晨起来,首先是刷牙洗脸换衣服,习惯的力量是不容...

网友评论

      本文标题:个人开发习惯与团队效率之间的关系

      本文链接:https://www.haomeiwen.com/subject/lilcdrtx.html