您的位置:首页 > 职场人生

[置顶] 项目经理面试题

2016-08-16 19:55 211 查看
1.请你谈谈你自己 

2.如何安排自己的时间?会不会排斥加班? 



3.为什么离开上一个工作? 



4.你对未来五年的规划为何? 



5.谈谈你过去做过的自认为最成功一个案例。 



6.谈谈你过去的工作经验中,最令你挫折的事情。 



7.项目的关键时期,进度非常紧张,作为项目经理的您,恨不能一个人当两个人用,偏偏在这个时候,您得知一位重要的项目成员的家人重病,这时,您会如何处理(让他回家探望还是坚守岗位)?为什么? 



8、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费?  



 

9、对一个一贯迟到的员工你会怎么办 


答:好的经理是通过结果来评价一个员工的,但还需要了解员工迟到会在公司和团队中造成什么影响。一个人的经常迟到,会使其他人感到领导在徇私进而会影响团队的士气。这个人也许可以按期完成自己的任务,但可能会影响到别人的进度。如果别人的工作进度取决于他的工作进度,那么,他的进度对于整个团队就很重要了。 

我会先判断这类员工的行为模式。换句话说,看他们是偶尔为之还是一贯如此。其次,我会明确公司有关考勤方面的政策,确定迟到及其相关处理方法。我也会了解该员工的工作是否与进度相符并了解与他一起工作的人对他迟到的反应。最后,我必须与他们进行客观的谈话,谈话的主题包括公司的规章制度,迟到对团队和个人评价的影响,同时强调时间进度。 

 
10、如何界定项目成员工作的范围和定义他们之间的工作接口 

答:项目主管首先需要对项目组成员非常了解和熟悉,知道他们的知识结构和能力水平;其次要对项目情况非常清楚,能对项目实施过程进行划分和功能模块的细化,并结合每个人员的特点为其指派具体的任务;最后要重点注意的是,尽量让组员之间的工作接口简单,接口定义详尽,以避免将来产生互相推诿和扯皮现象。 

 
11、如何评估项目执行状况随时掌握项目进展 
答:在项目运作过程中,仅靠员工的报告来掌握项目进展是不够的,原因是很多员工都愿意报喜不报忧。在项目初期就出现的问题苗头,如果不能传递上来,在后续阶段会造成很大的纰漏。我认为应专门设一个组来监督项目的执行情况,这个组不参与项目的具体实施,专门给别人“挑刺”。

12.范围、时间,成本,这三项中哪些是可以由客户控制的?

    范围、时间、成本,是项目管理中常说的三角关系。任何一方改变都可能牵扯到其他两方的变动。项目管理的本质,就是在保证质量的前提下,寻求这三者之间的最佳平衡。因为客户是需求方和投资方,客户有权对这三者进行控制,当然客户主要控制范围,即提出他们的需求——项目要实现的功能特性,其次,客户也非常关心能交付的时间和所付出的成本。在满足客户的需求情况下,可以在时间、成本上和客户进行交流、谈判。从项目管理的角度看,最好固定其中一项,其他两项可以根据实际状况来调节保证项目质量。

13.迭代和增量的区别在哪里?

    软件开发不是一躇而就,其过程犹如雕琢一件工艺品,由无形到有形、由粗到细,很难一次就能开发出功能完善、强大的一个版本,而往往是分阶段进行,一个版本接一个版本的发布出去。软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。    增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分,先开发主要功能或用户最需要功能,然后,随着时间推进,不断增加新的辅助功能或次要功能,最终开发出一个强大的、功能完善的、高质量的、稳定的产品。    迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分,先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然后,随着时间推进,不断细化已有的功能或完善已有功能,这个过程好像是一个迭代的过程。最终的目标是一致的,也是为了实现一个强大的、功能完善的、高质量的、稳定的产品。

14.如果客户想要的东西太多,你在范围和时间上怎样跟他达成一致呢?

    首先要向客户说明,如果在某个时间内去做不可能完成的工作,其结果必然是质量得不到保证,或者所化的成本过大。应该没有客户想做赔本的生意,每个客户都会重视质量,而不愿意损害自己的利益。   然后,和客户一起,按需求重要性、紧急性等对需求进行分类,分为不同的等级,然后从优先级高的需求开始,来估算不同优先级类别的需求实现的工作量。设定几个不同的开发周期或交付时间,从而由用户作出选择,例如:    (1)只做优先级最高的那类需求,开发周期需要3个月;    (2)做优先级最高和优先级高的那两类需求,开发周期需要7个月;  
(3)做优先级最高、高和中等的共3类需求,开发周期需要12个月;  (4)所有需求都实现,开发周期需要18个月

