FT 软件项目管理
FT 软件项目:
软件项目管理:
软件技术项目管理
项目的生命周期
项目组织机构形式
项目管理三要素
项目进度控制
项目进度控制是依据项目基准计划对项目进行监控,使项目能够按时完成。 当项目的实际进度滞后于计划进度时, 项目管理者应首先发现问题、分析问题根源并找出妥善的解决办法,采取纠正措施。
经常用到的进度计划的方法有:1. 关键路径法;2.关键链法;3.资源平衡;4.假设情景分析;5.利用时间提前量与滞后量;
最简单的: 项目的每一个工作任务和活动, 责任到人, 明确计划开始时间,计划完成时间, 活动启动的前置条件或依赖。 找出项目进度的关键路径,保证关键路径上的资源, 非关键路径上的资源机动调配。
以上是一个项目的活动网络图, 问项目关键路径是什么, 项目需要历时多少天。
工作项优先级管理
同样一件事情的重要性在不同背景的人眼里是不一样的, 而且,同样的事情在业务的不同发展阶段里, 重要性也会不一样。 但最好的优先级还是跟着业务走。
- 确定用户需求的优先级, 需要跟用户充分沟通, 优先保障用户核心需求。
- 通过投入产出比,还有人力, 确定优先级
- 不要追求技术上的完美设计。满足质量要求的情况下, 采用最简单、最快速、设计方案。技术方案上优先考虑功能, 其次考虑稳定性和准确性、适当地考虑扩展性和通用性。
重要但是不紧急的这个象限经过分解任务指定计划后, 又可以生成了一个新的四象限法则图。
项目风险管理
- 执行计划的风险: 项目规划时,合理评估工作量, 并考虑延期风险, 预留少量的时间buffer,但所有成员应努力按照项目基准计划行动,不使基准计划延期, 这样预留的时间才有意义。 否则就会进入不断延期的循环。
- 需求变更的风险: 需求增加时,应增加人力投入,或者增加项目交付时间。
- 突发事件,成员请假,团队解散,或者其他风险:很遗憾,这些对于技术管理者经常是无解的。
- 可能发生延期时的解决方案:
- 加班或加人。 很不幸,通常加班是最有效,最常见的手段。 临时加新人,短期内不能融入项目,还带来更多的学习和沟通的成本,甚至影响到原, 有人员的工作效率, 解决不了进度问题。
- 砍功能: 从项目目标中拆解出来的二级项目标, 应该确定优先级。 如果时间不够,资源不够, 延期优先级低的二级目标, 保障最主线的功能开发
- 求得谅解: 充分沟通,管理好需求方的预期, 但一定要保证满足需求方的核心需求。
项目管理模型
- 瀑布模型(源自传统项目):瀑布模型是最早出现的软件项目管理模型
- 优点:
- 可控:为项目提供了分阶段的检查点
- 简单:当一个阶段完成后, 只需要关注下一个阶段
- 可迭代扩展: 可以用于迭代开发模型, 每次迭代产生一个版本。 每次迭代经过质量和集成测试。
- 缺点:
- 贵: 各个阶段的划分固定, 阶段之间存在交付行为, 需要产生大量的文档, 增加了工作量和成本。而且后期测试阶段才能发现前面阶段的错误, 导致阶段之间交付的文档失效, 导致 "最有效的文档就是代码"
- 慢,由于开发是线性的,依次进行,只有进行到最后一个阶段才能看到效果, 项目风险比较大
- 不灵活, 不能适应用户需求的变化。 虽然变更需求在任何开发模型里都要付出较大的成本, 但对于瀑布模型而言变更需求的代价远远高于其他开发模型。
- 瀑布模型更适合需求变更不频繁, 整体项目时间压力不大, 可预测,计划强的的业务场景, 比如一些针对重资产厂商的软件开发, 硬件相关的软件开发。
- 优点:
- 敏捷开发方法, scrum会议。应用非常广泛的软件开发模型, 极大的提高了软件开发的工作效率, 成功的让软件项目组里的所有角色都忙个不停, 天天加班。 瀑布模型里QA忙的时候, RD闲着, RD忙着时候QA闲的情况不复存在。
- 我个人认为重要的几个原则(还没体会到的先不写, 例如“用story编写可测试的需求”, 我没有特别体会得到)
- 简单(简单的模型, 简单的设计,简单的工具)
- 拥抱变化
- 最小价值原型, 小增量
- 并行建模(对比,瀑布模型的串行工作模式)
- 把项目的可持续性发展作为第二个目标(第一目标是按时交付项目给用户)
- 公开展示模型。所有的设计文档用wiki管理, 全体成员可见
- 我个人认为重要的几个原则(还没体会到的先不写, 例如“用story编写可测试的需求”, 我没有特别体会得到)
- DEVOPS理论, 需要频繁交付的企业需要用到Devops, 例如互联网业务开发部门。用于促进, 开发、运营、和QA之间的紧密协作, 保障软件产品和服务的按时交付。
- 使用DEVOPS方法的组织采一般采用敏捷开发模型。
- 业务负责人要求加快软件交付的速率
- 使用DEVOPS方法的软件发布的风险应该很低。
- 关键是持续交付,持续集成、持续部署、持续运营
- 开发: 微服务, 容器化,
- 构建: 自动化构建工具
- 部署: 自动化部署, 回滚
- 测试: 自动化测试, 白名单测试, AB测试。
- 发布: 预发布,蓝绿发布,灰度发布
- 运营: 监控报警, 日志组件,高可用(异地双活,降级,切流,熔断), 性能,安全,服务发现
- 传统软件项目开发与互联网软件项目管理方法的异同
项目管理工具
JIRA, bugzila。 team concert。 project, excel。
我们用wiki和JIRA, 还有email管理。
工具越复杂,使用的成本就越高,运用到项目中的机率也越低。只要达到“有效组织项目信息”的目的就够了。小团队并不需要复杂的项目管理工具。
FT项目管理制度
- 项目启动会议(1~2小时, 全体组员参与)
- 每日站会(每天早晨,10~20分钟, 全体组员参与), 同步项目进展, 提出问题, 当天工作安排。
- 小组讨论(按需要,随时, 相关组员参与)
- 每周周会(每周五, 全体组员参与),一周工作总结, 规划下周计划和目标
- 项目演示会议(项目验收后, 全体组员,并邀请领导和业务方参加)
- 所有会议在wiki里都有纪要,有todo, 可track。
项目管理的具体流程
- 项目启动阶段: 一定要经过充分调研和讨论,明确项目的目的和目标,项目收益(使命愿景价值观)工具:mindmap,project,技术选型, 需求分析, 确定系统角色。
- 项目顶层设计和计划阶段: 资源计划,依赖条件, 可能遇到的问题和风险, 整体架构设计, 组件设计。概要设计, 确认模块woner, 任务划分。
- 项目模块设计和计划阶段: 确定各个模块的目的、外部接口, 完成内部设计, 详细设计。
- 项目开发阶段: 注意记录, 注意高效沟通, 站会安排日计划, 周会总结安排下周计划。 碰到问题立刻解决, 不拖延。
- RD联调测试阶段: 各个模块联调测试, 打通数据和调用链路
- QA测试验收阶段: FVT, SVT, GVT,
- 交付验收阶段: demo dry run。 交付业务方使用。
- 维护阶段: 支持业务方对接, 修bug。
FT 软件项目管理的更多相关文章
- [课程分享]IT软件项目管理(企业项目甘特如是评价、维护管理、文档管理、风险管理、人力资源管理)
[课程分享]IT件项目管理(企业项目甘特图案例评价.维护管理.文档管理.风险管理.人力资源管理) 对这个课程有兴趣的朋友能够加我的QQ2059055336和我联系 课程讲师:丁冬博士 课程分类:Jav ...
- Chapter 3 软件项目管理
软件项目具有产品的不可见性.项目的高度不确定性.软件过程的多变化性.软件人员的高流动性的显著特征.有效的软件项目管理集中于人员.产品.过程和项目四个方面.软件项目的生命周期有项目启动.项目规划.项目实 ...
- atitit.《金刚经》与it软件项目管理的启发 读后感attilax
atitit.<金刚经>与it软件项目管理的启发 读后感attilax 1.1. 经中宣称一切世间事物空幻不实,如梦幻泡如梦幻泡影,实相者则是非相.主 张 放弃对现实世间的执著或眷恋,以般 ...
- atitit. it软件项目管理---自己的员工,雇佣军、援军,混合的员工 杂牌 人员管理架构
atitit. it软件项目管理---自己的员工,雇佣军.援军,混合的员工 杂牌 人员管理架构 1. 企业的正规军,雇佣军,杂牌划分 1 1.1. 企业的员工基本是雇佣而来 1 1.2. 全职员工与兼 ...
- 软件项目管理 ——1.2.PMBOK与软件项目管理知识体系
软件项目管理 --1.2.PMBOK与软件项目管理知识体系 归档于软件项目管理初级学习路线 第一章 软件项目管理基本概念 <初级学习路线合集 > @ 目录 软件项目管理 --1.2.PMB ...
- 软件项目管理 7.5.项目进度模型(SPSP)
[公众号@ "项目管理研究所" 将会第一时间更新文章并分享<行业分析报告>] 归档于软件项目管理初级学习路线 第七章 软件项目进度计划 你猜猜里面是什么-->&l ...
- 软件项目管理:什么是baseline
只要是接触软件的人,都或多或少的需要接触一些软件相关的名词术语.其中baseline也许是大家听得最多,但是却是最模糊的概念. 其中百度百科给出的解释如下 基线(Baseline) 基线是软件文档或源 ...
- 【转载】Maven安装配置+ GIt&SVN + Jenkins详细配置 软件项目管理 持续集成实验
原文地址: https://www.cnblogs.com/clownice/p/5395933.html 以下是学习笔记: Jenkins是一款开源持续集成的软件,实现集成的自动化 自动构建工具:M ...
- C# 词频统计 东北师范大学 软件项目管理 第一次作业
一.作为杨老师的学生第一次听杨老师讲课,印象最深的就是:工程中所有步骤之间是乘法,如果任何一步为0,工程就做不出来了.以前所有老师讲到的都是不要太在乎结果,努力的过程很重要,但是这在软件工程中不合适了 ...
随机推荐
- [Swift]LeetCode107. 二叉树的层次遍历 II | Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- [Swift]LeetCode897. 递增顺序查找树 | Increasing Order Search Tree
Given a tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root o ...
- linux 部署mysql
参考:https://www.cnblogs.com/silentdoer/articles/7258232.html mysql中执行的语句需要在语句结尾使用分号 下载 MySql yum 包 w ...
- winform文件筛选器
在.net 框架中,微软给我们封装了一个用于打开文件的对话框——OpenFileDialog.而该对话框包含一个可以筛选文件的属性——Filter,利用该属性,可选筛选出我们需要的文件. 因此,我 ...
- 有点深度的聊聊JDK动态代理
在接触SpringAOP的时候,大家一定会被这神奇的功能所折服,想知道其中的奥秘,底层到底是如何实现的.于是,大家会通过搜索引擎,知道了一个陌生的名词:动态代理,慢慢的又知道了动态代理有多种实现方式, ...
- 使用reflector对.NET反编译
reflector的下载地址:https://www.cr173.com/soft/355285.html 反编译后的结果:
- 『Two 树的直径求解及其运用』
树的直径 我们先来认识一下树的直径. 树是连通无环图,树上任意两点之间的路径是唯一的.定义树上任意两点\(u, v\)的距离为\(u\)到\(v\)路径上边权的和.树的直径\(MN\)为树上最长路径, ...
- 前端笔记之jQuery(下)事件&节点操作&净位置&拖拽&页面卷动值&遍历JSON
一.监听事件大全 1.1 JavaScript事件 onblur 元素失去焦点 onchange 用户改变域的内容 onclick 鼠标点击某个对象 ondblclick 鼠标双击某个对象 onfoc ...
- synchronized学习
现代软件开发中并发已经成为一项基础能力,而Java精心设计的高效并发机制,正是构建大规模应用的基础之一.本文中我们将学习synchronized关键字的基本用法. synchronized是Java内 ...
- leetcode — binary-tree-inorder-traversal
import java.util.Arrays; import java.util.Stack; import java.util.TreeMap; /** * * Source : https:// ...