加载中...
QQ群:3790902 | 设为首页 | 加入收藏 | sitemap |
 
初级 程序员 网管员 信处技 电商技 中级 数工 软测 监理师 多媒体设计师 软设 信息系统管理 嵌入式 电商设 网工 系统集成 高级 系统分析 网络规划 项目管理 系统架构
数据库 操作系统 数据结构 软件工程 计算机系统 语言 网络 多媒体 标准化 计算机图形学 电子商务 数据挖掘 编译原理 信号处理
VB C\C++ Java ASP PHP JSP Access MSSQL Mysql Oracle DB2 Sybase Delphi 片上系统
Ajax .net Perl Pascal ODS XML 云计算 P2P 工作流 快速工具 设计模式 异构数据 统一过程 软件架构
供应链 ERP CRM UML CMM J2EE 中间件 EAI 产品线 商业智能 极限编程 多核技术 外包ASP SOA
PB WEB Service WSDL UDDI SOAP TSP 虚拟化 AOP SaaS 论文 网格计算 普适计算 敏捷方法 RIA

个人的软件项目管理体会

2010-4-22 12:14:15 不详 佚名 【字体:

核心提示:前言:现在的市场上充斥着各种各样的关于软件项目管理的书,我不大喜欢看这一类的书本,一方面这些书本都是国外书籍的中译本,有的地方翻译的可能也不是很符合中国用语的习惯,看起来可能会觉得难于理解(大量的晦涩英文学术专用语,不翻译也就算了,翻译过来了就完全不知道在说什么了),枯燥乏味,二来也觉得看了也不是很实用,所以我个人不大看这一类的书。   经过几年的磨练,从编码开始终于稍微的了解到了一些软件项目管理的具体内容,以及软件项目管理实施步骤,如何实施。以我个人的理解总结了下面几个部分。

 前言:现在的市场上充斥着各种各样的关于软件项目管理的书,我不大喜欢看这一类的书本,一方面这些书本都是国外书籍的中译本,有的地方翻译的可能也不是很符合中国用语的习惯,看起来可能会觉得难于理解(大量的晦涩英文学术专用语,不翻译也就算了,翻译过来了就完全不知道在说什么了),枯燥乏味,二来也觉得看了也不是很实用,所以我个人不大看这一类的书。
  经过几年的磨练,从编码开始终于稍微的了解到了一些软件项目管理的具体内容,以及软件项目管理实施步骤,如何实施。以我个人的理解总结了下面几个部分。  
 
一.需求管理

客户需求管理

  天大地大,需求最大。对于我们软件开发人员来说,客户的需求也应该是最大的,不仅仅因为客户是我们的衣食父母,也是我们软件开发人员成长的催化剂。我们不是End-User,所以有的时候关于某个特定系统上的具体细节可能是我们没有办法考虑到的,是在我们的领域里可能没有办法想象得到的,这个时候我们就必须要通过实际应用系统的End-User,也就是我们项目的最终客户来了解具体的客户需求。对于一个缺乏需求管理的软件项目而言,必定会导致系统不能实现预期的功能而需要在后期进行昂贵的修正,使得项目拖期、产生严重的质量问题与超出项目预算的现象。 
  了解了客户的需求,可以让我们在软件的开发过程中少走很多的弯路,缩短软件开发的周期,了解了客户的需求,能够提高软件的友好性,易操作性,易用性,从而来提升软件的质量。

需求成本管理

  对于客户的需求,我们要尽量地予以满足,但也不是一味地不顾技术实现上的困难而迁就客户的无理要求,在需求管理进行的同时,我们也不能忽略了成本问题。因为每一个功能的实现都需要我们花费时间去努力的。做需求管理的人员要和客户进行很好的沟通,在成本和需求之间找到平衡点。这些话说起来是很轻松的,做起来是绝对的不轻松,面对客户你必须要保持涵养,而你说面对的客户可能是一点都了解什么是软件,或者说是我做这个东西需要多少人力物力,而需求管理人员就是要对客户的需求进行必要的补充说明(基本上应该站在为减少成本,提高质量的立场上)。

需求内容传达

  而在有了具体的需求以后,然后需要和我们的软件设计人员进行沟通,务必做到使他们清楚地知道客户需要什么,确定我们的航向。

概括所以在项目管理的组成中,需求管理的位置是很重要的,他们有着桥梁的作用,接通了客户需求和软件开发之间的道路。

