软件项目管理经验点滴总结_软件项目管理常见问题-程序员宅基地

技术标签: 软件构架  团队管理  软件需求  项目管理  软件测试  编程语言  软件工程  

一、研究背景
在这几年的软件项目管理中,一些失败的软件项目给我留下了深刻的印象。后来,我们结合项目管理的知识(参加了信产部《集成系统项目经理》的
培训及美国PMP项目管理的学习),开始反思,吸取教训,总结经验,并根据公司的实际情况,结合PMP的五大过程九个知识领域及CMMI的相关要求适当裁
减进行项目管理,顺利完成了上海浦东国际机场、青岛流亭国际机场、武汉天河国际机场等国内各大中型机场安检信息管理系统的实施,为2008北京奥运的成功

举办提供安全保障。因此,本文主要讨论在软件项目的项目管理问题。


二、项目管理的两个问题
      如果用两个字概括当前社会的特点,那就是“变化”,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快,用户需求与市场不断变
化,人员流动也大大加快。在这种环境下,企业需要应对的变化以及由此带来的挑战大大增加,也给管理带来了很多问题和挑战。软件行业是一个极具挑战性和创造
性的新行业,管理上没有成熟的经验可供借鉴。而项目管理应该说对于软件企业,尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。因此,项目管理
在软件开发中的应用日益受到重视。

  项目管理的两个问题: 什么是项目管理?为什么要有项目管理?

  项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。

  没有项目管理,项目也有可能成功。但没有管理的项目,很难保证项目的利润空间,对公司来说,亏损的风险就大。所以我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。

  另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改
进的快慢,则取决于两个因素:一个是人,特别是各级管理者;另一个是利益。关键是“利益”,准确的说是“利益的分配”,在权责利明确的前提下,人才能充分
的发挥作用。还需要指出的是“利益”是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。

  今天,项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软
件开发、金融等行业以及政府机关的项目管理工作。随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应
用对象也各不相同。

  软件开发是一项复杂的系统工程,牵涉到各方面的因素,软件开发正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开
发/维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难,甚至面临失败。如果管理不善,必将造成版本混乱,各个开发人员的工作相互
交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。如何总结、分析失败的原因,得出有益的教训,对一个公
司来说,是在今后的项目中取得成功的关键。

  三、如何衡量软件项目成功与否

  软件项目如何衡量其成功与否,一直是业内争论很久的话题。从我们对项目的定义,可以知道信息化项目的关键要素只有三个,即时间、成本、质
量。即项目有没有在进度上超出计划?项目在成本上有没有超出预算?项目在质量上有没有满足需求?后者还可以进一步分解成更细的标准,如:系统的功能是否符
合需求计划?系统的信息处理和运行方式是否合适?项目的整体运行状态是否适应企业的运营体系?等等。然而,软件本身是一个复杂的管理系统工程,以什么样的
指标体系去衡量,如何衡量,确实是个大难题。软件项目的失败,具体分析可能会发现很多种原因。

  四、软件项目管理常见问题及解决方案

  对于软件开发项目中,经常出现两种极端情况,一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。前
者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的记录,满足了上级所要求的上机日期,由于开发时间太短,过于
仓促,上机时,问题百出,试运行时间长达几个月或一年半载的,而且程序一改再改,维护工作量大。后者,如某套系统未弄清楚需求,或因设计问题,开发失败。
通过提炼这些成功和失败的例子,软件项目成功或失败的根本原因可能会更清晰一些。

  分析目前项目管理需要改进的问题可以从几种相关角色的角度去考虑:项目经理、项目组成员、公司管理人员、市场人员、客户等。

  问题一:缺乏系统的项目管理培训(相关对象:项目经理、管理人员)

  项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,在实际工作中,没有项目
管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在一些软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经
理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。

  解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。

  项目实践:我司陆续安排项目经理或储备经理,分别参加了信产部的《集成系统项目经理》,美国PMP项目管理及较具实战性的《清华总裁班项目管理实战》的培训学习,让项目经理深入学习项目管理的知识体系、常用工具和管理方法。

  问题二:项目团队内分工协作问题(相关人员:项目经理、项目成员)

  项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象,有时各阶段不同角色
或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务、不愿意与他人协作。这些现象或多或少地造成了项目团队内部资源的损耗,
从而影响了项目的进展。


  解决方案:项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。

  项目实践:公司专门聘请清华总裁班高级讲师黄瑞生对全公司人员进行《高绩效团队打造》培训,本课程全面讲授打造高绩效团队的方法和技巧,内容涵盖团队的概念、团队的发展阶段和不同的领导方法、挑选团队成员方法、有效的团队目标的制定方法等诸多方面。同时还绍了打造高绩效团队的七大技巧:团队
沟通技巧、团队激励技巧、团队冲突处理技巧、团队决策技巧、团队成员训练技巧、召开团队会议的技巧等等,还组织了余世伟主讲的《赢在执行》视频讲座。从而
大大提高项目团队成员间相互配合、协调能力和执行能力。
  问题三:沟通意识问题(相关人员:项目经理、项目组成员)  在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;没有明确的沟通媒介,以至于无法及时接收最新的信息。特别是项目经理无法精确的传达公司决策,项目运营,无法合理的
