我的项目管理生涯
1 前言
从好几年前就想写几篇关于自己职业生涯的文章了,一直由于各种原因没有写成,正好借新的工作机会,尤其是项目管理这段工作经历,计划通过这一二篇文章进行总结和反思一下,以期更顺利的开展相关工作或是自己能更上一层楼。
2 主要经历
从2012年年中开始,我由Java架构师转做项目经理。当时转型原因也是因为看了不少“程序人生”的文章,了解了大家现在所熟知的35岁现象,借着一个机会就转做项目经理了。从12年7、8月份开始做企业的相关项目,一直做到了14年。现在回想起来当时做项目经理最大的感受是心累,作为项目经理各方面都得操心,不像做程序员时,写好自己那部分的程序代码就可以了。作为项目经理,你相当于是公司派出去的代表,你要对项目团队最后的结果负责,你要利用有限的人力、物力、时间内给公司和甲方有一个基本满意的交待。最后还好,凭借着自己技术功底和理论的项目管理经验,算是合格过关了。
时间来到了15年,公司开始进行组织机构改革,要变成强矩阵式的管理。凭着前2年的项目经历和公司领导的认可,我顺利当上了PMO部门经理。挑战又进一步加大了。整整一年多的时间,我坚持了下来,以至于后续的2年时间,我感觉无比的轻松。记得高峰时间我当时管理了接近20个项目经理,60多个项目在并行。我们制定了一系列的项目管理制度,印象比较深的有项目工时估算、项目激励与考核还有各种项目文档模板。16年和17年我们成立了业务事业部,我负责其中的一个业务部。工作也由前几年项目工作再往前进了一步,做了一些市场和销售支持的工作。
时间来到了18年,由于公司业绩对赌没有完成,公司又进行了一系列的调整。我先后做了研发管理和项目管理的相关工作直到最后公司解散。2021年3月,我离开了工作14年的公司,通过猎头顺利进入到了另一家大型软件公司,也终于去感受到大型软件公司的工作氛围,在23年年初,由于一些机缘巧合我跳槽到一家创业公司去做了公司的合伙人,主要是负责企业的产品研发和实施工作。
3 感悟和收获
3.1 关于打工和事业
在一家公司内,只要你不是公司的实际控制人,职位做到再高,你也只是打工人,这份工作不是你自己的事业。换句话说,你要随时做好走人的准备。因为天有不测风云时常发生,尤其在这个经济环境下。所以上了年纪的人(这里可以是35岁或者40岁或更大)一定要有危机意识,离开了公司,一定要有自己能干的事。当然财务自由的人除外。
3.2 关于项目管理证书
建议做IT行业的同志,无论你做哪一个岗位,有了三五年的工作经验后,一定要考取一个项目管理证书。建议考一下软考的“信息系统项目管理师”证书和PMP证书。其中取得“信息系统项目管理师”证书的人员可以申请评聘为高级工程师职务,PMP证书有些单位招聘项目经理时,有此证书的可以优先录用。当然,大家也可以像我一样,先拿到软考的“系统集成项目管理师”,再拿“信息系统项目管理师”,最后拿 PMP证书。怎么才能拿到证书,我认为最快的方式是参加培训,因为培训老师已把项目管理知识体系已给我们梳理的非常清楚了,只要按照老师的方法去实践,拿到证书是没有问题的。
3.3 关于项目管理知识
学习和实践了这么多年项目管理,给我印象最深的还是范围、时间、成本、质量的项目管理三角形,如下图所示:
一、范围:范围是项目管理的核心,项目管理一定要从这个项目的业务核心目标出发,要能识别出业务的核心目标,并且超预期的满足它,项目基本上就成功了一半。
二、时间、成本、质量都是项目成功重要约束条件,一个成功的项目在进度、成本和质量上都应该基本符合项目的要求。
三、项目范围如果扩大或缩小,就直接影响了时间、成本和质量的大小(长短、高低、好差)。在范围不变的情况下,时间、成本和质量之前也是相互影响的,他们之间一定要形成一个三角形的。
另外5个过程组和9个知识领域,也得需要基本清楚,基本上只要记住大块的内容就可以了,以下内容大家可以参考一下:
知识领域 | 项目管理过程组 | ||||
启动过程组 | 规划过程组 | 执行过程组 | 监控过程组 | 收尾过程组 | |
整合管理 | 制定项目章程 | 制定项目管理计划 | 指导与管理项目执行 | 监控项目工作 | 结束项目或阶段 |
实施整体变更控制 | |||||
范围管理 | 收集需求 | 核实范围 | |||
定义范围 | 控制范围 | ||||
创建工作分解结构 | |||||
时间管理 | 定义活动 | 控制进度 | |||
排列活动顺序 | |||||
估算活动资源 | |||||
估算活动持续时间 | |||||
制定进度计划 | |||||
成本管理 | 估算成本 | 控制成本 | |||
制定预算 | |||||
质量管理 | 规划质量 | 实施质量保证 | 实施质量控制 | ||
人力资源管理 | 制定人力资源计划 | 组建项目团队 | |||
建设项目团队 | |||||
管理项目团队 | |||||
项目沟通管理 | 识别干系人 | 规划沟通 | 发布信息 | 报告绩效 | |
管理干系人期望 | |||||
项目风险管理 | 规划风险管理 | 监控风险 | |||
识别风险 | |||||
实施定性风险分析 | |||||
实施定量风险分析 | |||||
规划风险应对 | |||||
项目采购管理 | 规划采购 | 实施采购 | 管理采购 | 结束采购 |
3.4 关于管理
做了这么多年的项目管理和部门管理,我认为最重要的沟通方面是最重要的,也是最最基础的。我也接触了不少讲沟通的一些理论模型,我认为还是以下这个模型,是我印象最为深刻的,今天翻出来,重新温习一下。
沟通要做到人和事并重,才能达到最好的效果,尤其和同级或下级的沟通更是如此。关于沟通和管理方面的技能培训,推荐大家可参加“DDI英跃”学习,一定会让你受益匪浅的。
和上级的沟通,是最重要的。首先沟通的对象一直要搞清楚,如下面的场景:在一个部门里,有部门的老大,老二,你作为老二管辖下的这个部门的组长,这种场景下千万别以为你只需要和老二沟通好就可以了,尤其在部门的老大和老二看起来不是那么和谐的情况下,因为决定你生死的一般情况下只有老大说了算。其次,老大肯定是很忙的,你要定期的和你的上级(这种情况一定是老大本人)进行沟通,让他能够理解和支持你的工作。
3.5 关于项目和产品
做项目时间长了再转型做产品的确是需要花些时间的,最近这两年一直做B端的产品,感受还是很明显的。
一、做项目时,你只需要面对一个客户就行,而做产品你需面对整个行业和许多客户,这就要求你必须得是个业务行家才行,否则你容易走向偏道,光是需求你就搞不清楚该不该做。如何判定需求该不该做,比较实用的办法就是这个需求是不是至少3个客户都提了,如果都提了,可能就是一个非个性化需求。
二、项目的需求在一定程度上范围是明确的,而产品的需求及优先级需要产品经理通过对行业和产品业务目标的理解,进行明确。随着客户的催促,产品经理一不小心就跳进了过度研发的泥潭。
3.6 关于职业生涯
做IT的尤其是写代码,肯定得需要做职业发展规划的。35或40岁了还在以写代码为主,在我们国内肯定是不行的,要更早的转向其它岗位,如技术管理岗、项目管理岗等。我个人的职业岗位路径程序员、架构师、项目经理、部门经理、其它管理岗位。
3.7 关于赚钱
君子爱财,取之有道。无论是打工、还是创业一定要走正道赚钱。因为我亲眼目睹了曾经的老板,由于公司经营的不合规,导致最后自己在晚年不保的事实,给我的冲击还是很大的。
4 最后
以上的观点,是本人的一些想法和体会而已,不见得一定对,欢迎大家进行交流,相互学习,共同进步。
相关文章:

