我的项目管理生涯
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文件&#…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...