你们团队的规范吃灰去了吗,如何落地团队规范?

简介: 本文探讨了项目团队中常见的沟通问题及其解决方案。通过制定统一的规范,可以降低沟通成本,提高团队效率。然而,规范的落地成为新的挑战。借助自动化工具和平台,如DevOps工具链,可以有效解决这一问题。文中介绍了几种主要的DevOps工具及其应用场景,帮助团队实现高效协作。

在项目团队里,你是否也经常听到这些问题:

  • 前端问后端的接口怎么又调不了,是不是你们又动环境了?
  • 测试问研发这个Bug怎么不见了,是不是你们悄悄改了?
  • 这个组件我已经开发了,为什么你又自己实现一次?
  • 同一个 json 解析,为什么项目中引用了好几个版本的解析包?
  • 系统没效果,研发问运维你是不是没构建对?
  • 运维问研发你们是不是没提交全代码?
  • .........

这些问题听起来是不是很耳熟?它们不仅让人头疼,还非常影响团队的效率。

一、 统一的规范


添加图片注释,不超过 140 字(可选)


其实,大家都知道提高团队效率的关键在于制定并执行统一的规范。规范就像团队的“宪法”,能够降低沟通成本,让成员们有共同的行为准则,从而减少沟通中的摩擦和误解。通过一致的标准,可以确保项目质量,提高代码、文档的可维护性,便于新成员快速融入并缩短适应周期。同时,规范使团队协作更加高效,即使在人员变动时也能保障项目稳定。

二、新的问题


添加图片注释,不超过 140 字(可选)


但是,制定规范后,团队可能会面临一个新的问题:规范堆积如山。起初,规范比较少时,大家可能会认真遵守,但随着时间的推移,团队规范越来越多,问题也随之而来。一年前辛辛苦苦制定好的需求规范、编码规范、测试规范、运维流程规范、代码审查规范、联调规范等等,过一两年发现这些规范都吃灰去了。

那么,核心的问题就是:规范制定出来后,如何落地?

三、规范如何落地


添加图片注释,不超过 140 字(可选)


规范如何落地呢?在古代,一张圣旨就能实现,但强制实施只能走出历史的舞台。现在,要落地就必需借助自动化工具或平台,用自动化平台来固化规范与流程。

比如,需求不规范,使用平台后必需使用需求模板来设计需求。需求设计完后需要评审后才能分配给开发人员。开发人员的代码自己写单元测试,代码构建时间需要通过代码审查(静态代码安全及规范审查、人工 review)后,才能提测试。这些都可以使用自动化工具的能力和项目管理工具的流程来实现。

四、 DevOps

说到自动化,就不得不提DevOps。DevOps(Development & Operations的缩写)是一种联合了开发(Development)和运维(Operations),让开发与运维自动化并平滑地连接在一起。DevOps概念首次提出是在2009年。近几年随着敏捷开发在行业内的深入推广,Google、Netflix、Amazon等大型互联网公司的成功应用,带动了整个行业对DevOps的使用。


添加图片注释,不超过 140 字(可选)