我的项目管理生涯
1 前言 从好几年前就想写几篇关于自己职业生涯的文章了,一直由于各种原因没有写成,正好借新的工作机会,尤其是项目管理这段工作经历,计划通过这一二篇文章进行总结和反思一下,以期更顺利的开展相关工作或是自己能更上…...

ChatGPT Canvas:交互式对话编辑器
自两年前 ChatGPT 发布以来,主流 AI 均以对话形式进行交互。传统的对话式界面可以直观看到反馈结果,但在需要深度编辑和协作的项目中就略显局限。为了解决此问题,几个月前 Claude 就发布过 Artifacts 功能,用来拓展原有对话。而现…...

[Linux] Linux 的进程如何调度——Linux的 O(1)进程调度算法
标题:[Linux] Linux 的进程如何调度——优先级与进程调度 个人主页水墨不写bug 目录 一、前言 二、将要出现的概念 1.进程调度队列 2.位图 3.进程的优先级 三、Linux进程的调度过程 1.活动队列(*active指向的队列) 2.过期队列&#…...

Python使用Selenium动态爬取CSDN社区帖子的URL链接
前几天读了一篇CSDN社区的帖子,发现文章内容写得极好,值得借鉴学习。于是我想将那个社区的帖子都爬下来,但是那个社区发布的贴子挺多的,一直往下拉才到2022年5月的发布。于是我就只将5月份之前的爬下来就行,但是帖子是…...