15.你认为项目中最重要的是哪些过程?

    需求分析、设计阶段(也可以加上测试,但千万别说编码或开发阶段),根据《人月神话》的观点:1/3 计划;1/6 编码;1/4 构件测试和早期系统测试;1/4 系统测试,所有的构件已完成。但根据国内目前的状况一般公司不会有很多的分析与设计时间(这取决于公司规模和时间成本),这样在一个工期很紧张的项目中我们应该尽量分配出进度优先级来,首先拿出客户最希望看到的和最能证明成果的东西来,其他的留待2期甚至3期去作,你可以告诉客户需要进一步调试(专业人员的欺骗手段,实际上就是在进行后续的开发)。

16.如果给你一个4-6个人的Team,那么你怎么分配他们、管理他们?

    管理能力和经验的综合题,可能没有人有相同的观点,那你可以按照某些思路来侧面解答:我会挑选一个技术过硬的人作为我的替补和项目的轻骑兵,是的团队中必须有机动人员,否则你的项目十有八九会夭折。其他的人会被平均的分配任务。我们会在每周进行全面的任务分配,每个人获取一周的大概工作,然后每天的工作由他自己完成并汇报。(很好,如果答出这些就差不多了,多说可能会出现漏洞)

17.简述常用的软件开发文档。

1)可行性研究报告(某些公司或模型没有)

2)项目开发计划

3)软件需求说明书(必有)

4)数据要求说明书

5)概要设计说明书(必有)

6)详细设计说明书(必有)

7)数据库设计说明书(必有)

8)用户手册(一般会有)

9)操作手册(必有)

10)模块开发卷宗

11)测试计划(必有)

12)测试分析报告

13)开发进度月报

14)项目开发总结报告

18.怎样和为什么要在编制项目计划时考虑依赖关系

    依赖关系可以通过将任务及其后续任务的标识符进行关联来表示。依赖关系说明了任务之间关联/并列的要求。依赖关系可以是指在另一个任务能开始之前有一个任务必须完成。例如,逻辑模型必须在物理模型前完成。但测试并不是要在所有编程工作完成之后才开始。项目计划加入依赖关系,就能找出项目的关键路径并且能够确定它对项目工期的影响。

19.人员管理的技能---你作为项目经理要做的第一件事情是什么?

    除了注意公司的发展方向并从中发现自己的发展道路外,在头脑中要建立项目经理所关注事物(商务,公司,项目,团队,个人,技术和方法论的变化)的优先顺序。因此,和部门经理开会确定优先顺序,安排用户和职员会议,得到全部成员的状态报告和评价。重要的是能尽快处理业务,项目和个人有关的事情。

20.人员管理的技能---你的团队主要是由新手组成的,并且进度已经落后。你将做什么?

    需要记住一个项目很少因为在截止时间内没有完成而被取消的。项目被取消,主要是诸如缺少资金,用户支持或不能满足的业务目标。因此,要做的第一件事是培训,无论在室内还是室外,在课堂或通过录像带。另一种附加方法就是让资深的雇员或高级顾问充当教师。举办针对个人评估和辅导的会议。帮助每个员工准确评价他们各自的优点和缺点。同时明确任务,将所有必须遵守的标准或准则阐述清楚。为每个员工提供从成功项目中得到的模板作为指南,还要允许他们发挥自己的才能。如果需要,和他们一起工作。对任何问题或完成的任务做出迅速的反馈。对于较大的任务,看看他们的计划,有助于确定他们是否了解任务的范围和目标,以便了解他们是否能完成任务。倾听员工的观点,也许他们会有完成任务的正确的方法和途径。然而也要防止雇员陷入挫折和士气低落的困境中。

21.项目经理的能力和职能?

    项目经理最重要的是协调沟通能力和组织能力,能够安排合适的人到合适的位置,制定较完备的项目计划方案,让项目组成员清楚了解各自的职责、工作量及时间安排,遇到困难能准确找到问题的关键点迅速组织人员解决之。

   项目经理不一定要技术最好,但技术好的项目经理在进度推进困难的时候将起到很大的作用。

22.项目实施有哪些主要阶段,每个阶段应该提交什么成果?

    这里只是列出几个大的阶段 :  

   1.需求分析-------提交《项目需求说明书》,并得到双方认可。

   2.系统设计-------提交《体系结构设计书》《数据库设计书》《界面设计书》《模块设计书》,均通过审评

   3.实现和测试------项目得到成品,并按《项目需求说明书》要求测试完毕,解决了所有已知问题。

   4.结项阶段-------客户验收通过。

   5.具体实施和维护阶段--实施成功,并合同要求进行维护

