什么是草台班子?

有个朋友最近想跳槽,他对管理的兴趣不大,而且认为自己的性格也不适合做管理,更想成为技术专家。基于这些考虑,他希望能进入知名大厂,如果面试不顺利,去小而美公司也行。他的面试经验不多,就向我咨询了一下如何选择公司的问题。

小公司必然缺钱缺人,技术团队几乎没有美,99%都是草台班子。有一些上万职员的大公司,运营着很多业务线,每条线又有多个技术团队,这些技术团队的水平良莠不齐,也存在部分草台班子。无论公司大小,造成技术团队是草台班子的根本原因都是一样的:

  • 不重视技术投入

公司就是一辆车,让车跑起来的要素太多了,技术只相当于半个轮子。任何公司都是资源不足的,管理层总是把资源投在产出最高、最快的地方。在很多传统企业里面,技术只是辅助业务自动化运转,不直接创造价值,自然不受到重视。

  • 轻视研发质量

并不是线上没重大BUG,研发质量就算高了,还要兼顾工程质量、研发效率、团队可持续发展等方面。许多草台班子只关注了BUG和研发效率(这个效率也是加班加出来),其他方面做得一塌糊涂。公司要想提高研发质量,首先要建设一个有技术范的管理队伍;其次对管理人员进行360环评,所谓”兵熊熊一个,将熊熊一窝”。360环评的特点是,被评估者从自己、上司、下属、同事获得多个角度的反馈,从这些反馈知道自己的缺点、优点与发展需求。

在面试的时候如何判断技术团队是不是草台班子呢?我的建议是在面试的尾声,问面试官一个问题:你们团队的技术文档质量怎么样?如果面试官说”还可以”,就继续追问他”哪些方面还可以,哪些方面待改善?”。如果它是个草台班子,技术文档一定没做好,面试官会心虚。

什么是草台班子?它有三个共同特征:

一个需求从提出到上线要经历至少七个流程:

  • 1)需求评审:产品经理给出需求文档,邀请技术参与需求评审,目的是扫清需求疑点,排除技术上无法实现的需求。
  • 2)技术评审:技术人员内部评审需求,确定详细的技术方案。
  • 3)开发排期:技术人员根据技术方案拆解任务,输出开发排期文档,并告知产品和测试,以便他们协调测试时间。
  • 4)开发阶段:技术人员用代码实现需求,如果有需求疑点,继续找产品核实;在开发尾声,技术团队内部评审该需求的代码。
  • 5)测试用例评审:测试人员根据需求文档拆分测试用例,并给出测试工作排期,确定需求最终上线日期。
  • 6)测试阶段:测试人员根据测试用例分别在测试、预发布、灰度、生产环境测试。
  • 7)产品验收:测试人员确认测试通过,邀请产品人员验收。

很多团队制定了研发流程,实际工作起来却跳过一些流程或者执行不到位,原因有两个:

  • 1)产品经理希望早点上线:想需求早点上线,必然压缩开发周期,有时甚至跳过测试阶段,完全由开发人员自测。这种情况技术Leader要据理力争为开发人员争取更多的时间。
  • 2)开发人员专业能力不足:以代码评审为例,不能让专业能力差的人去做,因为他看什么代码都觉得还行。日常工作中优先让技术好的人做代码评审,并且进行内部技术分享,尽快提高每个人的专业能力。

团队工作中最容易忽视技术文档,因为编写文档是个苦力活,而且短期内看不到效果。常用的技术文档包括下面六类:

  • 1)新人入职指引文档

新人入职后需要配置开发环境、申请内部账号等等。通过入职指引文档,新人不需要找老人打听,显著提高工作效率。

  • 2)系统架构文档

系统架构文档帮助新人迅速了解技术栈、整体系统结构、微服务分类和调用情况。由于开发的不断迭代,可能加入新的微服务或者调整存储层,系统架构文档要及时更新。

  • 3)团队研发规范文档

研发规范文档至少要涵盖:数据库建库建表规范、开发语言代码规范、应用工程结构规范。配合代码审查,严格执行研发规范。

  • 4)日常技术方案文档

开发重要的、周期长的需求,一定要编写技术方案文档。这类文档帮助开发人员理清思路,日后其他成员也更容易接手。技术方案文档的内容包括:业务流程图、接口设计与改造、数据表设计、灰度方案、回滚方案、发布计划与工程配置。

  • 5)重大故障复盘文档

如果不进行故障复盘,必然再次出现故障,交了学费却没有学到东西。故障复盘文档包括:故障发生和持续的时间;解决故障的具体方案和时间段;故障造成的损失是什么;发生故障的根本原因是什么;如何避免故障再次出现。

  • 6)通用组件优化文档

开发团队通常积累一些常用工具库,解决工程的基础问题,比如对象属性拷贝、IO处理、网络请求等等。这些库的使用很广泛,如果有些方法获得优化,收益是很大的。改动了工具库,要编写相应的文档,将优化措施和风险写清楚,避免给使用者留坑。

许多技术团队从来不做工作总结,每个月做几个需求,每个季度聚个餐,年底再聚个餐,一年就结束了。长此以往,只低头做事不抬头看路,团队成员的能力提升非常有限。

