引言

程序员的人生就是和一个个的软件项目打交道的人生。

不能管理好项目过程的程序员不是好的开发人员。

项目管理是对成功地完成一整个软件项目过程中地一系列目标相关地活动(譬如任务)的整体监测和管控,软件开发是软件项目过程中最重要的一个组成部分之一。

在互联网公司做项目,一边强调要敏捷开发,一边要交付成果。所以如何区分好项目管理和软件开发的边界,统筹好二者才是一个好的互联网项目管理和软件开发过程。

最简单的项目管理

每周都要写周报

周报里面应该写点什么?最简单地要写当前我要关注哪几个项目,各个项目是处在什么开发模式中,对应的开发进度分别进入到了哪个层面,进度和进展分别是怎样的。有哪些风险。难于解决的问题在哪里。

每天都要写日报

那怎样来监控和衡量项目的进度的问题呢,项目管理和项目开发的边界在哪里?

很大程度上取决于所选择的软件开发模式。

对于瀑布型的软件开发模式,进度比较好衡量。需求分析、设计、编码、集成、测试、维护每个阶段都有对应的产出。

迭代型开发:主体框架稳定的情况下,加功能就是迭代型开发。每一个迭代周期里面,就是一个小的项目开发,这个时候的项目开发进度应该也比较好衡量,对于项目开发的进度管控有些孰能生巧了,有时候就会忽略掉一些步骤,比如设计文档、测试case、单元测试相关的交付。

螺旋开发:如果面对未知的风险,每次项目都要评估风险,每次结束后都需要重新提出修正建议,制定下一步计划,更像是再搞研究。每一次迭代对应效果的衡量其实是不那么确定的,以成果认英雄式的进度略微不好衡量。

敏捷开发:频繁交付新的软件版本,这个边界比较模糊,适合于需求非常不确定型,经常需要调整的项目,强调大家齐心协力把事情做好,需求经常可能调整,进度相对不大好衡量,敏捷管理对项目管理和软件开发人员的要求最高。

不同软件开发模式

瀑布型开发:

需求分析、设计、编码、集成、测试、维护,强调每一个阶段都需要有相应的产出。

迭代型开发:

整个开发工作被组织成为一系列短小地、固定长度(如3周)地小项目,被称为一系列地迭代。每一次迭代都包括了需求分析、设计、实现语测试。

迭代式开发的优点:

1、降低风险

2、得到早期用户反馈

3、持续的测试和集成

4、使用变更

5、提高复用性

螺旋开发:

快速原型

1、制定计划:确定软件目标、选定实施方案,弄清项目开发的限制条件;

2、风险分析:分析评估所选方案,考虑如何识别和消除风险;

3、实施工程:实施软件开发和验证

4、客户评估:评价开发工作,提出修正建议,制定下一步计划。

螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助将软件质量作为特殊目标融入产品开发之中。但是,螺旋模型也有一定的限制条件,具体如下:

1、 螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。

2、如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。

3、软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险

4、一个阶段首先是确定该阶段的目标,完成这些目标的选择方案及其约束条件,然后从风险角度分析方案的开发策略,努力排除各种潜在的风险,有时需要通过建造原型来完成。如果某些风险不能排除,该方案立即终止,否则启动下一个开发步骤。最后,评价该阶段的结果,并设计下一个阶段

敏捷开发:

测试驱动开发

scrum

强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。

1、人和交互 重于过程和工具。

2、可以工作的软件 重于求全而完备的文档。

3、客户协作重于合同谈判。

4、随时应对变化重于循规蹈矩

实际工作中,除了瀑布型开发流程很好区分,另外几种开发模型比如迭代型和螺旋型和敏捷开发都不是很好区分。于是发现了下面这个对比文章,其中明确地把敏捷开发和其它开发流程区分开来,说敏捷开发就是用来做互联网项目的管理的,迭代模型是敏捷开发的一个组成部分。看起来要靠谱得多。

不同软件开发模式的对比

其中有一段如下:
迭代开发是一种软件开发的生命周期模型,与其对应的还有瀑布模型、螺旋模型等等
敏捷开发是多种软件开发项目管理方法的集合,其中包括了XP、Scrum等十几种开发模式,这些开发方法有些共同点,比如重视响应变更,重视实现客户的价值,重视开发人员的自身发展等等,其核心体现在他们著名的四句原则中.这些开发方法基本都倾向于采用迭代的软件开发生命周期模型.
简单来说,迭代模型是敏捷开发普遍使用的软件生命周期模型,敏捷开发所包含的内容比迭代模型宽泛的多.

明白自己所处的开发模式下面,可以更好地知晓项目管理和软件开发的边界,以及预期自己的产出对于管理者会是什么。

所以,有的时候软件开发人员觉得自己做了很多事情,但是个人的成果不那么被认可,不一定是个人没做好,也可能是因为个人落在了敏捷开发这个区间,而且关注点在软件项目的实现上。这个时候可以选择放慢进度,适度补充一些相对稳定的流程产出和文档产出。这个时候的开发成果和瀑布型开发的成果也是不大一样的,这个也需要知晓

回想过去两个月的工作,最后要交付的时候有点狼狈:

原因当然有很多:

比如:中间插进来的项目打断了原有计划,快速原型的追求的同时,失去了更详细的需求分析。