23.需求变更管理的手段和与客户沟通的手段?

    项目开发过程中,需求变更是不能回避的问题,我们需要一个正规的变更文档来定义每一次变更,并保持各个阶段文档的一致性,避免混乱。

   对于需求变更应得到客户在开发成本和进度的认可情况下进行,而不是一未满足客户,导致严重超支延期。

   变更这对项目开发一方是很头痛的问题,变更应该有所控制,在双方相互协调、认识统一的前提下进行,与客户的沟通尽量采用可见的通俗易懂的方式方法进行。

   但在必要的情况下,应该采取对客户进行相关专业知识的培训手段,避免不合理的要求。

24. 范围、时间,成本,这三项中哪些是可以由客户控制的?

  范围、时间、成本,是项目管理中常说的三角关系。任何一方改变都可能牵扯到其他两方的变动。项目管理的本质,就是在保证质量的前提下,寻求这三者之间的最佳平衡。因为客户是需求方和投资方,客户有权对这三者进行控制,当然客户主要控制范围,即提出他们的需求——项目要实现的功能特性,其次,客户也非常关心能交付的时间和所付出的成本。在满足客户的需求情况下,可以在时间、成本上和客户进行交流、谈判。从项目管理的角度看,最好固定其中一项,其他两项可以根据实际状况来调节保证项目质量。

25. 谁该对项目中所要付出的一切做出估算?谁有权设置最后期限?

  项目成功是团队协作的结果。在对项目进行估算的时候,需要由参与项目各个环节的人进行符合实际的估算,最后汇总起来进行综合分析计算,获得项目总的估算结果。

  项目的最后期限设置除了客户定死最后交付时间,其他的情况都是根据项目的进度估算结果而进行符合实际的计划得出的。

  

26.减少交付的次数,或是减少每个每个交付中的工作量,你喜欢哪种做法?

  根据项目的类型和项目进行中的实际情况来决定,如果项目是规模比较大,时间长的,那么就应增加交付次数或者减少每个每个交付中的工作量,以便及时考察项目进展,保证项目进度。例如,一个项目按计划进行到第一个里程碑发现项目进度明显落后,而下一个检查点(也就是交付的工作量)距离还很长管理层需要及时了解其进展,那么交付的次数的就要根据现在的时间状况来增加。反过来,如果这个项目的进度非常好,甚至超前,而下一个检查点(也就是交付的工作量)距离还很短,我们就可以减少交付次数。

  在传统的软件项目中,开发周期比较长,往往减少交付的次数,更好地控制质量;而现在,有一部分公司比较倾向于敏捷方法,喜欢减少每个交付中的工作量,交付周期只有几周时间(最短的周期,可能是一周),拥抱变化,更好地、更及时地满足用户的需求。而对互联网上的 web应用软件开发,“减少每个每个交付中的工作量”是一个比较好的策略,力求及时获得用户的反馈,将用户的需求及时融入新的版本,及时发布出去,赢得竞争市场。例如,在我新书《软件工程导论》中专门有一节讨论“永远的Beta”的软件工程思想。

  

27. 你喜欢用哪种图来跟踪项目进度?

  还是要根据项目的特点来决定,具体项目具体对待,当然,有时也不能由自己决定,而是取决于公司已有的工具和习惯。对于复杂、规模大的项目,可能要借助甘特图和网络图来分析和跟踪进度。简单、规模小的项目根据进度报告百分比和表格跟踪就可以了。

  

28 迭代和增量的区别在哪里?

  软件开发不是一躇而就,其过程犹如雕琢一件工艺品,由无形到有形、由粗到细,很难一次就能开发出功能完善、强大的一个版本,而往往是分阶段进行,一个版本接一个版本的发布出去。软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。

  增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分,先开发主要功能或用户最需要功能,然后,随着时间推进,不断增加新的辅助功能或次要功能,最终开发出一个强大的、功能完善的、高质量的、稳定的产品。

  迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分,先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然后,随着时间推进,不断细化已有的功能或完善已有功能,这个过程好像是一个迭代的过程。最终的目标是一致的,也是为了实现一个强大的、功能完善的、高质量的、稳定的产品。

  举一个例子:假设现在要开发A,B,C,D四个大的业务功能,每个功能都需要开发两周的时间.则对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成A,B功能,第二次增量完成C,D功能;而对于迭代开发来将则是分两次迭代来开发,第一次迭代完成A,B,C,D四个基本业务功能但不含复杂的业务逻辑,而第二个功能再逐渐细化补充完整相关的业务逻辑.在第一个月过去后采用增量开始时候A,B全部开发完成而C,D还一点都没有动;而采用迭代开发的时候A,B,C,D四个的基础功能都已经完成.

  