工作总结的执行方式是每个团队成员根据自己的情况做PPT,然后讲述给其他人听,PPT的主要内容有三个:

  • 1)创造的价值:这一阶段的开发的需求创造了什么价值,有没有降本增效。
  • 2)收获和感想:这一阶段的收获是什么,哪些能力得以提升,哪些缺点需要改正。
  • 3)计划和展望:除了产品提出的需求,下一步的工作计划是什么,哪些项目可以优化,哪些提升效率的内部工具可以开发。

Original: https://www.cnblogs.com/xiaoyangjia/p/16374102.html
Author: 编码砖家
Title: 什么是草台班子?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578117/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Ubuntu18.04 显卡驱动安装(解决各种疑难杂症)

    步骤 下载驱动 准备工作 进行安装 检查安装 下载驱动 首先我们需要去官网下载显卡驱动 打开浏览器,在百度搜索框中搜索:显卡驱动 下载 在 手动搜索驱动程序一栏,根据自己的显卡进行…

    Linux 2023年6月14日
    0120
  • Fabric2.2中的Raft共识模块源码分析

    引言 Hyperledger Fabric是当前比较流行的一种联盟链系统,它隶属于Linux基金会在2015年创建的超级账本项目且是这个项目最重要的一个子项目。目前,与Hyperl…

    Linux 2023年6月7日
    078
  • Shell命令

    1.shell命令的执行机制:fork+exec执行命令(任何的shell都会执行) 2.shell中的用户输入处理 1 命令行参数:选项、参数 2 运行时输入 3 read命令:…

    Linux 2023年6月6日
    0105
  • tar压缩提示file changed as we read it

    压缩文件夹,过程中某个文件有变化,会提示 file changed as we read it 。不太确定是压缩到这里就中断了,还是压缩完,才提示的这个错误。 测试一下 做个实验,…

    Linux 2023年6月8日
    0175
  • 面试题汇总

    JAVA 基础 1.java 性能优化 ①尽量指定类、方法的final 修饰符 ②尽量重用对象 ③尽可能使用局部变量 ④及时关闭流 ⑤尽量减少对变量的重复计算 ⑥尽量采用懒加载的策…

    Linux 2023年6月7日
    094
  • redis安装使用

    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务…

    Linux 2023年5月28日
    0103
  • 使用docker 部署mysql,突然连接不上!

    WARNING: IPv4 forwarding is disabled. Networking will not work. 大概意思就是说,网络不能用,也就意味着不能连网络,所…

    Linux 2023年6月7日
    081
  • 辗转相除法:(求最大公约数)

    辗转相除法:(最大公约数)又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除…

    Linux 2023年6月7日
    0121
  • 修改shell命令提示符和命令的输入颜色

    修改命令提示符颜色 修改命令提示符的话,只需修改PS1环境变量即可。 PS1=’\[\033[01;31m\][\u@\h \W]$ \[\033[00m\]’ 效果如图: 修改命…

    Linux 2023年5月28日
    096
  • Django_模型详解

    Django_模型ORM Django中内嵌了ORM框架,不需要直接编写SQL语句进行数据库操作,而是通过定义模型类,操作模型类来完成对数据库中表的增删改查和创建等操作。 O是ob…

    Linux 2023年6月7日
    0116
  • 2021年度总结 2022年度规划

    2021年 计划 1、学习更多的知识😁 2、学习408的知识,至少能熟悉计算机组成原理、操作系统、计算机网络、算法这几个的联系,区别等。😁 3、整理408的知识到博客上。 (一篇未…

    Linux 2023年6月13日
    097
  • Redis做Mybatis的二级缓存

    基于spring boot项目的前提下,使用redis数据库做mybatis的二级缓存。 Redis做mybatis的二级缓存 作用提升速度,保证多台服务器访问同一数据库时不会崩注…

    Linux 2023年6月7日
    0119
  • 项目管理中的关键路径法-时窗图解法cpm

    完成单个活动所需的时间称为活动时间,可以形象地以一个矩形窗格来表示,这个窗格称为 时间窗口,简称 时窗。 1.1 分类 单位时窗: 基本时窗,时窗的不可分割的最小单元, 活动时窗:…

    Linux 2023年6月13日
    098
  • linux系统(centos)下kvm虚拟化用命令行给虚拟机添加硬盘

    linux系统(centos)下kvm虚拟化用命令行给虚拟机添加硬盘 背景 公司有用单台服务器使用kvm装虚拟机,利用webvirtmgr进行界面管理。当虚拟机创建时固定硬盘后,不…

    Linux 2023年6月8日
    0111
  • 国产化之虚拟ARM64-CPU安装银河麒麟操作系统

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟v4,CPU使用飞腾处理器。我本地没有这个国产的处理器,但飞腾是基于 _ARMv8_架构的64位处理器,所以理论上…

    Linux 2023年5月27日
    0332
  • PHP str_repeat()

    str_repeat str_repeat() 函数把字符串重复指定的次数。 示例: function strRepeat() { echo str_repeat("*&…

    Linux 2023年6月7日
    0187
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球