写点什么

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:005561

评论

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

企业如何利用海外社交媒体监测工具搭建舆情监测体系?

沃观Wovision

社交媒体 舆情监测 沃观Wovision 海外舆情监测

区块链 Web3 项目开发技术栈

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

安全设备的静默之谜:我们花百万买的,究竟是功能还是效果?

塞讯科技

网络安全

Fabarta个人专属智能体财经写作实战:智能深度分析加速创作升级

Fabarta

别只盯着Sora,中国AI视频的实时交互已悄悄领先

脑极体

AI

性能测试进阶秘籍:如何用JMeter分布式压测挖掘系统极限潜

测试人

软件测试 性能测试

别再乱排查了!Kafka 消息积压、重复、丢失,根源基本都是 Rebalance!

程序员小富

Java kafka

区块链Web3 项目开发的技术栈

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

企业出海的挑战与应对方案

Wolink

品牌 跨境电商 出海企业 海外营销推广 达人营销

IDC 发布|焱融科技保持强劲增长,引领AI推理存储市场

焱融科技

全闪存储 AI推理 软件定义存储

MyEMS 核心架构解析:从数据采集到智能决策的完整技术栈

开源能源管理系统

开源 开源能源管理系统

碳中和背景下的能源数字化:MyEMS 为企业提供精准碳管理方案

开源能源管理系统

开源 能源管理系统

从 JSON 字符串到 Java 对象:Fastjson 1.2.83 全程解析|得物技术

得物技术

Java json `后端 开源‘

区块链 U 卡 App 关键技术栈

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体

测试人

人工智能 软件测试

【隐语SecretFlow社区】万字长文解读构建可信数据空间相关标准

隐语SecretFlow

区块链 隐私计算 标准 可信数据空间

NL2DSL2SQL是实现ChatBI的正确技术路线吗?

飞鲤

数据分析 Data + AI ChatBI

基于 Seedream 4.0 模型的多图融合应用开发实战(下)

北京中暄互动广告传媒有限公司

双向链表的奥妙 - 浏览器航海家

华为云开发者联盟

c++ 数据结构 双向链表 华为开发者空间

海外社交媒体监测工具是什么?从原理到应用的完整指南

沃观Wovision

社交媒体 舆情监测系统 海外舆情监测

充电桩测试系统:数字化测试管理新范式,驱动充电设施高效运维

深圳亥时科技

海外营销是做什么的?

Wolink

海外营销推广 沃链Wolink 达人营销

打破应用跳转流失困局,提升推广链接转化率

HarmonyOS SDK

HarmonyOS SDK应用服务

我的 App 终于告别 “虚胖”!靠 FinClip 这套前端组件化方案

xuyinyin

批量获取1688商品数据,精准筛选与分页查询

Datafox(数据狐)

1688API 1688商品数据采集 1688数据分析 1688商品列表api

微信论坛社区小程序:助力高效社区运营与流量增长的优质解决方案

微擎应用市场

赋能伙伴,共赢市场:万界星空MES开发平台

万界星空科技

低代码平台 mes AI低代码平台 AI智能化MES MES平台

区块链技术在各行业的应用领域

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

技术创新的舞台:零碳园区如何成为绿色科技的试验场和展示窗?

西格电力

电力 光伏发电 绿色能源转型 零碳园区 能源可再生

全面适配iOS 26液态玻璃,基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.2发布

JackJiang

网络编程 即时通讯 im开发 RainbowChat ios26

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