29. 试着解释一下风险管理中用到的实践。风险该如何管理?

  风险管理的实践很多,包括头脑风暴、风险列表(checklist)等。例如,人们常采用十大风险清单:在项目进行中,不时地更新和处理项目当前风险最高的前十项风险,以保证项目不脱离主轨道。因为项目中的风险大大小小会很多。十大风险清单就是抓住重要的风险及时处理,而又关系的小风险可能也就随之消失。从这里可以看出,风险也是动态的,需要经常地、及时地评估当前的风险,例如每周或每两周进行一次风险评估。

  风险管理就是通过风险的识别、预测、估算和衡量、选择有效的方法和手段,对风险进行预防、避免、降低或者转移的管理过程。

  

30. 你喜欢任务分解还是滚动式计划?

  根据项目特点来定,一般会选用任务分解的计划,责任清楚,可控性更强。滚动式计划的灵活性比较强,适应性比较好,但容易引起大家对计划不够重视,计划能力降低,或者可控性会差些。有时会将这两种方法结合起来使用。

  

31. 你需要哪些东西帮助你判断项目是否符合时间要求,在预算范围内运作?

  前提是这个项目的进度计划和成本计划是符合项目实际情况并不断随着项目的时间发展而滚动更新的。

  确保收集的进度和花费的成本就真实可靠的。

  在此时项目的范围没有影响到时间和成本的规划。

  那么就可以根据项目时间与计划的内容进行对比来判断项目符合时间要求,在预算范围内运作。常用的方法有基线对比法和挣值法。

  

32 DSDM、Prince2、Scrum,这三者之间有哪些区别?

  动态系统开发方法(Dynamic System Development method,DSDM)是众多敏捷开发方法中的一种,它倡导以业务为核心,快速而有效地进行系统开发。该方法的详细内容,可以参考:DSDM业务中心框架开发方法(第二版)。这种方法主要是在英国应用比较广泛。一般来说,敏捷方法适合于规模比较小、变化比较快(需求不够稳定)的项目,而对大规模软件,特别是在关键性、可靠性、安全性方面有很高要求的开发项目,则不适合。当然,可以在某些项目小组内实施;也是可以的。敏捷开发的方法很多,包括下面所说的 Scrum、自适应软件开发(Adaptive Software Development,ASD)、Crystal方法和特性驱动开发(Feature-Driven Development,FDD),可以参考《敏捷软件开发生态系统》。

  PRINCE2(PRojects IN Controlled Environments 2)为项目管理提供了一种结构化的方法,这种方法最早是在1989年由英国政府计算机和电信中心(CCTA)开发的,作为英国政府IT项目管理的标准。 PRINCE2如今日益流行,是英国项目管理的标准,它为管理项目提供清晰界定工作框架,介绍如何协调项目中的人和活动、如何设计和监督项目以及在项目发生变更的情况下如何调整的流程。每一个流程都详细标出关键的输入、输出和具体目标及要执行的活动,这为计划偏差提供了自发的控制。这种方法把项目划分为多个管理阶段,保证让所有资源得到有效的控制。依靠严格的监控,项目在控制和组织的方式下得到执行。

  Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。Scrum是一个包括了一系列实践和预定义角色的过程骨架,其主要角色包括同项目经理类似的Scrum主管角色——负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。在每一次冲刺(一般为15到30天周期),开发团队创建可用的、可随时推出的软件一个增量(小版本)。每一个冲刺所要实现的特性来自产品订单(product backlog),产品订单是按照优先级排列的工作需求。在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。

  管理Scrum过程有很多实施方法,从白板上的即时贴到软件包。Scrum最大的好处是它非常容易学习,而且应用Scrum不需要太多的投入。方法的应用,同样由项目规模、业务特点(需求是否稳定)等决定,而且还受企业文化、流程和领导意识等决定。如果需求稳定、项目规模比较大或周期比较长,一般会选用 PRINCE2,相反,可能会选择DSDM或Scrum,后两者没有本质区别,只是具有不同的最佳实践。

  正如有人评论,国内对Scrum还比较熟悉,对DSDM、PRINCE2等不够熟悉,应用不多。而业界最熟悉的是CMMI、RUP(IBM Rational Unify Process 统一过程)、XP(敏捷方法的极限编程extreme Programming)和MSF(Microsoft Solution Framework,微软公司软件开发解决方案框架),可参考:软件开发过程(CMMI/RUP/XP/MSF)是与非

  

