1 你认为项目中最重要的是哪些过程? 分析、设计阶段(也可以加上测试,但千万别说编码或开发阶段),根据《人月神话》的观点:1/3 计划;1/6 编码;1/4 构件测试和早期系统测试;1/4 系统测试,所有的构件已完成。但根据国内目前的状况一般公司不会有很多的分析与设计时间(这取决于公司规模和时间成本),这样在一个工期很紧张的项目中我们应该尽量分配出进度优先级来,首先拿出客户最希望看到的和最能证明成果的东西来,其他的留待2期甚至3期去作,你可以告诉客户需要进一步调试(专业人员的欺骗手段,实际上就是在进行后续的开发)。 2 如果给你一个4-6个人的Team,那么你怎么分配他们、管理他们? 管理能力和经验的综合题,可能没有人有相同的观点,那你可以按照某些思路来侧面解答:我会挑选一个技术过硬的人作为我的替补和项目的轻骑兵,是团队中必须有机动人员,否则你的项目十有八九会夭折。其他的人会被平均的分配任务。我们会在每周进行全面的任务分配,每个人获取一周的大概工作,然后每天的工作由他自己完成并汇报。 3 简述常用的软件开发文档。 1)可行性研究报告(某些公司或模型没有) 2)项目开发计划 3)软件需求说明书(必有) 4)数据要求说明书 5)概要设计说明书(必有) 6)详细设计说明书(必有) 7)数据库设计说明书(必有) 8)用户手册(一般会有) 9)操作手册(必有) 10)模块开发卷宗 11)测试计划(必有) 12)测试分析报告 13)开发进度月报 14)项目开发总结报告 4 你认为一个项目如何进行才正确?(比如:尽一切可能快的完成任务或完全按照类似CMM 来操作) 根据林锐博士的观点:企业的根本目标是合法地赚取尽可能多的利润,使企业利益最大化。 企业所有的特定目标和行动都是围绕上述根本目标开展的,任何背离根本目标的行动都将对 企业造成伤害,应当杜绝。基于此任何人都不要强调我将严格遵守XX模式,带领团队开发出 具有XX等级的产品,企业需要的是能够带领团队按时、合格的开发出产品的Manager。 5 你经常看或仔细研读过的书有哪些? 不用回答你看过的课本,枚举几个经典的当然前提是必须真的看过至少浏览过主题和目录。 比如《Java编程思想》、《Java模式》、《人月神话》等,由于将来要做的是team中的替补 leader或真正的leader所以你必须说出软工的东西。 6 你认为你应聘我们公司的项目经理,你自身的优势在哪? 1)融洽,没有领导希望你带领团队每天打嘴仗然后他还要去开屁股(Sorry,这似乎不很文 明),你必须说明你能在以往团队中与其他人和谐相处。 2)技术,千万不要谦虚,对方要的就是技术过硬、能力出众的人才,你只需要说明你成功 解决过什么难题并且你对J2EE、XX中间件、XX系统有多么的熟悉。 7 工期和工作量之间的差异是什么? 工期是商业/日历上的天数,与人数和工作量无关。 工作量是与日历天数无关的人的工作。 例如:一天的工作量对于一个一只花50%在时间在上面的人来说,他的工期就是两天。如果两个人全职工作,工期是1天,而工作量是两个工作日。 8 怎样和为什么要在编制项目计划时考虑依赖关系? 根据使用的软件包,依赖关系可以通过将任务及其后续任务的标识符进行关联来表示。依赖关系说明了任务之间关联/并列的要求。依赖关系可以是指在另一个任务能开始之前有一个任务必须完成。例如,逻辑模型必须在物理模型前完成。但测试并不是要在所有编程工作完成之后才开始,如果没有完成的程序对线性测试没有影响。项目计划加入依赖关系,就能找出项目的关键路径并且能够确定它对项目工期的影响。 9 你怎样将人的工作步调与计划结合? 根据组织使用的具体的工具,可以将资源拆成更小的资源/单位,或者可以将任务拆成更小的任务。 10 你怎样将培训,假日和个人教育时间表结合起来? 每个产品都有标明不工作的天数的公司/全球的日历。每个产品都也有个人的资源日历标明个人不工作的时间。如果项目需要教育和培训,应该把它们象任务那样写在项目计划上。 11 你怎样安排类似状态会议这样贯穿整个项目但只需要极少的时间和工作量的任 务? 它的工期将和整个项目时间一样长,占工作量的百分比很小。被分配给任务的每个人花在该任务的时间占他时间的百分比极低。 12 实况报告对计划的作用以及实况与最初预计的比较有何价值? 根据组织使用的特定的工具,每个工具都为实况报告中输入相互独立的要素/域信息。也可以将报表进行分类,来向团队成员和其他相关团体说明关键路径的变化或时间表的调整。这些报告对已实现工作评价和作为在计划下一个工程或阶段的输入有价值。另一个把估计和实况报告比较的有价值的用途是把范围变更对项目的影响记录下来。 13 你为什么制定项目计划? 项目计划是实现成功的系统的路线图。它提供了一种手段来通知每个人希望他们做什么及何时完成。它帮助项目经理使管理层,商务用户和支持团体了解项目状态和调整特殊的资源。逐项列记的“一览表”协助对任何变动的影响进行迅速评估。当实况报告与计划联系起来后,项目计划为今后项目的任务划分和估算提供了有用的信息。 14 你将怎样着手做项目的计划? 进程安排是一门艺术。根据已知有关业务目标的事实,公司一般标准,以及可以利用的过去的经验。可以从清楚地定义范围和目标开始。把项目的风险和制约做成文件。差的估计源于对业务知识和项目范围缺乏了解。可以从项目任务分解入手,例如先划分阶段,然后定义每个阶段的活动,再定义每个活动中的任务。识别和文档化里程碑和可交付产品。项目计划是当信息变得可以利用的时,不断细化的有生命文件。很好地记录进度的变化对项目经理,开发团队,支持团队,以及管理层,商业用户都有益处。 15 你将怎样着手制定项目计划? 在适当的活动和阶段或其他的概括的标准说明下,输入确定的任务。将适当的可交付产品及里程碑和特定的任务联系起来。连接全部需要依赖关联的任务。把资源角色或资源名字加到每个任务上。应用度量结果确定事先的任务工作量,把更多的时间用于需求收集,设计和测试。考虑所有已知的节假日,培训,休假或其他的资源停工时间。计划草案将同支持团体,管理层和商务用户一起复查,做为补充性的输入和最终的批准。 16 怎样确定人员需求? 不考虑资源限制进行计划开发。在任务旁边加上诸如数据模型制作者,业务分析员和用户等角色。再加上能将任务重叠起来的补充性的资源。在计划中要考虑开发团队包括支持团队和用户代表失去一个或多个资源的情况,要在每个任务上增加15%的余量。要使项目小组的组成容易理解,要有角色所必备的技术水平的说明。 17 给项目加上测量标准有什么价值? 如果使用得当,测量标准是一个有价值的工具。它们提供测定开发系统的复杂性和工作量的方法。度量结果为制定项目计划提供了信息输入资源,并且是确定发展方向的有价值的历史信息。软件测量标准将有助于开发更好的软件。不过,最好有3年的历史资料。 18 你怎样在计划中运用新技术? 在增加培训任务的同时要扩大工作量,缩小每个工作单元。在评价新技术在开发中的影响的过程中加上额外的原型和检查点(里程碑)。 19 你作为项目经理要做的第一件事情是什么? 除了注意公司的发展方向并从中发现自己的发展道路外,在头脑中要建立项目经理所关注事物(商务,公司,项目,团队,个人,技术和方法论的变化)的优先顺序。因此,和部门经理开会确定优先顺序,安排用户和职员会议,得到全部成员的状态报告和评价。重要的是能尽快处理业务,项目和个人有关的事情。 20 当你的职员减少了30 %你将怎样着手完成公司的项目? 首先,确定和区分项目的优先次序,哪些项目是必须在今后的18个月内完成的。把绝对的最小的总人数与每个项目联系起来。向管理者和用户说明对进度表的影响。因为两者都也许不愿意接受进度表的变化,因此或许可以给你一些例外。减掉顾问比去掉一个雇员要好。每个项目的顾问也许可以用雇员代替。坚持运用学习曲线理论并逐步减少顾问人数。可以把一些顾问的工作从一周降低到一星期中的2或3天以应付人员削减。如果公司有提前退休的一览子法案,赶紧寻找一些有资历的、适用的雇员。牢牢记住失去“老资格的人”你也许就失去了有价值的知识。尽可能将一个快退休的人和新手组合在一起。以满足业务目标为前提,确定剩下员工的重要性以及他们在每个项目中的重要性。使新手和经验丰富人员的比例适当。两者都是确保项目和公司不断成功的财富。 21 你的团队主要是由新手组成的,并且进度已经落后。你将做什么? 需要记住一个项目很少因为在截止时间内没有完成而被取消的。项目被取消,主要是诸如缺少资金,用户支持或不能满足的业务目标。因此,要做的第一件事是培训,无论在室内还是室外,在课堂或通过录像带。另一种附加方法就是让资深的雇员或高级顾问充当教师。举办针对个人评估和辅导的会议。帮助每个员工准确评价他们各自的优点和缺点。同时明确任务,将所有必须遵守的标准或准则阐述清楚。为每个员工提供从成功项目中得到的模板作为指南,还要允许他们发挥自己的才能。如果需要,和他们一起工作。对任何问题或完成的任务做出迅速的反馈。对于较大的任务,看看他们的计划,有助于确定他们是否了解任务的范围和目标,以便了解他们是否能完成任务。倾听员工的观点,也许他们会有完成任务的正确的方法和途径。然而也要防止雇员陷入挫折和士气低落的困境中。 22 你将怎样和与你竞争相同职位的员工相处? 这是经常发生的不愉快情况。雇员总是认为他们能胜任某个职位而管理层还没 有意识到这一点。因此,要进行如下调查:发现员工的管理能力、阅读评估和状态报告。 当雇员变得不合作时试图发现一些变通的方法并且针对这种状况进行一些个人谈话,谈 话内容包括:弄清楚状况;与员工一起分析他/她具有的能使他/她得到提升的资历;强调在 初期协作的必要性和管理层是如何高度重视合作关系的。 问题17:在决策和工作风格方面你会给你手下多大的自由? 答案17:自由的大小取决于每个人的技能和专业水平。一个好的经理是“面向结果的” 并且能创造一个能使团队广泛交流的环境。无论如何,每个员工每周需提交项目和商业目标 有关的状态报告并且经理要进行审查。这有利于加强组织建设并使每个员工致力于他们自己 应完成的工作。 23 如何对待即将退休的员工? 即将退休的员工能提供大量的信息。一个人在把所有业务知识和关系网拒之门外时必须三思而后行。因此,要利用这些人的能力:他们在某些特殊技能方面可以作为新手的老师。明确主要的工作利益,要使项目能充分利用这些技能,可以利用他们从非正规途径得到的必要支持(不用通过正规的,官僚的途径完成工作) 24 对一个一贯迟到的员工你会怎么办? 好的经理是通过结果与所花时间来评价一个员工的。然而,还需要了解迟到会在公司和团队中造成什么影响。一个人经常迟到人们会感到领导在徇私并且会影响团队的士气。这个人也许可以按期完成自己的任务但可能会影响到别人的进度。职业特性包括可靠性。如果别人的工作进度取决于他们的工作进度,那么,他们的进度对于整个团队就很重要。首先判断这些员工的模式。换句话说,是偶尔还是一贯如此。其次,明确公司有关考勤方面的政策,确定迟到及其相关处理方法。要了解该员工的工作是否与进度相符并了解与他一起工作的人对他迟到的反应。最后,必须与他们进行客观的谈话,谈话的主题包括:公司的规章制度、对团队的影响、对个人评价的影响、强调时间进度、达成谅解。 25 在费用削减的情况下,你将怎样鼓舞士气? 钱不是仅有的激励因素。人们需要了解他们是否对项目有积极的贡献。因此,要强调拥有的自豪感并且举行业务会议,在会上让用户谈谈他们对项目组的良好印象。同时,让用户对他们的功能和业务提出一个概括。培训是一个激励因素。因此,状况会议可以作为一个非正式的培训课程。不定期地举办有关新技术的内部研讨会。如果培训课程费用太昂贵,可以租赁技术录像带。订阅杂志,有许多技术杂志是免费的。必须记住的是,忽视培训将使团队的精神低落。这样会影响产品的质量和数量。 26 你如何雇人? 首先做一个工作所需技能的描述。如果你不了解现在的需求就很难雇到合适的人。接下来要了解团队成员的个性。列出团队现在缺乏的技能或工作风格。与人力资源部门讨论所有这些情况,包括调动现有员工。当候选人到来,针对现有工作进行面试,同时还要了解他是否具有新岗位所需的技能。 27 你将如何解决团队中的个人冲突? 辨别出人的不同个性。分别向员工表述每种风格的价值。当与冲突双方讨论试图分析申诉或冲突的原因时应持有客观的态度。 28 你将如何监控/管理顾问? 顾问也是人,也需要得到尊重。他们还需要明确的目标和任务。坚持做工作周报,将工作时间和工作完成情况联系起来。 29 你将如何管理外援? 和管理顾问的方法相同。不过,他们可能有一个经理来负责外包合作。首先要和这个经理一起组织日常会议。坚持做工作周报和可交付产品的拷贝。 30 你将如何同一个似乎总是不能按时完成工作的员工一起工作? 直到找到问题的原因时,问题才能解决。原因不一定是分析问题或解决问题的能力差。可能是一个管理方面的问题。该员工可能没有得到适当的培训,他的工作可能超出了他的能力范围。另外一种可能是这个人有太多的事情要做而且这些事情都是最重要的或者他不清楚交付日期。如果不是上述原因,要注意观察,找出原因所在。例如当所有人遇到问题时,都会找这个人。那么,这个人的工作经常会被无数次地打断。 检查: 典型活动:交付后的三到六个月对目标成本,开发工作,可见/不可见收益进行检查。 典型交付:实施总结报告。 31 制作原型应该在项目生命周期的那个阶段? 贯穿整个项目。眼见为实。因为它是验证功能,业务规则,用户需求数据和测试的一个好工具。值得注意的是,原型不会成为粗制滥造的产品。原型需要较好地维护。原型应能在过程和数据不完全的情况下,显示各个窗口和窗口间的导航关系。 32 在项目生命周期中,基于客户端/服务器端开发与基于大型机开发的区别是什 么? 基于客户端/服务器端开发的项目需要额外的任务编制各部分的计划。各部分计划中必须包括对事件,数据和网络位置的检查。必须根据用户的要求决定服务器/客户端的分布。在服务器/客户端环境中,要运用外观建模技术和制作图形界面的原型相结合和方法。 33 在一个维护项目中如何管理和保证质量? 维护本身就含有负面意义。许多公司认为维护工作是不好的,第二位的。费钱的,并且是对现有应用的不断修改。必须懂得维护也有它的生命周期。因此,应建立一个围绕维护活动的控制和质量工作的计划。新的开发计划包括交付产品和每个任务分配的时间。项目计划应考虑到需求变更的情况。这样可以使项目经理和用户看到变更对项目进度的影响。 维护阶段/活动有: 变更的确定(是否会造成产品问题,是否增加了新的功能,或技术平台的变更) 正式记录变更, 变更确认并初步估计变更的大小, 对现有变更进行优先级排序, 变更分析, 对变更进行编程, 对变更和变更对系统产生的影响进行系统/回归测试, 用户确认变更, 产品递交, 生产。 34 面向对象的开发与传统的开发方法在管理技术上有什么不同? 面向对象的项目团队人员较少,团队成员不需要有太多创意。重要的是技术和个人的角色。每个成员需在项目的不同阶段承担不同的角色。因此,每个成员必须了解他们自己的优缺点。围绕一个或多个人员的角色有:设计师(系统的整体结构)、抽象工程师(类和类族)、应用工程师(完成和组装类和类之间的消息) 由于传统的开发方法,个人角色是不能互换的。软件开发是个人的努力的结果。即使是由最优秀的,最聪明的人组成的团队,如果他们不能为共同的目标而工作,那么就是最简单的项目也不能成功完成。 35 你如何在处理雇员关系,项目管理,文本工作之间分配时间? 人是最宝贵的财富,因此需要花费最多的时间。然而,项目经理必须关注事物的次序应该是:商业目标,公司的目标,项目,团队,个人,技术和方法的变化 36 什么是PM-CMM? 人员管理能力成熟度模型。PM-CMM和CMM都是卡内基.梅隆大学的软件工程研究所开发的概念模型。PM提供了人力资源管理的组织方法。五个层次是: 随意的:人员管理没有连贯性, 可重复的:组织在人员管理方面有一些政策方针, 明确的:将人员管理与业务特点相结合, 可度量的:对人员管理可进行目标量化, 优化:有组织地致力于不断地提高人员管理水平。 37 生命周期是什么,它的作用是什么? 一个开发或维护生命周期是描述一个特定项目的开始,中间环节和完成的方法。一个生命周期包含了完成特定目标的所有步骤,任务和/或活动。每个活动可能有一种特定的方法。例如,制作数据模型可能会按照James Martins建模方法。对象建模可能会采用Ivan Jacobson方法。生命周期通过运用所有方法来完成业务目标。 38 描述你的项目计划中应包括的阶段、活动和可交付产品。 项目计划中应包括如下阶段(不是以瀑布/线性次序): 项目管理: 典型活动:很多人忘记加入诸如开发和维护项目计划,状态会议和报告,评估的资料收集和汇报,制作演示资料和向上级和用户进行演示等诸如此类需要花时间的,内部的项目管 理活动。 典型交付:项目计划,状态报告,评估报告(例如:有多少个功能点) 需求分析: 典型活动:范围定义,成本利润初步分析,建议。 典型交付:范围文档,物理和逻辑分析,实体关系图,成本利润分析,商业规则申明, 任务定义和概要说明。 设计: 典型活动:建立开发和测试环境,制作逻辑模型,技术系统设计,执行计划。 典型交付:逻辑数据模型,事件模型,对象模型,网络模型,物理设计,适合开发环境 的规格说明,经过修改的规格说明书,测试计划,流程图。 开发: 典型活动:编码,单元测试和制作用户文档。 典型交付:测试说明书,过程手册,程序。 测试: 典型活动:软、硬件测试,线性测试,系统测试,集成测试,回归测试和平行测试。 典型交付:测试结果,问题报告和跟踪纪录。 实施和支持: 典型活动:第一阶段成果打包;培训。 典型交付:问题报告过程。 39 假如某一项目的工期特别紧,而公司现有的资源又比较少,你准备怎么办? 答:首先缩减一些优级先低的功能,做出具有核心功能的,可以运行的产品,让用户看到我 们的工作成果,为项目争取机会和时间。然后,分解项目任务,找到可以优化的路径,与公 司高层沟通,得到支持,以使用项目得以继续进行,直到成功结束。 40 一个项目经理所做的工作主要有哪些?一天的工作内容是什么? 答:早会,分解任务,分配任务,解决问题,跟踪项目进度,风险预测,风险控制。 41 项目经理的能力和职能? 项目经理最重要的是协调沟通能力和组织能力,能够安排合适的人到合适的位置,制定较完备的项目计划方案,让项目组成员清楚了解各自的职责、工作量及时间安排,遇到困难能准确找到问题的关键点迅速组织人员解决之。项目经理不一定要技术最好,但技术好的项目经理在进度推进困难的时候将起到很大的作用。 42 结合人、成本、功能、质量和进度这五大因素怎样管理好一个项目? 以人为本这是前提,只要保证将合适的人各就各位,这为项目的成功奠定了良好的基础成本、功能、质量、进度是矛盾统一体,要想以最低的成本按进度要求的完成一个功能完备、质量高的项目,这多半是理想状态下的情况,真正的项目实施之后很难达到这个要求,所以,我们必须在做项目分析和做实施方案时,做一些取舍。首先严格控制成本,这是做一个项目的最终目的,我们需要盈利,亏本的生意我们不做,除非我们的项目组是无需盈利的机构组织;进度与成本成比例,进度越快成本越低,所以保证进度是控制成本的手段。 其次项目质量和功能,已定义好的必要功能是一定要的,多余的内容尽量暂不考虑,在设计之初多考虑一下系统的可扩充性,设计一个易于修改和测试的系统,严把测试关是保证项目质量的有效手段,一个项目最重要的是在设计阶段要尽量考虑全面,这对项目经理来说,经验很重要。 简单总结:首先考虑成本,然后再对其他4项做出取舍,在项目整个过程中,根据进度适当调整。当然最好是能以我们最理想的情况下成功的完成整个项目。 43 项目实施有哪些主要阶段,每个阶段应该提交什么成果? 1.需求分析-------提交《项目需求说明书》,并得到双方认可。 2.系统设计-------提交《体系结构设计书》《数据库设计书》《界面设计书》 《模块设计书》,均通过审评 3.实现和测试------项目得到成品,并按《项目需求说明书》要求测试完毕,解 决了所有已知问题。 4.结项阶段-------客户验收通过。 5.具体实施和维护阶段--实施成功,并合同要求进行维护 44 如何识别和控制风险? 以后经验和收集到的资料对项目中将遇到的风险进行预测,对各种分析进行分析评级,设置风险系数也就是风险可承受范围,然后针对各个风险列出降低风险各种方案,确保风险真的来临之时,有可用方案应对。我们无法完全规避风险,只能把未来的风险控制在尽量低的范围内。 45 需求变更管理的手段和与客户沟通的手段? 项目开发过程中,需求变更是不能回避的问题,我们需要一个正规的变更文档来定义每 一次变更,并保持各个阶段文档的一致性,避免混乱。 对于需求变更应得到客户在开发成本和进度的认可情况下进行,而不是一未满足客户, 导致严重超支延期。 变更这对项目开发一方是很头痛的问题,变更应该有所控制,在双方相互协调、认识统 一的前提下进行,与客户的沟通尽量采用可见的通俗易懂的方式方法进行。 但在必要的情况下,应该采取对客户进行相关专业知识的培训手段,避免不合理的要 求。