我的项目管理生涯
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文件&#…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