二.进度管理

进度管理

  在进度管理这个呈面上其实有两点,一点是总体进度,另一点就是个人进度了,而我们的Project 进度却是建立在个人进度的基础上的。

  很多的人可能会以为,进度管理就是leader或者说是Project manager(PM)的事情,而与团队的其他开发人员毫无关系,其实,个人认为这样的认识是非常的错误的。开发人员和所有过程都应该是有关联的,并不存在着什么什么是某某人的事情这样的说法。

  总体的进度应该由PM来控制和调整,而个人的进度却是软件开发人员个人的责任和职责所在,有很多时候软件的开发人员可能会抱怨,在原有工作时间段里,开发的时间本来就少,每天又让我们写这种毫无意义的个人进度报告,这样难道不是浪费了我们更多的时间吗!

  其实不然,一个精英的团队固然重要,但是没有良好的管理和沟通,统筹全局的管理,那么拥有再精英的团队也是白搭。开发人员在很多时候都是站在自己的模块里,或者说是以自己出发点进行思索,他们之间可能存在着相互间的沟通意识,但也只是个别人员之间的交流,并不能从根本上把握全体进度,也无法对进度作必要的分析和调整。而开发成员的个人开发进度报告汇总以后,能够让PM清楚的知道什么地方存在着问题,从而从工程整体上调整进度,决定相应的对策。

  建议在软件开发的过程中,不管项目的大小我们都应该抽取0.5-1.0小时的时间来写一份个人的进度报告,而在个人的进度报告上上面应该有清晰的个人进度,存在问题,准备如何解决等等记述,总之,一句话,报告要简明扼要能够清楚地反映个人的进度状况以及存在的问题。

  进度不是个人的事情,而是整个开发团队的事情。个人进度和全体进度只是着眼点不一样了吧。它所以反映的实质都是一样的,而个人进度更是全体进度的基础,没有了个人进度何谈全体进度。同时个人进度管理也是软件开发人员的自我管理,是进度控制的最重要组成部分,个人进度的状况好坏直接影响到团队全体的进度推进状况。

成本管理

  作为PM不仅仅要把握全体的进度,更加要把握住开发的成本,如果开发的成本超过了,那对于我们的开发来说不能盈利,而不能盈利的开发也就意味着失败。

  项目上的反反复复,开发人员加班费的支出,不仅加大了开发的费用,同时也给员工带来了身体、精神上的双重疲惫,直接导致个人抵抗力、免疫力的下降,更可能会造成员工身体上的隐藏疾病。同时也带动着相应的管理费用也随之增加了。这些都会使得我们软件的成本增加。

问题管理

  问题管理其实是应该包含在进度管理里面的,但是它又有点特殊,所以把它单独拉出来了。
  我们在开发过程中不可能是一帆风顺的,可能不时地会遇到各种各样的问题,而如何来解决问题,或者说是如何想办法尽早的解决问题,这个才是关键。而其中的最关键是不能有了问题而一声不响,闷头苦干,结果几天下来以后,却发现自己还是站在原地,而就算是你通过了几天的努力完成了这个难题。但是这样就是不是意味着你的成功了呢!不时的,这样的结果是不但自己的进度没有办法完成,更加延误了整体的开发进度,别的成员或者是小组就可能因为你一声不响地没有成果的努力而不能再继续下面的开发。应该说软件开发过程中遇到问题一声不响、埋头苦干的做法是很愚蠢的,软件开发要求的不是个人英雄主义精神而是团队的整体合作精神。缺乏团队的意识的个人和team必定是一个失败的开始。

  就开发人员而言,一旦碰到了难以解决的问题,不仅要自己努力调查,想办法解决,一方面也要把存在的问题向PM反映,让PM能够知道存在的问题,而PM可以在进度会议、或者召开临时紧急会议,把问题摆出来,通过大家来寻求解决的方案。一个人的力量毕竟是有限的,而个人的英雄主义却是团队开发的极大阻碍。 

[本文共有

相关阅读:

上一篇文章:软件项目管理的研究及在项目开发中的应用
下一篇文章:没有了

网友评论:


图文信息
ASP.NET 2.0中发送电子邮件剖析之一 ASP入门与实例---IIS的安装与配置
Dreamweaver教程(十一)之创建导航条 Java的破解和反破解之道