工程能力提升管理之道

工程能力提升管理之道
www.zeeklog.com  - 工程能力提升管理之道

在架构设计上不同层次的架构师在架构抽象上总会有不同的见解,和高P架构师讨论架构往往能上升到哲学层次,什么分久必合 合久必分,什么无法 有法,什么道,法,术,器。

在工程能力提升上不同团队也有不同章法,总之那些过分依赖流程,妄图通过复杂流程降低工程问题的做法我个人都是不认可的,因为繁杂冗余的流程离真正的问题核心远得很,根本解决不了问题。

而且想让一堆离一线开发很久不熟悉工程现状的层级管理者通过审批去发现代码,sql,工程上的问题,你觉得靠谱吗?

在工程能力建设上可以围绕人、技、法、数据方面建设。

第一部分是人的方面,工程能力提升的根本在于人(工程师)本身的工程素养提升。即使有好的流程、方法和开发工具,如果开发者本身的能力和工程素养不足,工程效率也会非常低。而且很多简单的事情,通过引入流程复杂化就完全不符合我们“复杂问题简单化”的做事原则和做事方法论。

为了提升工程师的工程素养和工程能力,在招聘时,一定招优秀的工程师。新人入职后,为他们提供工程师能力培养和文化建设的工作坊,比如FB就有理论与实操结合的“训练营”,使新人在短时间内了解公司内部工程开发的流程和规范,建立工程规范意识。除此之外,还有很多培养工程师文化的项目,比如 Hackathon等。

第二部分是技术,重点是工程工具平台。硅谷大厂注重开发了自己的 DevOps 工具和管理协同工具,并且把它们连接成为一个从需求管理工具到代码管理工具再到持续交付工具的完整研发工具链。使研发过程自动化,提高效率和质量。

这一部分才符合我们的做事方法论“简单问题标准化,标准问题自动化,工具化”。

但工程能力的保持与提升,只依赖于研发工具是不够的,如果每一个产品、每一个平台都要从零开始开发,或者为了服务于自身产品,而建造了许多功能重复的平台,那么公司整体的研发效能会受到很大影响。为了提高整体的工程效能,还需要做平台的建设与治理。

平台建设

包括平台复用和源码复用这两方面。

在平台复用方面,可以对几百个平台划分成若干类别,每个类别都成立一个 TOC 组织来负责规划这类平台未来的发展。

目的就是让这类平台可用性加强、复用度提高,让平台本身的能力增强,以便让每个业务方能够更快速地使用平台去搭建自己的业务,提高工程效能。

但平台复用会带来一个问题:

如果多数平台逐渐收敛成少数平台后,许多需求都会涌向这些平台,导致平台研发团队不能按时、高质量完成所有的需求,从而使研发效率下降。

那怎么在平台化的基础上去做更好的工程复用呢?

在平台化治理的过程中,平台是否能够达标,有一个考察点是它能不能实现内部开源。如果一个平台的代码可以被其他团队或社区使用,并且能够持续改进和更新,那么这个平台就是具有高复用性的。

管理法是指在项目管理和团队协作中,制定规则和流程以确保项目的顺利进行。虽然法不是技术或数据,但在工程能力提升的过程中也扮演着重要角色。

工程实践

可以建立一套完整的从需求到上线的各阶段优秀实践的集合,并对外发布。可以建立《工程能力白皮书》,详细介绍了每个研发阶段可能使用到的工程实践及具体的操作步骤。

研发团队可以按照这样的标准去实践开发,促进优秀工程实践更快速落地。

数据

人通过学习方法来使用工具,这会产生很多的数据。如何更好的使用这些数据帮助工程能力进一步提升呢?

通过统一的研发平台 — 效率云收集大量的研发数据。再将每个团队的工程能力或工程实践达到的程度可视化出来。以便团队看到工程能力的变化,进而自主改进工程实践,提升工程能力。 工程能力分数的换算也可以帮助研发团队更好地确定下个阶段的目标,这个分数包括项目管理能力、质量保证能力和持续部署能力,每个人根据自己的现状去设定工程能力改进的目标。这样整个公司优秀的工程实践的数量和工程能力都得到了很好的提升。

Read more

超快速,使用ChatGPT编写回归和分类算法

超快速,使用ChatGPT编写回归和分类算法

本文将使用一些 ChatGPT 提示,这些提示对于数据科学家在工作时非常重要。 微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩 以下是一些示例ChatGPT 提示的列表以及数据科学家的响应。 ChatGPT 提示 为决策树回归算法生成 python 代码。 下面是使用scikit-learn在 Python 中进行决策树回归的示例代码: import numpy as np import matplotlib.pyplot as plt from sklearn.tree import DecisionTreeRegressor # Generate random data rng = np.random.default_rng() x = 5 * rng.random(100) y = np.sin(x) + 0.

By Ne0inhk
力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

993.二叉树的堂兄弟节点 难度:简单 题目: 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true 。否则,返回 false。 示例: 示例 1: 输入:root = [1,2,3,4], x = 4, y = 3 输出:false

By Ne0inhk
1239.串联字符串的最大长度 关于字符串的回溯算法!

1239.串联字符串的最大长度 关于字符串的回溯算法!

题目: 给定一个字符串数组 arr,字符串 s 是将 arr 某一子序列字符串连接所得的字符串, 如果 s 中的每一个字符都只出现过一次,那么它就是一个可行解。 请返回所有可行解 s 中最长长度。 提示: 1 <= arr.length <= 16 1 <= arr[i].length <= 26 arr[i] 中只含有小写英文字母 示例: 示例 1: 输入:arr = ["un","iq","ue"] 输出:4 解释:所有可能的串联组合是

By Ne0inhk