【ShuQiHere】双系统指南:如何在 Linux 系统情况下安装 Windows 11,处理引导与网络问题 ️
【ShuQiHere】 🖥️💡 在安装 Windows 11 和 Linux 双系统时,常常会遇到各种棘手的问题,特别是在网络连接、BIOS 设置和引导修复方面。今天我将详细带你解决这些问题,让你顺利完成 Windows 11 安装,并恢复…...

jQuery EasyUI 扩展
jQuery EasyUI 扩展 引言 jQuery EasyUI 是一个流行的 HTML5 框架,用于构建交互式网页界面。它提供了一系列的 UI 组件,如布局、窗口、数据网格等,使得网页开发变得更加简单快捷。然而,尽管 EasyUI 功能丰富,但在某些特定场景下,开发者可能需要更多的定制化功能或组件。…...

408算法题leetcode--第24天
#378. 有序矩阵中第 K 小的元素 378. 有序矩阵中第 K 小的元素思路:值二分,如注释时间:O(log(r-l) * n);空间:O(1) class Solution { public:int check(vector<vector<int>>& matrix, int target){/…...

【CKA】二、节点管理-设置节点不可用
2、节点管理-设置节点不可用 1. 考题内容: 2. 答题思路: 先设置节点不可用,然后驱逐节点上的pod 这道题就两条命令,直接背熟就行。 也可以查看帮助 kubectl cordon -h kubectl drain -h 参数详情: –delete-empty…...

STM32中断编程指南:NVIC和中断优先级
在STM32微控制器编程中,中断是实现多任务处理和实时响应的关键技术。NVIC(Nested Vectored Interrupt Controller)是STM32中的中断控制器,负责管理中断请求、优先级和中断向量。本文将详细介绍STM32的NVIC配置和中断优先级设置&am…...

ThreadLocal底层原理及数据结构详解
ThreadLocal允许为每个线程创建独立的变量副本,使得同一个ThreadLocal对象在不同的线程中拥有不同的值。它的主要作用是在并发环境下提供线程隔离,避免多个线程共享同一个变量,从而减少线程间的相互干扰。 ThreadLocal的核心在于为每个线程维…...

Android Framework AMS(02)AMS启动及相关初始化5-8
该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:本章节主要涉及systemserver启动AMS及初始化AMS相关操作。同时由于该部分内容过多,因此拆成2个章节,本章节是第二章节&…...

速盾:游戏被攻击怎么办?
随着游戏行业的发展,游戏被攻击的情况也越来越多见。游戏被攻击可能导致游戏服务器崩溃、用户数据泄露、游戏体验受影响等问题。作为游戏开发者或运营商,面对游戏被攻击的情况,应该采取一系列的措施来应对。 首先,要及时发现游戏…...

