学软件管理的方法软件管理工作涉及到软件开发工作的方方面面,其直接对象包括人、财、物,简单地说,人就是指软件开发人员,财就是指项目经费,物就是指软件项目。学软件管理须要从软件开发工作的这些方面开始着手,掌握正确的管理逻辑。作为软件管理人员,应该站在高处来俯瞰整个项目,如果有不识庐山真面目的感觉就不太好了。有了俯瞰全局的意识这一前提,采用适当的管理技术,项目开展就相对容易。学软件管理可以从四个方面着手:软件项目的计划、软件项目的组织、软件项目的领导和软件项目的控制,下面对这四个方面进行详细的介绍。一、软件项目的计划软件开发项目的计划包括定义项目的目标,以及达到目标的方法。他涉及到项目实施的各个环节,带有全局的性质,是战略性的。计划应力求完备,要考虑到一些未知因素和不确定因素,考虑到可能的修改。计划应力求准确,尽可能提高所依据的数据的可靠程度。学习软件管理主要得集中学习软件项目的估算、软件开发成本的预算和软件项目进度安排。1、软件项目估算是对使用技术的时间和工作量的估算。因为估算是其他项目计划活动的基石,而且项目计划又未软件工程过程提供了工作方向,所以我们不能没有计划就着手开发,否则就会陷入盲目性。估算的依据是软件的范围,包括功能,性能、限制、接口和可靠性。在估算开始之前,应对软件的功能进行评价,并对其进行适当的细化以便提供更详细的细节。2、软件开发成本主要是指软件开发过程所花费的工作量及其相应的代价。它不同于其他物理产品的成本,它主要包括人的劳动的消耗,人的劳动的消耗所需的代价就是软件产品的开发成本。开发成本的估预算方法有很多种,象简单的代码行技术,任务分解技术,自动估计成本技术,专家判定技术,还有参数方程法,标准值法,以及COCOMO模型法。3、软件项目的进度安排主要是考虑软件交付用户使用的这一段开发时间的安排。进度安排的准确程度可能比成本估计的准确程度更重要。软件产品可以靠重新定价或者靠大量的销售来弥补成本的增加,但进度安排的落空会导致市场机会的丧失或者用户不满意,而且也会导致成本的增加。因此在考虑进度安排时要把人员的工作量与花费的时间联系起来,合理分配工作量,利用进度安排的有效分析方法严密监视软件开发的进展情况,以使得软件开发的进度不致被拖延。在进行进度安排时要考虑的一个主要问题是任务的并行性问题。当参加项目的人数不止一人是软件开发工作就会出现并行情况。因为并行任务是同时发生的所以进度计划表必须决定任务之间的从属关系,确定各个任务的先后次序和衔接,确定各个任务完成的持续时间。另外还应注意关键路径的任务,这样可以确定在进度安排中应保证的重点。常用的进度安排方法有两种,即甘特图(GanttChart)法和工程网络法。二、软件项目的组织学习软件管理必须要考虑如何将参加软件开发的人员如何组织起来,使他们发挥最大的工作效率,组织软件开发人员对成功地完成软件项目极为重要。开发组织采用什么形式由软件项目的特点决定,同时也与参加人员的素质有关。通常有三种组织结构模式:1、按课题组划分的模式:把开发人员按课题组成小组,小组成员自始至终承担课题的各项任务。该模式适用于规模不大的项目,并且要求小组成员在各方面有技术专长。2、按职能划分的模式:把开发项目的软件人员按任务的工作阶段划分为若干工作小组。要开发的软件在每个专业小组完成阶段加工后沿工序流水线向下传递。这种流水作业的方式使用于多项目并行的情况。3、矩阵形模型:这种模式是以上两种模式的复合。一方面按工作性质成立一些专门小组,另一方面每一个项目都有它的经理人员负责。三、软件项目的领导学软件管理要关注团队的建设和领导、人际关系处理、压力和冲突管理、项目计划和决策制定等方面。领导团队的方式对软件项目的成败有着决定性的影响。团队领导决定着软件的质量、技术决策的合理性、团队精神以及团队成员喜爱的激励方式。成为一名团队领导从不同的角度看待软件开发。对开发人员的设计和编码的质量进行评判的。四、软件项目的控制软件项目控制的作用就是为了保证项目按照预期的项目目标进行,必须对项目的运行情况和输出进行持续的跟踪监控,收集各种项目进展信息,对收集的信息进行分析,与预期的项目目标进行比较。在出现偏差时及时分析偏差原因,制定有效的纠正预防措施,落实纠正预防措施。这也是学软件管理最为重要的环节。软件项目的特点是渐进明晰的,特别地软件开发项目更因为其结果的无形性、需求难以明确性、劳动密集性和智力密集性,“渐进明晰”这一特点更加显著。在项目的初期,项目经理或项目成员基本上不可能像建设一栋有形的建筑一样,预想出项目实施过程中的所有情况。所以,尽管已经尽可能明确制定了项目目标,并以此为目标制定了尽可能周密的计划,如果没有对照项目计划进行严密的监控,并及时调整计划,不断使计划明晰化并符合实际,以尽可能地保证项目按照基准计划实施,并使计划的变更尽可能地减少,那么项目就很难达到原先计划中制定的目标。这些目标要同时兼顾进度、质量、成本。所以学软件管理不仅要学习制定出好的项目计划,更要学习进行严密的项目控制。项目控制是项目经理的一项重要职责,也是项目管理部门、项目成员、项目干系人的重要职责。