激发团队,势必影响项目效率,
  解决方案:提高项目经理演讲能力,制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如除发送邮件外还要电话提醒、回执等,重要
的内容还要通过举行各种会议进行传达。
  项目实践:公司安排项目经理参加了清华总裁班高级讲师黄瑞生主讲的《TTT培训师》培训,不仅有效的提高了项目经的演讲能力,并为后来组织的民航安检交流会的成功演讲奠定了基础。
  问题四:质量管理问题(相关人员:质量经理,项目经理,项目团队)
  有些公司未建立有效的质量管理标准,项目经理没有充分的质量规划,甚至有些项目经理没有充分意识到质量管理的重要性,项目在开发过程未加强对项目质量,配置管理的监督和审核,造成项目维护成本高等问题。
  解决方案:通过学习质量管理体系知识,掌握质量规划、质量保证、质量控制。研究和学习质量控制的工具和方法,掌握项目质量管理所必备的知
识。质量管理包括:质量计划编制、质量保证和质量控制三个过程域。质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准
和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关
人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。质量保证则是贯穿整个项目全生命周期的有计划和有系统的活
动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。质量控制是对阶
段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。
  项目实践:公司根据现运行ISO体系,结合CMMI3的相关要求,制定《项目过程管理指南》,有效的指导项目经理进行质量管理,并邀请上海
漫索林锐博士对产品部和市场部进行《软件研发和项目质量管理》课程培训,还有针对选择适合公司需要的集成化管理平台,确保项目在开发实施过程中的组织过程
资产,得到有效的跟踪和管理,让项目管理更清楚,更条理化。
  问题五:风险管理问题(相关人员:项目经理,项目团队)
  项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时常常没有做专门的风险管理计划文档,而是合并在项目
计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的
风险防范起不到什么指导作用。
  解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。通过加强对项目规划中
风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行
性。
  项目实践:专门建立了项目风险管理流程,加强在项目立项等各过程的技术评审,风险识别,风险跟踪,风险应对的监督和管理。
  问题六:项目计划意识问题(相关对象:项目经理)
  项目经理对总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计
划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。没有计划或者是随意的不负

责任的计划的项目是一种无法控制的项目。

  解决方案:在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
  项目实践:通过合理利用项目进度管理工具Project,加强项目变更、变更评审和变更审核机制,为新项目提供参考和借鉴。
  问题七、管理意识问题(相关对象:项目经理)
  部分项目经理没有意识到自己项目经理的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,
计划不周、任务不均、资源浪费。在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管
理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好安排的工作只好自己做。
另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
  解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,
最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意
识。
  项目实践:公司对产品部的生产和运营进行管理创新,从原来运行的项目型管理向矩阵型管理转变,筹建管理、技术、业务三个中心和加强团队协
作、实现自我价值两个基本点,为客户提供适当质量的产品和服务。各中心目标:管理中心形成一致管理思想,贯彻组织任务、进行项目集管理;业务中心打通业务
知识、分享行业经验,逐步形成业务、质量、客服、实施等过程资产,产生业务专家、销售顾问;技术中心进行核心业务研发与技术难点攻关,组建实验室,形成核
心组件管理。还专门组织技术中心成员参加微软MSUP《系统架构师》培训及业务中心成员参加《WCF技术》培训。
  问题八:不重视项目经验的总结(相关人员:项目经理、管理人员)
  项目经理在项目结束时有些是因为自身对写文档工作的兴趣或意识,或者是因为紧接着要参加下一个项目,总体对项目总结的重视程度不够。有些是项目总结报告一再拖延,有些是交上来的报告质量较低,敷衍了事。
解决方案:在制度上鼓励和加强项目经验总结工作,使得项目总结及时并且具有指导意义而不是走过场。
  问题九:项目干系人相关问题(相关人员:项目经理、项目成员、客户)
  在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以致于无法得到完整需求或最终经权威用户代表确认
的需求。由于项目经理的工作问题,客户参与程度部不高,客户方相关责任人不明确或对范围和要求责任心不强,提出的要求具有随意性,项目前期对需求的确认不
够积极;或者是多个用户代表各说各话、昨是今非但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
  解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含
哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
  以上对软件开发项目管理中出现的问题的分析还不够深入,也无法列举所有遇到或将遇到的问题,解决方案也要根据实际情况进行调整,希望引起对这些问题更多的思考和改进。
  项目管理虽然没有非常高深的理论,但要真正实施起来,也绝非易事。对于软件开发企业而言,这不是一个小的改变,而是一种变革,企业需要为此
付出艰苦的努力,宣传并树立公司范围内的项目管理文化十分重要。从而在实践中锻炼提高,解决各种各样的问题,使项目管理工作越做越好。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jbjwpzyl3611421/article/details/30053797

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签