BUU刷题-Pwn-shanghai2018_baby_arm(ARM_ROP_csu_init,ARM架构入门)
解题思路: 泄露或修改内存数据: 堆地址:无需栈地址:无需libc地址:无需BSS段地址:无需 劫持程序执行流程:ARM_ROP && mprotect函数(运行内存权限修改) && [[ARM_ROP_csu_init]…...

flutter_鸿蒙next(win)环境搭建
第一步 拉取鸿蒙版本flutterSDK仓库 仓库地址:OpenHarmony-SIG/flutter_flutter 第二步 找到拉取的仓库中的README.md 并根据说明配置环境 第三步 配置好环境变量之后 用管理员开启cmd 输入:flutter dcotor 并查看此时flutter所支持的系统 包括&…...

腾讯一面-LRU缓存
为了设计一个满足LRU(最近最少使用)缓存约束的数据结构,我们可以使用哈希表(HashMap)来存储键值对,以便在O(1)时间复杂度内访问任意键。同时,我们还需要一个双向链表(Doubly Linked …...

k8s实战-1
k8s实战-1 一、资源创建方式1.命令行2.yaml 二、命名空间三、Pod总结 一、资源创建方式 1.命令行 就是直接通过命令的方式创建,比如我要创建namespace, kubectl create namespace hello删除: kubectl delete -f hello2.yaml 简单来说&am…...

Python进程池:提升你的并发性能
引言 在现代编程中,多核处理器的普及使得并发编程变得尤为重要。Python,作为一种广泛使用的编程语言,提供了多种并发和并行编程的工具。其中,multiprocessing库中的进程池(Pool)是一个强大的工具ÿ…...

内存占用估算方法
优质博文:IT-BLOG-CN 通过掌握每种数据类型的大小,就可以更准确地预测对象和数据的内存消耗。 一、基础数据类型 Java基础数据类型结构,在64位系统开启指针压缩情况下的内存占用字节数: booleanbytecharshortintlongfloatdoub…...

拓扑排序简介
拓扑排序(Topological Sort)是一种重要的图算法,用于对有向无环图(DAG, Directed Acyclic Graph)中的节点进行排序。拓扑排序的结果是一种线性序列,使得对于图中的任意一条有向边(u, v),顶点u都在顶点v之前。这种排序常用于任务调度、编译器依赖关系分析等领域。 拓…...

使用iTextPDF库时,设置文字为中文格式
在使用iTextPDF库时,设置文字为中文格式主要涉及选择合适的中文字体,并确保该字体能够正确渲染中文字符。由于iTextPDF的内置字体通常不支持中文,因此你需要加载一个支持中文的字体文件(如TrueType字体,.ttf文件&#…...

Windows环境下使用Docker配置MySQL数据库
用Docker配置数据库,无论是做开发,还是做生产部署,都非常的方便 它不需要单独安装数据库,也不用担心出现各种环境的配置问题。 本文将分享用Docker配置数据库的步骤,这里用MySQL举例。 其他的数据库如MSSQL…...

快速上手C语言【上】(非常详细!!!)
目录 1. 基本数据类型 2. 变量 2.1 定义格式 和 命名规范 2.2 格式化输入和输出(scanf 和 printf) 编辑 2.3 作用域和生命周期 3. 常量 4. 字符串转义字符注释 5. 操作符 5.1 双目操作符 5.1.1 算数操作符 5.1.2 移位操作符 5.1.3 位操作符…...

[深度学习][python]yolov11+deepsort+pyqt5实现目标追踪
【算法介绍】 YOLOv11、DeepSORT和PyQt5的组合为实现高效目标追踪提供了一个强大的解决方案。 YOLOv11是YOLO系列的最新版本,它在保持高检测速度的同时,通过改进网络结构、优化损失函数等方式,提高了检测精度,能够同时处理多个尺…...
【CSDN入门级教程】
这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…...

二叉搜索树 (BST) 节点插入、查找、删除、获取最大值、最小值和中序遍历排序等功能
二叉搜索树 (BST) 实现总结 本程序实现了一个简单的二叉搜索树 (BST),支持节点插入、查找、删除、获取最大值、最小值和中序遍历排序等功能。以下是各部分的详细说明。 数据结构 节点定义 struct BinTreeNode {int data; // 节点存储的数…...

unity ps 2d animation 蛇的制作
一、PS的使用 1.打开PS 利用钢笔工具从下往上勾勒填充 2.复制图层,Ctrl T,w调为-100% 3.对齐图层并继续用钢笔工具进行三角勾勒 3.画眼睛,按U快捷键打开椭圆工具,按住Shift可以画圆,填充并复制图层对称。 4.画笔工具,打开小…...

39 C 语言枚举类型、枚举常量、枚举变量、枚举的遍历、枚举数组、枚举与 switch
目录 1 什么是枚举 2 定义枚举类型 2.1 语法格式 2.2 枚举元素的特点 2.3 案例演示 3 枚举变量 3.1 什么是枚举变量 3.2 定义枚举变量的多种方式 3.3 案例演示 1:标准版枚举类型 3.4 案例演示 2:简化版枚举类型 3.5 案例演示 3:匿…...

LabVIEW程序怎么解决 Bug?
在LabVIEW开发过程中,发现和解决程序中的Bug是确保系统稳定运行的关键环节。由于LabVIEW采用图形化编程方式,Bug的排查和处理与传统编程语言略有不同。以下是解决LabVIEW程序中Bug的常见方法和技巧,涵盖从问题发现到解决的多个步骤和角度&…...

AR智能眼镜之战:Meta vs Snap
随着增强现实(AR)技术的发展,各大科技公司都在争夺下一代计算平台的领先地位。Meta(前身为Facebook)和Snap作为其中的两个重要玩家,正在竞相开发能够提供沉浸式体验的AR智能眼镜。在这篇文章中,我们将深入探讨这两家公司可能采用的显示技术和用户体验,并分析它们各自的…...

Spring Boot 集成 Flowable UI 实现请假流程 Demo
博客主页: 南来_北往 系列专栏:Spring Boot实战 在现代企业应用中,工作流管理是一个至关重要的部分。通过使用Spring Boot和Flowable,可以方便地构建和管理工作流。本文将详细介绍如何在Spring Boot项目中集成Flowable UI,…...