当前位置: 首页 > news >正文

软件研发管理经验总结 - 技术管理

软件研发管理经验总结 - 技术管理

  • 技术管理主要负责有技术团队建设、管理团队成员技术相关事务、帮助团队成员成长、负责团队成员交付的代码质量、以及负责产品技术方向、以及产品相关前沿技术调研;
  • 管理团队成员技术相关事务有代码Review、故障率跟踪、分析及根据分析结论指导开发人员改进技术能力、常规问题解答、疑难问题攻关…
    总之技术管理者的工作重点就是以技术为中心展开

相关系列文章
软件产品研发管理经验总结-管理细分
软件研发管理经验总结 - 事务管理
软件研发管理经验总结 - 技术管理

在这里插入图片描述

目录

  • 软件研发管理经验总结 - 技术管理
  • 一、建立完整的产品开发过程
    • 1、需求分析
    • 2、概要设计
    • 3、详细设计
    • 4、编码制造
    • 5、测试
  • 二、建立完整的质量管理体系
    • 1、基于产品开发过程建立质量管理
      • 1)、需求分析质量管理
      • 2)、概要设计质量管理
      • 3)、详细设计质量管理
      • 4)、编码制造质量管理
      • 5)、测试质量管理
  • 三、产品相关技术
  • 四、团队成员技术能力管理
    • 1、建立团队能力进升机制
    • 2、尽可能的量化指标
  • 五、行业技术前沿

一、建立完整的产品开发过程

以下过程并非CMM系统标准过程,而是根据我们公司自身产品研发出发,目的是在有限的条件下,提升产品质量,使产品研发周期可控、产品质量可控、产品可维护,不断的提升团队整体技术能力,软件研发规范性…

1、需求分析

此过程由需求分析人员负责将用户的需求进行收集、理解、分析后,形成需求分析文档,然后再与用户确认,需求是否正确、缺失、多余的部分。
如果用户确认后会根据需求分析的成果对功能点进行拆分,颗粒度一般到页面的级别或功能级别,具体以技术人员能理解、控制得了的最小颗粒度为参照即可;

2、概要设计

经过需求分析过程后,将一个复杂系统按功能进行模块拆分; 概要设计的主要任务是把需求分析得到的DFD1 (数据流图) 转换为软件结构和数据结构,进行功能和体系结构分析设计。

3、详细设计

详细设计主要是对模块的各子功能设计程序的输入参数、程序的处理流程、输出值,包括采用的算法、计算方法、计算步骤;在模块中需要定义的接口…。

4、编码制造

根据设计文档、代码编写规范…要求编写代码、单体测试…

编码规范如果团队没有统一的规范可以参照谷歌、阿里、腾讯发布的相应规范进行一定的调整即可。

5、测试

※ 说明:

  • 如果产品开发过程采用了CMM系列标准过程的可以跳过此节。
  • 如果产品开发过程未采用CMM系列标准过程的,开发过程需从各自企业、团队、产品自身出发来确定自己所需要的过程,不用每个过程都要做。

二、建立完整的质量管理体系

1、基于产品开发过程建立质量管理

1)、需求分析质量管理

此过程主要的质量管理方法是人工【评审】,针对需求分析的成果物进行评审,或全程参与到与用户沟通与确认过程中,确保需求的准确性、完整性。

2)、概要设计质量管理

此过程主要的质量管理方法是人工【评审】,主要评审的内容是设计文档,评审内容

序号评审内容说明
1文档变更记录变更记录中要体现现变更者、变更日期、变更的章节、变更内容
2规范性概要设计是否与符合规范(此处的规范是公司内部制订的概要设计规范)
3设计内容概要设计是否与需求分析中的功能一致、是否准确

3)、详细设计质量管理

此过程主要的质量管理方法是人工【评审】,主要评审的内容是设计文档,评审内容

序号评审内容说明
1文档变更记录变更记录中要体现现变更者、变更日期、变更的章节、变更内容
2规范性详细设计是否与符合规范(此处的规范是公司内部制订的详细设计规范)
3设计内容详细设计是否与概要设计中的一致、是否准确

4)、编码制造质量管理

