软件项目经理

软件项目成功的要素

喜欢而已 提交于 2020-02-27 04:32:48
曾经有个笑话,说三个软件高级人材等待上帝安排工作,一个说自己擅长抽象思维,上帝说那就做系统分析师吧;一个说自己工作非常细心,上帝说那就做QA;最后一个说,我实在没有更多的才能,那就做项目经理吧。有句项目管理名言则是这个笑话的最好解释:对项目经理的知识要求是要有1英里宽,7英寸深。也就是说,各方面的综合能力是项目经理的首要技能。 项目管理引入中国好多年了,除了国外的PMP、IPMP认证体系,现在更是将之引入高等学位教育。除了最先应用项目管理的建筑行业,现在各行各业都非常重视行业内的项目管理,这些足以可以看到项目管理的蓬勃发展。但是软件项目失败案例还是比比皆是的今天,如何将项目管理与新理论和技术层出不穷的软件产业双剑合璧?项目管理理论是欧美国家伴随着生产管理起步的,虽然方法论是通用的,但是如何在软件开发中产生更大效益,需要更多的业界项目经理以及高层思索和总结。 一个成功的建筑行业项目经理也会是一个合格的IT项目经理吗?项目管理有之一个名言:一个成功的建筑行业项目经理也会是一个合格的IT项目经理。在欧美国家是适用的,这样跨行业的例子也非常多。但据我了解在大陆这样的例子还非常鲜见。尤其软件开发行业,就更没这种先例了,为什么在欧美或者印度模式中,都是行得通,在中国不行呢?欧美或者印度模式的项目经理负责制定开发计划、协调、以及填写各种项目输出表格或模版就够了

[收藏] [讨论] 如何划分项目经理和技术经理的工作

回眸只為那壹抹淺笑 提交于 2020-02-26 23:12:09
http://www.mypm.net/bbs/article.asp?titleid=27870&ntypeid=5005 [讨论] 如何划分项目经理和技术经理的工作 大笨猫 [发表于 2005年4月26日 11:16:14 ]   我们公司是一个中型软件公司,大概有300多人,其中200多人做软件开发,目前我们公司的大部分项目经理都是技术强人,因为是技术出生,他们更喜欢冷冰冰的电脑,因为电脑和人相对更容易控制。公司一步步的发展,领导们发现技术出生的项目经理慢慢不能满足市场的要求。以前我们是做行业内的软件,客户和我们之间的关系都很不错(都归省公司管理,大家是一家人嘛!),现在拓展了好几个行业外的大项目,大家发现以前行业内的开发、管理方式慢慢不能满足管理需要了,项目需要更强的管理能力。   所以最近公司决定把项目经理和技术经理分开,项目经理主要负责沟通协调,注重成本和范围,而技术经理注重质量。   我们项目是一个行业外的大项目,我是最早的参与者、组织者,经过激烈的招标,我们公司才中的标,所以理所当然的,我成为了本项目的项目经理。   因为项目重要,我们公司给我们项目配备了好几个高手,一个是W,他以前是做呼叫中心的,Java强人;另外一个是X,一个行业专家,将近做了十年相关行业的软件,做到软件部经理职位,因为不堪挤兑去年才来到我们公司;最近,来了一个软件工程硕士H

面试题库

时光怂恿深爱的人放手 提交于 2020-02-26 23:00:39
1.对兴趣爱好的深入体问(比如看书:深入问看什么书,有什么心得体会;比如羽毛球:深入讲技战术及相关信息);考察点:是否能对自己最感兴趣的事情投入比较大的精力。 2.工作技能深入提问(项目经理:需求调研真实案例如售票系统演练、设计时要考虑的各种特殊情况;开发:设计模式、面向对象、测试技能、语言基本功,算法;实施:需求调研、测试);考察点:是否能胜任本职工作,是否具有更深层次的能力。 3.实施面试:a. 在你进行实施的过程中,公司制作的一款软件系统缺少某一项功能,而且公司也明确表示不会再为系统做任何的修改或添加任何的功能,而客户也坚决要求需要这一项功能!对于实施人员来说,应该怎么去合理妥善处理这个问题?b.如果有一个不太懂电脑的客户,你应该采取什么样的方法去教他用公司的软件产品?c. 在项目实施过程中,使用者对产品提出了适合自己习惯的修改意见,但多个使用者意见互相矛盾,应该如何去处理?d.如果有一个不太懂电脑的客户,你应该采用什么的方法去叫他使用公司的软件产品? 来源: oschina 链接: https://my.oschina.net/u/3389027/blog/3168405

软件项目管理