DevOps的主要工具

  1. 持续集成和持续交付(CI/CD),如 Jenkins:Jenkins是一个开源的自动化服务器,用于持续集成和持续交付。它可以帮助团队自动化构建、测试和部署代码。
  2. 版本控制,如 git:Git是一个分布式版本控制系统,用于跟踪文件的变化。它可以帮助团队管理代码的版本,确保代码的一致性和可追溯性。
  3. 容器化,如 Docker、K8s:Docker是一个开源的容器化平台,用于打包、分发和运行应用程序。Kubernetes(K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。

比如:使用Docker打包Java程序

# 使用官方的Java 8镜像作为基础镜像 FROM openjdk:8-jdk-alpine # 设置工作目录 WORKDIR /app # 将Maven构建的JAR文件复制到容器中 COPY target/my-java-app-1.0-SNAPSHOT.jar /app/app.jar # 暴露应用程序的端口(如果需要) EXPOSE 8080 # 运行Java应用程序 CMD ["java", "-jar", "app.jar"]

  1. 配置管理,如 Ansible:Ansible是一个开源的自动化工具,用于配置管理、应用部署和任务自动化。它可以帮助团队自动化配置和管理服务器。

比如:用Ansible在远程服务器上安装和配置Nginx。

--- - name: Install and configure Nginx   hosts: all   become: yes   tasks:     - name: Update apt cache       apt:         update_cache: yes     - name: Install Nginx       apt:         name: nginx         state: present     - name: Start Nginx service       service:         name: nginx         state: started         enabled: yes     - name: Create custom Nginx configuration file       copy:         content: |           server {               listen 80;               server_name localhost;               location / {                   root /var/www/html;                   index index.html;               }           }         dest: /etc/nginx/sites-available/default         owner: root         group: root         mode: '0644'     - name: Enable custom Nginx configuration       file:         src: /etc/nginx/sites-available/default         dest: /etc/nginx/sites-enabled/default         state: link     - name: Restart Nginx service       service:         name: nginx         state: restarted

  1. 监控和日志管理,如 Prometheus、ELK:Prometheus是一个开源的监控系统,用于收集和存储时间序列数据。ELK(Elasticsearch、Logstash、Kibana)是一个开源的日志管理平台,用于收集、存储和可视化日志数据。
  2. 自动化测试,如 Selenium:Selenium是一个开源的自动化测试工具,用于测试Web应用程序。它可以帮助团队自动化测试流程,提高测试效率。

比如:使用Selenium打开一个网页,查找一个元素,并与之交互。

from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time # 设置浏览器驱动(这里使用Chrome) driver = webdriver.Chrome() # 打开目标网页 driver.get("https://www.example.com") # 等待页面加载 time.sleep(2) # 查找页面元素(例如一个输入框) search_box = driver.find_element(By.NAME, "q") # 输入内容并提交 search_box.send_keys("Selenium automation") search_box.send_keys(Keys.RETURN) # 等待结果页面加载 time.sleep(2) # 验证搜索结果 assert "Selenium automation" in driver.title # 关闭浏览器 driver.quit()

  1. 协作工具,如 Jira、Tapd、Redmine、禅道:这些工具用于项目管理和团队协作。它们可以帮助团队跟踪任务、管理项目进度和协作开发。


添加图片注释,不超过 140 字(可选)



我是栈江湖,如果你喜欢此文章,不要忘记点赞+关注

目录
相关文章
|
8月前
|
运维 安全 测试技术
团队研发流程混乱,该怎么办?
团队研发流程混乱,该怎么办?
166 1
|
运维 监控 Java
研发规范第十三讲:阿里 - 如何进行项目稳定性建设
研发规范第十三讲:阿里 - 如何进行项目稳定性建设
606 0
|
8月前
|
存储 测试技术 持续交付
团队配置管理规范:高效协作的秘诀与浅见
介绍软件配置管理规范的一些内容
202 2
|
8月前
|
运维 安全 开发工具
打破代码评审难落地魔咒,轻松构建基于代码评审的研发流程和文化
本文介绍小布快跑,高效协同,如何轻松构建基于代码评审的研发工作流。
263 2
|
8月前
|
运维 Devops 开发工具
PPT & 回放|打破代码评审难落地魔咒,轻松构建基于代码评审的研发流程和文化
代码评审的好处不言而喻,为何实际落地却困难重重? Git 和 Gerrit社区贡献者、云效Codeup开发者 滕龙认为问题主要出在流程工具问题、时间资源限制、自动化程度不足这3方面。 在昨天的直播中,滕龙给出了详细的解法,包含好的代码评审应该怎么做和如何选对工具高效落地2方面。
913 1
|
SQL 移动开发 数据可视化
发现新大陆——原来软件开发根本不需要会编码(看我10分钟应用上线)
发现新大陆——原来软件开发根本不需要会编码(看我10分钟应用上线)
106 0
好的软件研发管理怎么做
好的软件研发管理怎么做
230 0
|
敏捷开发 前端开发 BI
好的每日站会,应该这么开 | 敏捷开发落地指南
高效落地敏捷开发,先从这3个关键活动着手。在敏捷迭代中,虽然迭代周期比较短,但依然需要对迭代过程进行有效跟进。如果在输入、过程、输出环节,没有要求,每日站会(迭代跟进)将会非常低效。好的每日站会,应该这么开!
1246 0
好的每日站会,应该这么开 | 敏捷开发落地指南
|
JSON 前端开发 测试技术
从零开始搞基建(2)——团队协作规范
前端会与公司的所有部门有协作,若在某一环出现问题,就会发生不必要的时间开销,降低开发效率。所以有必要制订一套完善的协作流程。