另外就是因为没有清楚地明确自己手头上有哪几个任务、每个任务的时间点和优先级是怎样的。这个永远是top piority。

当然时间的预算也不够准,最近一直在调整自己的状态、没加班,这下预算时间人天数偏少,以及中间的其它意外。

越往敏捷上靠,管理越不那么精确可控,越容易在交付成果上容易被人诟病,也是正常情况,所以也不用太自责。

软件开发路漫漫其修远,项目管理显阶段性成果。

项目管理和软件开发的边界相关推荐

  1. 项目管理进阶--软件开发项目中的团队组成

    #项目管理进阶–软件开发项目中的团队组成 ##项目经理 项目经理负责分配资源,确定优先级,协调与客户和用户之间的交往.总而言之,就是尽量使项目团队一直集中于正确的目标.项目经理还要建立一套工作方法,以 ...

  2. 项目管理工具+软件开发、云计算、数据分析和机器学习工具

    1.软件开发.云计算.数据分析和机器学习工具 (1)Kubernetes Kubernetes作为Docker生态圈中重要一员,是Google多年大规模容器管理技术的开源版本,是产线实践经验的最佳表现 ...

  3. 项目管理_软件开发的六大阶段

    转载 2013年05月01日 19:47:08 http://blog.csdn.net/northplayboy/article/details/601443 第一阶段:调研阶段 本阶段我们将组成企 ...

  4. 哪个项目管理工具好用到哭?JIRA VS 华为软件开发云

    一.产品介绍 JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域. 华为软件开发云 (DevCloud ...

  5. 一个项目经理对主流项目管理工具的对比:禅道VS华为软件开发云

    禅道与软件开发云对比分析报告 1. 产品介绍 禅道是易软天创出品的一款项目管理软件,集产品管理.项目管理.测试管理.文档管理.组织管理于一体,覆盖了项目管理和测试管理的核心流程. 华为软件开发云 (D ...

  6. 软件开发管理规范(制度)

     版 本 页 标   题:China Advanced Construction Materials Group信息技术管理制度 主   题: 软件开发管理制度 文档编号: 版本说明: 版本号 版本日 ...

  7. 【03173】2021年10月高等教育自学考试-软件开发工具

    一.选择题 下列各项中属于集成化开发工具的是 A.WORDSTAR B.FLOW C.Dictionary / 3000 D.Visual Studio 两种典型的开发环境: Eclipse和Visu ...

  8. 软件开发不是一门艺术

    "做软件是艺术,还是工程?",答案是肯定的--做软件是工程,不是艺术.所谓艺术一般不是经济生活必需的,而是茶余饭后供人们休闲和欣赏的附属品.艺术品虽然价值不菲,但不是和国民经济或老 ...

  9. 软件开发项目如何管理?

    软件开发是一项艰苦的工作,将最初的构想转换成一个成熟的应用程序,中间会经历非常多的步骤,因此,软件开发也需要项目管理软件,来帮助团队提高效率.软件开发项目管理该怎么做?借助项目管理软件即可. Zoho ...

  10. 华为软件开发云测评报告三:测试管理

    往期文章: 华为软件开发云测评报告一:项目管理 华为软件开发云测评报告二:代码检查 体验环境 体验方式:PC端 系统:Windows 64位 浏览器类型:Chrome浏览器 浏览器版本:58.0.30 ...

最新文章

  1. 对不起,作为导师,我让您失望了!
  2. 一个打印机的希奇古怪的问题二
  3. 电商啥职位最赚钱?投资薪资最高,客服垫底
  4. Java Maven学习 - 1
  5. 程序员修炼之路:你该知道的 7 个必经阶段
  6. python代码用c语言封装_使用C语言扩展Python程序的简单入门指引
  7. 二维矩阵中的最大矩形面积--java实现
  8. 牛客 - Colorful Tree(dfs序+LCA)
  9. 「递归」第7集 | 腾讯开源联盟出征!
  10. sde oracle11g,Arcsde post oracle11g报错解决办法
  11. 写入和读取外部存储文件
  12. 因观看大量违规视频致抑郁,审核人员起诉抖音
  13. 快速核对两个表格数据
  14. 11、生成带参数二维码应用场景
  15. 【接口测试基础】第五篇 | 接口用例设计详解
  16. ESP8266 (WEMOS D1 R1 ) + L9110S_FOUR 驱动直流电机
  17. 数学建模学习之聚类算法
  18. 5操作系统的运行机制和体系结构
  19. python 逻辑回归 复杂抽样_逻辑回归(Logistic Regression) ----转载
  20. Safari 手机浏览器无法下载的问题

热门文章

  1. 电子邮件群发软件哪种好 电子邮件群发软件怎么用
  2. 统一社会信用代码规则
  3. 【逗老师带你学IT】阿里云监控报警回调+转发企业微信+转发SnmpTrap+PRTG
  4. 计算机启动到安全模式,电脑正常开机会进入安全模式怎么办
  5. Android 吸顶布局的写法
  6. 3D空间扫描,用立体的眼光看懂世界
  7. Java实现图表趋势图的展现
  8. Echarts16 ---散点图-趋势图
  9. 全国实时公交查询API接口
  10. Matrix Factorization