一曲冷凌霜 提交于 2020-02-26 21:40:31
软件项目管理(Software Project Management) 该条目对应的页面分类是 软件项目管理 。 目录 [ 隐藏 ] 1 软件项目管理的概述 2 软件项目的计划 3 软件项目的控制 4 软件项目管理的特性 5 软件项目管理的组织模式 6 软件项目管理的内容 7 软件项目管理的成功原则 [ 编辑 ] 软件项目管理的概述   所谓软件项目管理就是为了使软件项目能够按照预定的 成本 、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和 项目 ( Project )进行分析和管理的活动。软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期。   软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个 软件生命周期 (从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则,方法,同时避免前人的失误。   软件项目管理的提出是在20世纪70年代中期的美国,当时美国国防部专门研究了软件开发不能按时提交,预算超支和质量达不到用户要求的原因,结果发现70%的项目是因为管理不善引起的,而非技术原因。于是软件开发者开始逐渐重视起软件开发中的各项管理。到了20世纪90年代中期

IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章

对着背影说爱祢 提交于 2020-02-22 09:58:09
十年前,笔者还是一个刚毕业的大学生,对IT业只是停留在学校的编程知识领域。刚出社会,有很多需要学习的地方。在这十年间,笔者经历了程序员,技术经理,项目经理,部门经理等职位。本文就是要说说如何从程序员到部门经理的经验。 对于程序员,按笔者在《 软件项目角色指南 》一文中的称呼,应该称为软件工程师。大家可以去看看该系列中对软件工程师的职责等内容,希望大家能对该角色有一定的理解。软件工程师要做的事情还是比较多的,因为在项目中可能要涉及到很多方面的内容,所以,软件工程师往往身兼多职。软件工程师在项目中的作用也是很大的,因为项目最基本的编码工作就是由他进行处理,所以项目的基础就是要靠软件工程师的工作来进行。软件工程师要做很多事情,一方面是编码,另一方面也要积极的学习该领域的其它知识,以补充自身的相关的知识内容。对于工作,软件工程师要兢兢业业,努力把该做的事情做好。那么,软件工程师对于知识方面该积极的进行学习,笔者就是在工作之余,努力的去看一些相关的知识,比如.NET Framework的相关的类库内容,以及一些关于C#的一些知识内容等等。对于业务,软件工程师也要从需求中去学习该领域的内容,争取对该领域做到至少是理解的程度。总之,软件工程师就是要努力学习,争取做领域方面的专家,争取向上做软件设计师、架构师等职位。 对于技术经理,笔者也做了一些总结。技术经理要积极的对领域内的技术有一定的理解

项目管理的三大目标即时间、成本和质量

旧时模样 提交于 2020-02-15 22:24:50
项目管理的三大目标即时间、成本和质量,实际是告诉项目经理应重点关注什么因素,项目控制应该做什么工作。三大目标虽然简单,但如果 能将其真正贯彻到自己的行动中,那么对项目计划制定、过程控制等工作,均能起到引导作用。有了努力的方向,项目经理也就可以真正告别“盲目”了。 AD:2013大数据全球技术峰会低价抢票中 项 目管理的三大目标即时间、成本和质量,实际是告诉项目经理应重点关注什么因素,项目控制应该做什么工作。三大目标虽然简单,但如果能将其真正贯彻到自己的 行动中,那么对项目计划制定、过程控制等工作,均能起到引导作用。有了努力的方向,项目经理也就可以真正告别“盲目”了。 1.我的第一次顿悟 (1)懂三大目标才算入门 我曾经也是一个混沌型的项目经理,每天浑浑噩噩,不要知要管什么,要做什么,在项目的大浪中随波逐流。直到有一天,我的上司在跟我聊天时说到项目有三大目标:时间、成本和质量,我当时就像被雷击一般,如梦初醒。时间、成本、质量,这不正是项目经理最应该要关注的事情吗? 这是我在项目管理方面的第一次顿悟。从这一天起,我才感觉自己像一个真正的项目经理了。也正是从这一天起,我才明白原来项目管理是有章可循的,我买来了项目管理的书籍,参加了项目管理培训,开始了新一轮如饥似渴的学习。 后来在工作中我每天都尝试着问自己这些问题: l 时间:项目计划在什么时候完成?有哪些工作,分别在什么时候完成

项目经理的职责

南楼画角 提交于 2020-02-15 22:22:15
该篇内容更多的是一个文摘,所以顺序逻辑性不强。 项目经理的职责是在有限的资源条件下,按时按质完成项目,满足用户的初始需求。 项目管理主要要处理的事情是,调度那非常有限的资源,去完成那看似完不成的,一大堆的工作。 如果有无限资源,就不需要项目管理了。 项目管理中,完成客户需求和公司任务是一个基本的、大家可以明白的事情,如果项目完成时能够让每个member都觉得有成就感,当然如果在项目中的每个时刻都觉得有成就感那更好,这样的项目经理才能算是比较合格的项目经理。 实际的情况是,完成客户需要和公司任务往往是最难被理解的事情,而且几乎所有的参与者都不明白这个事情。 基本上公司任务是要你用最短时间完成一个东西,这个东西刚好在客户能容忍的底线之上。 客户需要的是如果能有个东西,智力比他高,能干他不想干的事,但又不会抢了他想干的事。 所以你要作的东西就是要猜哪些是用户的底线。 对于项目经理来说, 最好是识别出一个干系人地图, 他们的角色、期望、影响力、关注点......由此产生几点项目成功关键因素,项目过程中项目经理90%以上的工作就是管理项目成功关键因素,平衡所有干系人的期望。很多项目经理觉得自己陷入了扯皮拉筋的焦油坑,那是因为你没有做好干系人管理,面对那些来自各方的针锋相对的要求,你是否有能力妥善处理,这些才是项目管理的关键。 项目经理的主要作用是:控制项目范围,控制项目进度

开发中,没有需求文档

左心房为你撑大大i 提交于 2020-02-14 04:27:39
可能造成需求不明确的原因有许多,有些需求在最后一刻之前都是无法明确的; 同样的,需求文档缺乏也是常见现象,但是缺乏的 原因却是多种多样 的。 首先,您 处于什么位置 ?您是项目在技术方面的主要负责人吗?还是重要模块的主要负责人? 您在团队中的位置是第一个重要的要考虑的因素。如果您是 一个大团队的一员 ,并且其他团队成员有同样的困惑,我的建议是暂时 只能按照原来的节奏去展开工作 ,已经发生的问题不可能立刻得到解决,而大型团队一般进行的是较为大型的项目,手头的工作也不是说停下来就能停下来的。 如果您是 团队的重要成员 (即使不是首席技术负责人),负责许多重要模块的研发工作,那么我就要建议您好好的和项目经理坐下来交流一下,但是就我们的经验,直接点出“缺乏明确的需求”是不会有效的。我的建议是,如果您能 就已经完成的工作和项目经理展开讨论 ,用事实说明在项目中遇到的需求困难,以及这种困难已经造成的麻烦,那么 即使不能解决问题,至少大家能建立起一个达成共识的平台 ,不至于在讨论工作量及规模的问题时互相扯皮。 不同系统的 需求特征是不同 的,依据需要完成的 系统的不确定性 (应该从客户及用户对需求的理解程度、开发团队对需求的理解程度、市面上有无成熟的同类产品这三个角度分别去分析) 的大小 ,来确定需求是否有可能在开始时就被明确下来。假设您现在正在开发一个创新的产品或系统

最近工作的几点困惑

放肆的年华 提交于 2020-01-29 02:58:09
先介绍一下情况,我们团队大概10个人,我不是项目经理,也不是骨干成员,只是普通的程序员。 1.我从09年11月份来公司实习,到目前为止我没经历过一次codereview,大家开发完了之后直接简单调试一下,然后扔给QA部门测试,没有codereview,也没有任何单元测试。我一直要求进行代码走读,这样可以加强同事之间的交流,有些成员说没时间,项目经理口头同意了我,但是一直没有行动。 2.从第一个问题可以看出我们团队很少进行技术性的交流,我甚至不知道它们任何一个的编程风格,所以我最近提倡学习、共享的氛围,建了一个office2010的groove工作平台,倡导大家在上面分享自己的文档和经验,大家还可以像论坛一样发表自己的感想,但是效果不太好,我觉得可能是我没有关注每个人的感受,太注重自己,而忽略了别人,别人当然也不会理睬你,而且我不是项目经理,难免没有威信。还有原因可能是我们彼此都不了解对方的工作内容,交叉内容很少,我想我可以试着去了解别人负责的模块,这样就有机会和别人沟通了。 3.我接触敏捷不久,但深深被其思想折服,但是我却没有听到我们团队任何一个人提起过敏捷,我想如果哪一天我要推行的话,实施起来难度肯定相当的大。 我的目的是自身持续学习提高的同时,尽可能的影响更多的人,进而直接影响软件产品质量和代码质量。我想我一个普通人员能做的也就这么多了,我之前没有其他公司的经验

项目经理面试中可能遇到的问题(持续更新)

╄→尐↘猪︶ㄣ 提交于 2020-01-26 04:12:30
1.范围、时间,成本,这三项中哪些是可以由客户控制的? 范围、时间、成本,是项目管理中常说的三角关系。任何一方改变都可能牵扯到其他两方的变动。项目管理的本质,就是在保证质量的前提下,寻求这三者之间的最 佳平衡。因为客户是需求方和投资方,客户有权对这三者进行控制,当然客户主要控制范围,即提出他们的需求——项目要实现的功能特性,其次,客户也非常关心 能交付的时间和所付出的成本。在满足客户的需求情况下,可以在时间、成本上和客户进行交流、谈判。从项目管理的角度看,最好固定其中一项,其他两项可以根 据实际状况来调节保证项目质量。 2.迭代和增量的区别在哪里? 软件开发不是一躇而就,其过程犹如雕琢一件工艺品,由无形到有形、由粗到细,很难一次就能开发出功能完善、强大的一个版本,而往往是分阶段进行,一个版本 接一个版本的发布出去。软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。 增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分,先开发主要功能或用户最需要功能,然后,随着时间推进,不断增加新的辅助功能或次要功能, 最终开发出一个强大的、功能完善的、高质量的、稳定的产品。 迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分,先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然后,随 着时间推进,不断细化已有的功能或完善已有功能