此过程主要的质量管理方法是,当开发人员编码完成后,首先需要自测,可以采用【单元测试】、【覆盖率测试】,并验证业务功能; 自测完成后就可以向上级负责人提交【评审申请单】,批准通过后会根据模块的复杂程序安排小范围的评审、正式的多人参与的评审会议,在评审过程中开发人员记录被评审出的问题,评审过程完成后,需要将评审出的问题、原因及修改方案以正式的评审记录文档提交,并在审核通过后归档;

从管理的角度还需要记录开发代码量、评审时长、故障率等数据来做分析,将分析结果反馈给开发人员,并引导开发人员提升改善自身的不足。

下图故障跟踪记录表仅供参考:
故障率跟踪表

5)、测试质量管理

此过程主要的质量管理方法是人工【评审】,评审测试用例。

三、产品相关技术

定期组织团队成员分享产品使用的技术、框架、原理…,遇到的技术问题以及分析解决过程,经过长期反复的磨炼后,团队成员的思想、能力逐渐一致了,团队凝聚力、能力会越来越强。

四、团队成员技术能力管理

1、建立团队能力进升机制

按技术力能划分出几个级别,每个级别需要具备的技术能力,腾讯、阿里也采用类似的方式将技术人员划分为P1到Pn级别,这样技术人员有明确的发展方向和规划。

2、尽可能的量化指标

将团队用到的所有技术、能力、态度、极积性等很多无法准确的判断的信息通过尽可能的去量化,将感性判断的范围尽可能的缩小。

  • 例如,我们在面试Java技术人员时,可能很多时候面试完只能给人力资源一个行或不行的结论,人力资源也比较懵,不知道如何调整找人的方向。面试者心里有个感性的判断,无法明确的表达;
  • 这时我们可以按照技术要求,将需要面试的技术项进行细化,并给其一个百分占比,所以有项加起来100分,下图为参考图
    在这里插入图片描述
  • 这样做的话,面试者每面试完一个技术小项后可以给这个小项一个印象分,每个小项满分100分,但是每个小项的得分=印象分*(百分占比),例如上图中【集合】这个技术小项占比为%5,当面试完“张三”后,面试者对于“张三”【集合】这个技术小项给出的印象分为30分,则“张三”在【集合】这个技术小项的得分=30*%5 = 1.5,这样就可以将感性影响的范围限制在较小范围内 。

五、行业技术前沿

  • 定期分享行业前沿技术资源,与团队成员进行讨论相关的技术内容;
  • 鼓励团队成员极积和探索前沿技术、最新的技术,不断开横向扩展技术面,纵向的加深技术能力;

  1. 数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 ↩︎

相关文章:

软件研发管理经验总结 - 技术管理

软件研发管理经验总结 - 技术管理 技术管理主要负责有技术团队建设、管理团队成员技术相关事务、帮助团队成员成长、负责团队成员交付的代码质量、以及负责产品技术方向、以及产品相关前沿技术调研;管理团队成员技术相关事务有代码Review、故障率跟踪、分析及根据分…...

项目实战典型案例19——临时解决方案和最终解决方案

临时解决方案和最终解决方案一:背景介绍二:思路&方案四:总结五:升华一:背景介绍 本篇博客是对项目开发中出现的临时解决方案和最终解决方案进行的总结和改进。目的是将经历转变为自己的经验。通过博客的方式分享给…...

机器学习模型的可解释性算法汇总!

模型可解释性汇总简 介目前很多机器学习模型可以做出非常好的预测,但是它们并不能很好地解释他们是如何进行预测的,很多数据科学家都很难知晓为什么该算法会得到这样的预测结果。这是非常致命的,因为如果我们无法知道某个算法是如何进行预测&…...

什么是着色器/Threejs如何使用着色器/Threejs使用着色器实现平面网格的动态效果案例

1,什么是着色器着色器(Shader)是计算机图形学中的一个重要概念,它是在 GPU 上运行的程序,用于计算三维场景中每个像素的颜色和其他属性。着色器通常分为两种类型:顶点着色器和片元着色器。顶点着色器主要用…...

191、【动态规划】AcWing ——AcWing 900. 整数划分:完全背包解法+加减1解法(C++版本)

题目描述 参考文章:900. 整数划分 解题思路 因为本题中规定了数字从大到小,其实也就是不论是1 2 1 4,还是2 1 1 4,都会被看作是2 1 1 4这一种情况,因此本题是在遍历中不考虑结果顺序。 背包问题中只需考虑…...

Java 比较器