33. 如果客户想要的东西太多,你在范围和时间上怎样跟他达成一致呢?

  首先要向客户说明,如果在某个时间内去做不可能完成的工作,其结果必然是质量得不到保证,或者所化的成本过大。应该没有客户想做赔本的生意,每个客户都会重视质量,而不愿意损害自己的利益。

  然后,和客户一起,按需求重要性、紧急性等对需求进行分类,分为不同的等级,然后从优先级高的需求开始,来估算不同优先级类别的需求实现的工作量。设定几个不同的开发周期或交付时间,从而由用户作出选择,例如:

  (1)只做优先级最高的那类需求,开发周期需要3个月;

  (2)做优先级最高和优先级高的那两类需求,开发周期需要7个月;

  (3)做优先级最高、高和中等的共3类需求,开发周期需要12个月;

(4)所有需求都实现,开发周期需要18个月

34、项目经理应具备的能力是什么 

答:项目经理最重要的是协调沟通能力和组织能力,即能够安排合适的人到合适的位置,制定较完备的项目计划方案,让项目组成员清楚地了解各自的职责、工作量及时间安排,遇到困难能准确找到问题的关键点并迅速组织人员解决。 

项目经理不一定要技术最好,但技术好的项目经理在进度推进困难的时候将起到很大的作用。 

 
35、项目实施有哪些主要阶段 

答:(1)需求分析——提交《项目需求说明书》,并得到双方认可。 

(2)系统设计——提交《体系结构设计书》、《数据库设计书》、《界面设计书》、《模块设计书》,均通过审评。 

(3)实现和测试——项目得到成品,并按《项目需求说明书》要求测试完毕,解决了所有已知问题。 
(4)结项阶段——客户验收通过。 (5)维护阶段——按合同要求进行维护。  

36、工期和工作量之间的差异是什么 

答:工期是日历上的天数,与人数和工作量无关。工作量是与日历天数无关的人的工作。 

 
37、怎样和为什么要在编制项目计划时考虑依赖关系 

答:根据使用的软件包,依赖关系可以通过将任务及其后续任务的标识符进行关联来表示。依赖关系说明了任务之间关联或并列的要求。依赖关系可以是指在另一个任务能开始之前有一个任务必须完成。例如,逻辑模型必须在物理模型前完成。但测试并不是要在所有编程工作完成之后才开始,前提是没有完成的程序对线性测试没有影响。 

在项目计划中加入依赖关系,就能找出项目的关键路径并且能够确定它对项目工期的影响。 

 
38、你怎样着手制定项目计划 

答:项目计划是实现成功的系统的路线图,它提供了一种手段来通知每个人项目希望他们做什么及何时完成。它帮助项目经理使管理层、商务用户和支持团体了解项目状态并调整特殊的资源。逐项列记的“一览表”协助对任何变动的影响进行迅速评估。当实况报告与计划联系起来后,计划为今后项目的任务划分和估算提供了有用的信息。 

我是这样着手制定项目计划的,即在适当的活动和阶段中或在其他的概括标准的说明下,输入确定的任务。将适当的可交付产品及阶段目标与特定的任务联系起来。连接全部需要依赖关联的任务。把资源角色或资源名字加到每个任务上。应用度量结果事先确定任务工作量,把更多的时间用于需求收集、设计和测试。考虑所有已知的节假日、培训、休假或其他的资源停工时间。同支持团体、管理层和商务用户一起复查计划草案,将结果作为补充性的输入并请求最终的批准。  

 
39、给项目加上测量标准有什么价值 

答:如果使用得当,测量标准是一个有价值的工具。它们提供了测定开发系统的复杂性和工作量的方法。度量结果为制定项目计划提供了信息输入资源,并且是确定发展方向的有价值的历史信息;软件测量标准将有助于开发更好的软件。 

 
40、作为项目经理你要做的第一件事情是什么 

答:除了注意公司的发展方向并从中发现自己的发展道路外,在头脑中还要明确项目经理所关注事物(商务、公司、项目、团队、个人、技术等)的优先顺序。具体内容包括和部门经理开会确定优先顺序,安排用户和职员会议,得到全部成员的状态报告和评价,能尽快处理与业务、项目和个人有关的事情。 

 
41、在决策和工作风格方面你会给下属多大的自由 

答:自由的大小取决于每个人的技能和专业水平。一个好的经理是“面向结果的”,并且能创造一个使团队广泛交流的环境。无论如何,每个员工每周须提交与项目和商业目标有关的状态报告,经理要进行审查,这有利于加强组织建设并使每个员工致力于他们自己应完成的工作。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: