# 如何打造一个超能团队

# 制定规范、规矩

似乎总是从新人对接开始说事,这事整的,好像每个公司人员流动性都很大,带来的问题也已经从侧面说明了。团队总是具有不稳定性,团队要继续高速前行势必需要早做准备,需要做一些不依赖人员的东西、跟团队业务发展相关的东西,这也仅仅是制定规范的好处之一,更多的还是为了更好、更舒服的工作。

  • 新人培训:了解组织架构、业务划分、团队情况,职责定位、开发测试规范
  • 老带新:不能让新人跟老人没有交集,优秀的东西需要传承

新人三知:始、中、终。新人和老人都需要具备一定的主动性,主动问、主动告知。
了解某一事情的开始、发展、和结果。具体表现为:事件背景、事件发展阶段、各阶段预期结果以及最终预期结果。

# 规范的延续

也就是规范的载体
如同文化的传参有典籍、实物和活态三种渠道一样,规范传参可以简单概括为两种方式:“物承”和“口承”。
工作中“口对口”传达需求的情况比比皆是,对于“口授”者相当方便,承接者就遭殃了。
口头传达缺点:

  • 容易遗漏
  • 表意不当
  • 双方理解偏差
  • 不易留痕
  • 极易变更,会导致相关人员工作混乱

相比而言,有实物的输入输出就会带来更舒服的工作体验,各方面工作可以有条不紊的推进,准点下班不是梦(WLB)
实物也就是文档,包括:业需、软需,还有前后端以及测试人员的文档
前端:

  • 前端开发详细设计文档

后端

  • UML图
  • 数据库表设计文档
  • 后端开发详细设计文档
  • 后端接口规范文档(BFF 前后端协商)

测试

  • 功能点拆分文档
  • 编写测试用例文档
  • 测试报告

以上是前后端测试人员需要产出的不完全文档,还包括各阶段产出文档的评审、多方同步、会议纪要、评审报告等等
具体实施阶段还包括各方排期、进度跟踪反馈、问题上报、变更调整、版本窗口期等等

软件开发方式:

  1. 瀑布模型
  2. 迭代式开发
  3. 螺旋开发
  4. 敏捷开发模式
  5. DevOps模式

真是的工作中基本不存在单一的软件开发方式,更多的是“混合”开发模式,这里“混合”的意思是混合多种开发模式

在产品生命周期的各个阶段有哪些人员需要介入、同步进行、依赖输入和最终产出等等,是需要方法论指导的,而不是乱打一气。

好处:

  • 有记录
  • 有产出
  • 有计划
  • 可回溯
  • 可量化
  • 易交接
  • 易把控

好处多多

# 文档存放

  • Confluence

# 项目框架模板

前端细分领域很多,对于公司而言,新产品的快速落地至关重要,对技术人员来说就需要准备一套前后端产品开发框架

  1. 小程序
  2. Web端
  3. H5端
  4. 移动端原生
  5. 微前端
  6. SSR
  7. Node
  8. 大屏、可视化

不同产品的技术框架可以自研,也可以在GitHub上寻找模板二次开发之后用作自己的框架模板

总之,就是为了可以快速的开发业务功能,而不用花太多时间在基础框架开发上面(正常来说这属于架构组的工作,对于这个职位的划分,存在肯定是有一定的道理的,毕竟每家公司情况都不太一样。我有自己的看法,不展开说了,技术是服务于业务的)

# 公共库

  • 前端UI组件
  • 前后端中间件
  • 前后端依赖插件
  • 网络安全验证插件(组件签名)
  • .......

# 开发

基础框架搭建:

  • 面向对象封装
  • 业务框架自上而下、自下而上组件设计
  • 可扩展、可维护、可配置化架构
  • 打包分析优化
  • 错误补偿、捕获机制

规范:

  • 设计大于开发(设计模式)
  • Hooks
  • 函数式编程
  • Utils
  • Lint 代码检测
  • commit-msg规范
  • css BEM命名规范
  • 组件化
  • 更多参考业内顶流开源项目编码方式
  • 前后端配合开发

# 性能优化

很多人都讲性能优化,从加载时、运行时两方面分析优化。维度这个东西直接影响着方向,有一个好的划分维度既不会遗漏,也很有条例,可见维度至关重要
performance真是个好东西,包涵重定向、DNS解析到页面加载完成、卸载各阶段的市场统计,逐个分析优化,优化效果时长也立即可以看到,工作成果报告也很直观。我推荐从performance入手分析优化,具体指标不展开说了。

# DevOps

持续构建(CI)、持续集成(CD)

  • gitlab\github\gitee\coding...
  • Jenkins
  • Nginx
  • Sonar
  • Docker
  • JForg\Docker hub(镜像仓库、制品库)
  • 容器云平台(集群部署)
  • Service Mesh(微服务)
  • 制品晋级
  • 自动化部署
  • 灰度发布、蓝绿部署

# 技术型公司

  • 自研ui库
  • 自研产品架构(小程序)
  • Web3
  • DevOps
  • 各平台插件开发
  • 云原生
  • 音视频
  • 3D建模
  • 游戏引擎
  • 元宇宙
  • 物联网
  • 10G
  • 黑科技......

# 网络通信相关

  • 业务区
  • 渠道区
  • 开发网
  • 办公网
  • 网关
  • 软硬负载
  • 网络策略

# 测试、生产环境

  • SIT
  • UAT8
  • UAT6
  • 安全测试
  • 性能测试
  • 同城
  • 灾备
  • 异地(终极方案:异地多中心,烧钱烧的厉害!)

# 基础应用服务平台建设

  • 文件传输平台
  • 影响平台
  • 统一身份认证平台、SSO(向上分层)
  • API治理平台
  • ServiceMesh平台
  • 报表平台
  • 日志平台
  • 消峰平台
  • 分布式缓存、消息队列
  • 消息中心
  • 加密平台
  • ......

# 团队建设

  • 定期组织分享学习
  • 建设团队号、技术推广(打造影响力,也让分享人员获得荣誉感、成就感)
  • 评比、奖品激励
  • 工作之余一块搞事情(开发、团建)
  • 和谐,包容,相互学习

# 还有

数据埋点统计、异常监控、低代码(个人不看好低代码,架构做的好要什么低代码)

# 最后

发现写着写着变成技术条线建设了,很难拆分开,果然基建、团队、公司建设是分不开的。
什么是真正有价值的东西?我不知道,任何行业要想称为高级玩家,就必须摸清本质,慢慢捋顺。
“互联网公司”只是互联网技术时代过渡性的叫法,以后所有公司都会被互联网技术加持。互联网的核心价值在于跨时间、跨地域、跨平台、跨终端的资源的高效、合理、共享分配,听起来真是一个让人向往的地方。