public interface Comparable Comparable 接口位于 java.lang 包下,对实现它的每个类的对象强加一个总排序,这种排序被称为类的自然顺序,compareTo 方法被称为其自然比较方法。 实现此接口的对象的列表(和数组)可以由…...

配置本地 python GEE、geemap环境

1.安装anconda 百度搜索anconda清华镜像,从清华镜像中选择最新的anconda安装包,国内镜像网站下载速度较快,如果从国外官网下载速度相当慢,详细安装教程请参考: anconda安装教程https://blog.csdn.net/lwbCUMT/article…...

cmd命令教程

小提示: 在本文中,我将向您展示可以在 Windows 命令行上使用的 40 个命令 温馨提示:在本教程中学习使用适用于 Windows 10 和 CMD 网络命令的最常见基本 CMD 命令及其语法和示例 文章目录为什么命令提示符有用一、cmd是什么?如何在…...

深圳大学计软《面向对象的程序设计》实验15 函数模板和类模板

A. 有界数组模板类(类模板) 题目描述 编写有界数组模板BoundArray(即检查对数组元素下标引用并在下标越界时终止程序的执行),能够存储各种类型的数据。要求实现对数组进行排序的方法sort,及对数组进行查找…...

组播详解及示例代码

写在前面 由于公司业务需要用到组播实现,这里就记录下学习过程。在学习组播之前,我们先来看看另外两种数据包传输方式:单播和广播。 单播:简单来说就是数据一对一发送,如果需要给多个主机发送数据时,就需…...

C语言-qsort函数示例解析

一.qsort函数是什么stdlib.h头文件下的函数qsort()函数:是八大排序算法中的快速排序,能够排序任意数据类型的数组其中包括整形,浮点型,字符串甚至还有自定义的结构体类型。qsort函数实现对不同元素的排序主要就是通过对compar函数…...

一些Linux内核内存性能调优笔记!

前言 在工作生活中,我们时常会遇到一些性能问题:比如手机用久了,在滑动窗口或点击 APP 时会出现页面反应慢、卡顿等情况;比如运行在某台服务器上进程的某些性能指标(影响用户体验的 PCT99 指标等)不达预期…...

【JVM】逃逸分析

开发者都知道,基本上所有对象都是在堆上创建。但是,这里还是没有把话说绝对哈,指的是基本上所有。昨天一位朋友在聊天中,就说了所有对象都在堆中创建,然后被朋友一阵的嘲笑。 开始我们的正文,我们今天来聊聊…...

C51---震动传感器控制LED灯亮灭

1.example #include "reg52.h" sbit led1 P3^7;//原理图中led1指向P3组IO口的P3.7口 sbit vibrate P3^3;//Do接到了P3.3口 void Delay3000ms() //11.0592MHz { unsigned char i, j, k; //_nop_(); i 22; j 3; k 227; do { …...

使用 JaCoCo 生成测试覆盖率报告

0、为什么要生成测试覆盖率报告 在我们实际的工作中,当完成程序的开发后,需要提交给测试人员进行测试,经过测试人员测试后,代码才能上线到生产环境。 有个问题是:怎么能证明程序得到了充分的测试,程序中所…...

windows下neo4j安装及配置,并绘制人物关系图谱

neo4j安装及配置,绘制人物关系图谱 先升级pip,安装py2neo pip install py2neo2021.0.1依赖 jdk1.8, neo4j 3.xx; 或者jdk18,neo4j 4.x,5.x; 官网下载了neo4j4.x,5.x 因为jdk版本原因都不行&am…...

【Spring6】IoC容器之基于XML管理Bean

3、容器:IoC IoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。 Spring 通过 IoC 容…...

Warshall算法求传递闭包及Python编程的实现

弗洛伊德算法-Floyd(Floyd-Warshall)-求多源最短路径,求传递闭包 Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法, 与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大…...

AcWing第 93 场周赛

4867. 整除数 给定两个整数 n,k,请你找到大于 n 且能被 k 整除的最小整数 x。 输入格式 共一行,包含两个整数 n,k。 输出格式 输出大于 n 且能被 k 整除的最小整数 x。 数据范围 前 4 个测试点满足 1≤n,k≤100。 所有测试点满足 1≤n,k≤109。 …...

计及需求响应的粒子群算法求解风能、光伏、柴油机、储能容量优化配置(Matlab代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...