写点什么

Git 团队协作(一):如何组建充满斗志和凝聚力的团队?

  • 2020-02-18
  • 本文字数:1657 字

    阅读完需:约 5 分钟

Git团队协作(一):如何组建充满斗志和凝聚力的团队?

编者按:本文节选自童仲毅译《Git 团队协作》一书中的部分章节。


在小团队中,可能一个人就承担了很多角色。紧跟小团队中每个人的日常工作相对容易。然而,在大团队中,角色可能分散在不同部门。那些对代码库进行用户验收测试的团队,可能从来没有和被测试产品的设计师和开发者说过话。两种团队都可能遇到问题:如果没有足够的背景知识,却被提出了更高的要求,最后注定会有所遗漏;团队之间人为的屏障总是会增加他们之间的紧张关系。在开发代码时,这样的隔阂可不是什么好事。


你是否听说过“以终为始”这句话?当我构建软件时,总是在替别人构建。即使我拼命回忆,也想不起来自己曾经出于自娱自乐的目的开发过某个产品。我不是天生的黑客。我被软件吸引,是因为它能带给别人价值。每次我坐下来解决一个问题时,想的都是给用户提供更好的体验。我希望避免反复,也希望保护用户的安全。我希望他们感觉到自己心灵手巧,而非笨拙。如果在我和用户之间还隔了客户,我有时还需要改变客户思考问题的方式,以便满足他们的商业目标,同时保证终端用户的良好体验。每当我们坐下来工作时,应该从描述希望为用户解决的问题开始,也就是从用户故事(user story)开始。


接下来,在测试驱动开发流程中,你将会编写验收测试,界定如何知道问题已被解决。声明会依据编写用途被自动化测试套件、质量保证(QA)团队或是同行评审员使用。如果提前与测试团队商定验收测试,那么开发者会更清楚工作的产出应该是什么样的。一般来说,测试应该描述需要解决的问题,而不是规定将要使用的技术。


测试流程应该包含安全性评审。规模更大的公司有幸拥有专门的安全专家。让这些专家尽早介入这个流程,请他们教你如何编写安全的代码。如果你的 QA、安全和开发团队是分散的,在一开始将他们聚在一起,这会使测试流程变得更加有趣,因为开发者力图提供完美的代码,而测试团队力图挑刺。


如果部署不由你负责,同样让运维团队尽早介入。保证你的开发环境和最终的产品环境越接近越好。理想情况下,你应该使用构建脚本(build script)来尽可能自动复制环境。你可以选择使用 Docker(http://www.docker.com/)和 Vagrant(http://vagrantup.com/)来创建环境副本。和运维团队一起,使用诸如 Chef(https://www.chef.io/chef/)、Puppet(https://puppetlabs.com/)或 Ansible(http://www.ansible.com/home)这样的工具创建管理配置文件的基础设施。


讲到开发的技术栈,如果你在使用开源软件,请了解一下你将要使用的产品的开发社区。我们很少遇到新的问题,而有的人可能已经遇到过你的问题。在代码社区中寻找导师,同时指导别人。打破团队的边界,走出办公室,可怕的问题会变得简单得多。


当促进大公司中部门间的协作时,可以减少代码在原地闲置的时间。闲置的代码会以各种方式耗费你的金钱:新特性的代码可能阻碍你赚更多的钱;修复 bug 的代码则可能阻碍你停止损失。闲置的代码慢慢就不新鲜了。代码等待评审的时间越长,它可能偏离你的主分支越远。它偏离得越远,同步并预发这些工作就越麻烦。


最后,我们会审视自己的团队。技术架构师负责规划解决方案应该如何实施。架构的决策应该有文档记录并尽可能共享。架构师可能也是编码团队的一员。编码团队可能由前端开发者、后端开发者、设计师和项目经理组成。我有时候也和商业分析师一起工作。如果你在敏捷开发环境中工作,可能还需要一个敏捷专家和一个产品负责人。


我倾向于在这样的环境中工作:无论哪里有需要,每个人都愿意伸出援手。自我管理的团队通常彼此非常信任和尊重。不过,这种状态是需要你努力构建的。共识驱动的开发最适合小规模的内部项目,但这并不意味着你不能在其他地方尝试协作。管理项目时,我喜欢让开发者选择他们想做的工单。这增加了他们的自主性,如果需要,让开发者从任务中解脱片刻。不过,我也发现有些人喜欢别人替他们分配好工单。


没有一种方式可以组织所有团队或管理所有项目。一个充满斗志和凝聚力的团队,其秘诀是尊重团队中的每个人,只要有可能,就根据他们的喜好来改善流程。


图书简介http://www.ituring.com.cn/book/1779



2020-02-18 08:004731

评论

发布
暂无评论
发现更多内容

官方线索|2021数智马拉松大赛,AI音乐之夜

石云升

1024我在现场

别再傻傻分不清 AVSx H.26x MPEG-x 了

声网

音视频

人社部、工信部颁布人工智能国家职业技能标准,百度参与制定

百度大脑

人工智能

SSD可靠性指标MTTF、MTBF、AFR解析

怀瑾握瑜

SSD nvme 可靠性 固态硬盘数据恢复

Knative Autoscaler 自定义弹性伸缩

全象云低代码

Knative Serverless Kubernetes

《原则》在解决技术问题中的应用

Changing Lin

10月月更

物流CRM软件能帮你送快递吗?

低代码小观

企业管理 物流行业 CRM 管理系统 物流系统

入职腾讯的前一天,我哭了(传统行业被裁,奋战一年成功逆袭!)

收到请回复

架构 编程语言 后端 语言 & 开发 java

等级保护测评机构哪里可以查询?谁能告知一下!

行云管家

网络安全 等保测评 安全等级保护

如何说孩子才肯听,怎么听孩子才肯说(下)

石云升

读书笔记 育儿 10月月更

【得物技术】自动化生成代码几种方案的演变

得物技术

自动化 代码 生成代码 机器 自动

成本直降50%,下一代网关震撼发布

阿里巴巴云原生

云原生 网关 kurbernetes

如何选择 Web 的数据存储方式?看我就够了

神策技术社区

存储数据 Web JS SDK sessionStorage

织信OA考勤管理系统是如何解放企业内部考勤的?

优秀

低代码

微服务链路追踪组件Skywalking实战

飞鸟

Spring Cloud Skywalking 链路追踪组件 微服务调用链

017云原生之一些技术概念

穿过生命散发芬芳

云原生 10月月更

【设计模式】第三篇-单例模式

Brave

设计模式 单例模式 10月月更

北鲲云超算平台提供生命科学领域所需要的哪些软件?

北鲲云

超低延迟直播架构解析

百度开发者中心

音视频 直播技术 智能视频

如何在 Web 前端做 3D 音效处理

ZEGO即构

大前端 音视频 3D音效 范围语音

Telemetry标准日志接口如何提升运维效率?

怀瑾握瑜

运维 存储 SSD nvme

开源应用中心 | KodExplorer高效流畅云端存储&协同办公新体验

开源 开源技术

一周信创舆情观察(9.27~10.10)

统小信uos

浪潮云荣登“中国数字安全能力图谱-信息计算环境”多项安全能力者领域

云计算

没想到!我在简历上写了“精通MySQL”,阿里面试官跟我死磕后就给我发了高薪offer

收到请回复

Java MySQL 数据库 面试

SSH工具有哪些?哪款好用?

行云管家

运维 SSH 文件传输 SSH工具

红黑树

Dobbykim

Java 17 与 Java 11 相比有什么变化?

码语者

Java

​涉密信息外泄,移动办公信息安全将如何保障?

WorkPlus

产品、

GrowingIO Design 组件库搭建之 CI/CD

GrowingIO技术专栏

持续集成 CI/CD 持续交付 Github Actions 组件库

官方线索|1024短信盲盒,掘友你好,见字如面

xcbeyond

1024我在现场

Git团队协作(一):如何组建充满斗志和凝聚力的团队?_GitHub_Emma Jane_InfoQ精选文章