软件项目经理面试指南(推荐8篇)
软件项目管理题
1.范围、时间,成本,这三项中哪些是可以由客户控制的?
范围、时间、成本,是项目管理中常说的三角关系。任何一方改变都可能牵扯到其他两方的变动。项目管理的本质,就是在保证质量的前提下,寻求这三者之间的最佳平衡。因为客户是需求方和投资方,客户有权对这三者进行控制,当然客户主要控制范围,即提出他们的需求——项目要实现的功能特性,其次,客户也非常关心能交付的时间和所付出的成本。在满足客户的需求情况下,可以在时间、成本上和客户进行交流、谈判。从项目管理的角度看,最好固定其中一项,其他两项可以根据实际状况来调节保证项目质量。
2.谁该对项目中所要付出的一切做出估算?谁有权设置最后期限?
项目成功是团队协作的结果。在对项目进行估算的时候,需要由参与项目各个环节的人进行符合实际的估算,最后汇总起来进行综合分析计算,获得项目总的估算结果。
项目的最后期限设置除了客户定死最后交付时间,其他的情况都是根据项目的进度估算结果而进行符合实际的计划得出的。
3.减少交付的次数,或是减少每个每个交付中的工作量,你喜欢哪种做法?
根据项目的类型和项目进行中的实际情况来决定,如果项目是规模比较大,时间长的,那么就应增加交付次数或者减少每个每个交付中的工作量,以便及时考察项目进展,保证项目进度。例如,一个项目按计划进行到第一个里程碑发现项目进度明显落后,而下一个检查点(也就是交付的工作量)距离还很长管理层需要及时了解其进展,那么交付的次数的就要根据现在的时间状况来增加。反过来,如果这个项目的进度非常好,甚至超前,而下一个检查点(也就是交付的工作量)距离还很短,我们就可以减少交付次数。
在传统的软件项目中,开发周期比较长,往往减少交付的次数,更好地控制质量;而现在,有一部分公司比较倾向于敏捷方法,喜欢减少每个交付中的工作量,交付周期只有几周时间(最短的周期,可能是一周),拥抱变化,更好地、更及时地满足用户的需求。而对互联网上的 web应用软件开发,“减少每个每个交付中的工作量”是一个比较好的策略,力求及时获得用户的反馈,将用户的需求及时融入新的版本,及时发布出去,赢得竞争市场。例如,在我新书《软件工程导论》中专门有一节讨论“永远的Beta”的软件工程思想。
4.你喜欢用哪种图来跟踪项目进度?
还是要根据项目的特点来决定,具体项目具体对待,当然,有时也不能由自己决定,而是取决于公司已有的工具和习惯。对于复杂、规模大的项目,可能要借助甘特图和网络图来分析和跟踪进度。简单、规模小的项目根据进度报告百分比和表格跟踪就可以了。
5.迭代和增量的区别在哪里?
软件开发不是一躇而就,其过程犹如雕琢一件工艺品,由无形到有形、由粗到细,很难一次就能开发出功能完善、强大的一个版本,而往往是分阶段进行,一个版本接一个版本的发布出去。软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。
增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分,先开发主要功能或用户最需要功能,然后,随着时间推进,不断增加新的辅助功能或次要功能,最终开发出一个强大的、功能完善的、高质量的、稳定的产品。
迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分,先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然后,随着时间推进,不断细化已有的功能或完善已有功能,这个过程好像是一个迭代的过程。最终的目标是一致的,也是为了实现一个强大的、功能完善的、高质量的、稳定的产品。
举一个例子:假设现在要开发A,B,C,D四个大的业务功能,每个功能都需要开发两周的时间.则对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成A,B功能,第二次增量完成C,D功能;而对于迭代开发来将则是分两次迭代来开发,第一次迭代完成A,B,C,D四个基本业务功能但不含复杂的业务逻辑,而第二个功能再逐渐细化补充完整相关的业务逻辑.在第一个月过去后采用增量开始时候A,B全部开发完成而C,D还一点都没有动;而采用迭代开发的时候A,B,C,D四个的基础功能都已经完成.6.试着解释一下风险管理中用到的实践。风险该如何管理?
风险管理的实践很多,包括头脑风暴、风险列表(checklist)等。例如,人们常采用十大风险清单:在项目进行中,不时地更新和处理项目当前风险最高的前十项风险,以保证项目不脱离主轨道。因为项目中的风险大大小小会很多。十大风险清单就是抓住重要的风险及时处理,而又关系的小风险可能也就随之消失。从这里可以看出,风险也是动态的,需要经常地、及时地评估当前的风险,例如每周或每两周进行一次风险评估。
风险管理就是通过风险的识别、预测、估算和衡量、选择有效的方法和手段,对风险进行预防、避免、降低或者转移的管理过程。
7.你喜欢任务分解还是滚动式计划?
根据项目特点来定,一般会选用任务分解的计划,责任清楚,可控性更强。滚动式计划的灵活性比较强,适应性比较好,但容易引起大家对计划不够重视,计划能力降低,或者可控性会差些。有时会将这两种方法结合起来使用。
8.你需要哪些东西帮助你判断项目是否符合时间要求,在预算范围内运作?
前提是这个项目的进度计划和成本计划是符合项目实际情况并不断随着项目的时间发展而滚动更新的。
确保收集的进度和花费的成本就真实可靠的。
在此时项目的范围没有影响到时间和成本的规划。
那么就可以根据项目时间与计划的内容进行对比来判断项目符合时间要求,在预算范围内运作。常用的方法有基线对比法和挣值法。
9.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)是与非
10.如果客户想要的东西太多,你在范围和时间上怎样跟他达成一致呢?
首先要向客户说明,如果在某个时间内去做不可能完成的工作,其结果必然是质量得不到保证,或者所化的成本过大。应该没有客户想做赔本的生意,每个客户都会重视质量,而不愿意损害自己的利益。
然后,和客户一起,按需求重要性、紧急性等对需求进行分类,分为不同的等级,然后从优先级高的需求开始,来估算不同优先级类别的需求实现的工作量。设定几个不同的开发周期或交付时间,从而由用户作出选择,例如:
(1)只做优先级最高的那类需求,开发周期需要3个月;
(2)做优先级最高和优先级高的那两类需求,开发周期需要7个月;
(3)做优先级最高、高和中等的共3类需求,开发周期需要12个月;
我们都知道研发项目经理是企业进一步发展的核心动力,但由于各方面的制约,做好研发项目经理很难,笔者调研后认为有如下主要原因:
一、项目经理职责定位不明确
在企业里,很多项目经理是身兼数职。一个人的精力是有限的,如果一个项目经理对自身的职责定位不明确,把有限的精力花在“无限”的事情上,“十个指头按跳蚤、眉毛胡子一把抓”,其结果必然是“捡了芝麻丢了西瓜”,不但是项目管理没做好,技术也没有做精。
二、项目经理职责权限不明确
项目经理职责不明确,有责少权,或有责无权、有名无实,以致项目经理成为一个项目协调员、救火员,无法有效对项目组进行领导和管理。二是项目经理与职能部门经理的职责权限划分不明确,项目经理或是某职能部门经理的下属,或是其它部门的人员,其拥有的职责权限没有文件或制度规定(或不明确),项目出了问题无法(权限不够)统筹解决,无法及时处理或经常扯皮。
三、项目经理任职资格不明确
在企业里,项目经理是率军作战的统帅,是企业长远发展的战略人才和应用型人才,对项目经理的合理选拔是企业可持续发展战略的重要组成部分。其实,很多企业并不知道一个项目经理应该具备哪些基本技能和素质,只是根据个人喜好或行政指派将一些不愿意或不合适的人送上了项目经理岗位,或是照抄照搬其他公司的一些做法和经验,无法有效的选拔和培养合格的项目经理。
四、项目经理受到权威的挑战
在企业里,项目经理作为项目的执行主体,是项目责任人,是公司法定代表人在项目上的全权委托代理人和主要决策人。在项目执行中,他应该是绝对的权威。对外,代表了公司的形象和决策主张,对内则是项目组的最高指挥者,拥有着绝对不可受到挑战的地位。但在很多企业,项目经理大多是由中青派技术人员担任,各方面能力难以服众,经常会遇到一些老资格、上级、学霸的挑战,工作阻力大。
五、项目团队内部人员不稳定
人是项目执行的关键因素,也是最难确定的因素。在项目执行中,项目团队内部不稳定会直接影响项目的开展。比如说为了培养一个项目团队,项目经理乃是煞费苦心,但在“革命尚未成功”之时,有些项目成员却“另寻明主”或另攀高枝(离职、换岗、换人等),新人到位又要有个过渡期,而且中间的工作衔接不一定到位,等等。在这种情况下,人的不确因素给整个项目带来的影响就达到了无法忽视的程度。
六、项目管理缺乏规范与控制
在项目执行中,缺乏严格的管控制度,以及技术、市场反馈机制。在实践中,重总体计划,轻中后期管理;重总量控制,轻分项目管理。造成项目的实际效益与预期目标相差甚远。另外,由于项目实施过程中缺乏相应的过程评估机制与风险预警机制,相关信息没有对决策部门及时有效反馈,造成项目管理的灵活性不足,导致项目对环境应变能力较差,最终影响项目目标的顺利实现。
从以上问题可以看出:如何结合企业实际,建立行之有效的项目管理体系、如何确保项目管理体系建设的可操作性等问题,就是摆在我们面前的重要问题。笔者认为,要做一个成功的项目经理,保障项目管理的顺畅进行,需要从以下几个方面进行改进:
一、建立全流程的项目管理体系
新产品开发是一个跨部门的系统工程,因此要将项目管理与新品开发流程有效结合起来。由公司决策层组成产品策划团队,对公司产品进行战略规划,在产品开发上形成共识,然后交给产品调研团队,由产品调研团队通过对市场、客户、竞争对手、技术发展趋势以及现有产品组合的情况进行调研分析,规划产品开发方案和产品的生命周期,提出总体的开发路线,设置开发流程,然后由产品开发团队实施具体的开发活动。产品开发团队的开发活动是既有纵向又有横向的跨部门矩阵式的活动,技术团队是其中的主力团队,但技术团队必须和其他部门队员协同工作,融为一体组成产品开发团队。
二、建立跨部门的项目执行团队
建立跨部门的项目团队,集中办公是最有效的做法。项目执行中有很多工作需要大家不断的讨论,如早期的产品需求调研分析,项目设计是否适合产品定位、是否有竞争力,产品创意、产品卖点技术实现是否有难度,等等,都需要销售人员和设计人员进行大量沟通。又如在方案设计过程中,选用的关键物料是否存在采购风险、物料供货是否够快,是否存在可生产性、可维护性方面的缺陷,等等,需要设计和采购、生产、服务等部门人员进行充分沟通。如果通过电话、邮件、开会等方式沟通,都不可避免的出现电话沟通双方理解偏差、邮件回复不及时、开会总有人来不了等情况,造成沟通效果差。通过建立跨部门的项目团队,集中办公,工作人员可以随时沟通,及时发现问题、解决问题。
三、明确项目经理的职责和权限
项目经理首要的责任就是确保项目在预算范围内按计划保质保量完成,达成项目目标,使客户满意。因此,项目经理的基本职责就是领导项目的计划、组织、管理和控制工作,以实现项目目标,以及对项目组成员的工作绩效进行考评。因此,公司应对项目经理进行充分授权(主要是项目日常管理权,重大决策权依然在上级),赋予项目经理对项目成员绩效考核的建议权,以便其能及时、有效地解决项目管理及执行过程中的问题和冲突。同时,还要明确项目经理与职能部门的职责关系,项目经理主要负责对项目的管理,职能部门主要负责向项目提供资源(合格的人员、技术支持等)及人员培养。
四、建立完善项目绩效考核机制
项目的考核与激励机制,是项目执行中的关键因素,要将项目经理、项目组成员以及相关人员的利益与项目的成功有效的统一起来,考核指标应定量与定性相结合,并以定量为主。项目经理和项目组成员要签有个人承诺书,承诺书中的指标通常包括项目任务及时完成率、成本、交期、工作态度以及团队精神等。由于项目经理通常没有太大的权力对成员进行物质方面的激励,因此,项目经理应善于激励——非物质激励方式就特别重要。比如可借助项目可填补国内空白的特性,对项目成员的工作成绩及时予以认可,最好是提名表彰,如在上级领导或客户面前对项目团队或具体成员作出正面评价,等等。
五、提升项目经理的能力和素质
项目管理是一项系统工程,对项目管理的学习也是一个长期的过程。项目经理要认识项目管理是一个职业方向,要经常研讨调查,了解项目管理实践和知识,分析自己的能力,并与同行的标杆比较,发现自己的不足,从而有计划地提升能力。通过学习和实践,进一步完善自己,与时俱进地掌握项目管理方法和技巧,并在实践中运用自如,如此进入反复循环的过程。对于企业来说,可通过项目带动、博士带培和出国研修等方式,建立项目经理任职资格和培养机制,提升项目经理的能力。同时,项目经理还要不断提高自己的职业素养和人格魅力,使自己成为圣明的“君主”,方能引来各路英雄投奔旄下,与其“同甘苦,共命运”。
回答:我个人认为,第一是公司的发展方向以及企业文化,第二是公司的管理制度和薪酬体系,第三就是对于自身发展是否有提升的空间
2、你是否遇到过付出的努力低于自己的预期,如果有,你是怎样处理这件事的?
回答:这种情况我曾经遇到到。第一,我会找自身的不足,确定一下是否是因为自己自身的计划或是执行力出现了问题,有些努力没有付出。第二,我会找外界环境的原因。是否是一些自然的不可避免的因素导致我在规定的时间没有达到自己的预期。第三,我会想到是不是这次定的期望略微有点高了,如果我真的付出了同时没有其他因素影响,我想应该是我的期望过高了。通过不断的经历,我会积累很多经验,使我能够弥补自己的不足,趋利避害,明白天时地利人和的重要性,合理为自己定位。
3、你怎样影响其他人接受你的看法?
回答:影响其他人接受自己的看法,首先,要全面了解他人的看法,充分肯定他人看法的正确面,全面分析欠缺面,在吸收别人的精华上,融入自己的观点。没有100%的正确,也没有100%的错误,再好的观点都有不足,再坏的见解都有可取的地方。影响他人必须先学会接受他人。
4、上下级之间应该怎样交往?
回答:我认为:上级在处理与下级的关系中,应该不仅是领导下属,更应该注重人性化管理,多倾听下级的意见,与下属交流,从中得到有用的信息,以便更好地管理。
下级在处理与上级的关系中,首先是尊重领导,服从管理,在上级的领导之下,充分发挥自己的能动性,尽可能地把自己的工作做好,把自己在工作中总结的得到的相关信息应及时反馈给上级,在对上级的决定有异议的时候,应敢于用正确的方式,把自己的想法传达给领导,为公司贡献出自己的力量。最后就是就是要虚心接受领导的批评和建议,不断提高自己。
5、你对太阳能行业了解吗?你怎样看待这个行业?你认为我们公司进一步成功的关键是什么?
回答:对这个行业还算了解,作为新兴行业,太阳能行业得到国家的大力支持,在这方面的投资和优惠政策也是非常的多,另一方面,这个行业本身的发展也是符合社会的发展的,现在不仅欧美国家对太阳能产品的需求很大,亚洲等国家包括中国在这一领域也不断有技术创新和产品需求。我觉得贵公司进一步成功的关键在于产业链的拓展,太阳能行业本身的限制在于产品链的过于狭窄,若贵公司能在科研和技术创新方面投入更多的资金和人才,我相信必定会成为行业的领头羊。
1.项目经理行业常见面试题
2.项目经理面试题
3.项目经理常考面试题
4.编辑行业面试题目
5.金融行业英文面试题
6.行政行业面试题有哪些
7.销售行业面试题精选
8.人力资源行业面试题汇总
9.J2EE高级工程师、项目经理常见面试题
2.请说明投资项目管理,建设项目管理,企业管理的联系与区别?
3.工程项目的唯一性对项目管理有什么影响?
4.请分析在国际经济合作公司与工程承包公司中项目管理在企业管理中有什么重要地位?
5.建筑工程项目与科研项目,技术革新项目,新产品的研发项目的管理有哪些不同点?
6.项目目标和项目管理目标有什么联系和区别?
7.在一个工程建设项目中,业主,承包商,监理工程师,供应商的项目管理的工作内容,范围有哪些不同?
8.分析题:某领导视察某地长江大桥,看大桥拥挤不堪,则产生在该地建设长江二桥的构思。他翻阅了该地区的长江段地图,指示在大桥下游某处建设长江二桥,并指示作可行性研究。试分析该工程项目构思过程存在的问题。
9.分析题:在某中外合资项目中的参加者各方有如下目标因素:
外商:投资回报率,增加其产品中国的市场份额;
当地政府:发展经济,吸引外资,增加就业,增加当地税收,增加当地政府的收费,改善地方的形象;
法律:环境保护法要求的“三废”排放标准,税法,劳动保护法;
中方企业:吸引外资,对老产品进行更新改造,提高产品技术水平,增加产品的市场占有率,产品年产量,充分利用现有厂房,技术人员,工人,土地。
试分析:(1)在上述目标中哪些属于期望目标?哪些属于强制性目标?哪些属于定量目标?哪些属于定性目标?
(2)在上述目标因素中哪些之间是有紧密联系的?有什么联系?
(3)哪些目标因素之间存在争执?
(4)哪些目标因素可以用项目解决?哪些不行?
10.按照规模效益的要求,任何一个工程项目必须达到一定的规模才能有经济效益,但是工程项目的规模必须按照将来的市场需求确定,试分析,如果两者之间发生矛盾应如何解决。
11.一个企业上马一个新产品项目,该项目工程建设期3年,预计该产品的生命期为投产后5年,而厂房的使用寿命为50年。问如果您进行该项目的目标设计,您将如何设计项目的与时间相关的目标?
12.考虑在项目的前期策划阶段,战略管理和项目管理这两个层次有何区别和联系?它们在工作程序上应如何沟通?
13.考虑如何最有效地利用项目结构分解的结果(WBS)?
14.项目组织有哪些不足?如何克服不足,最大限度的发挥它的优势?
15.许多业主喜欢自己掌握工程材料和设备供应的权利,这会带来哪些问题?
16.合同种类对承包商的行为有何影响?
17.简述项目组织策划的工作内容和过程。
18.项目组织与军队组织,企业组织,社团组织的差别?
19.有人说“中国的传统文化适应集权管理,适合人治,不太适应矩阵式组织形式”。您认为对吗?为什么?
20.某项目型公司不足400人,同期承包不足8个小项目。企业经理在做管理组织设计时参照国外大型跨国公司的组织模式采用三维组织结构形式。试分析这个组织设计的问题及对项目管理的影响?
21.为何独立的项目组织被认为像微型企业?
22.如何达到项目/职能经理的权利平衡,减少权利斗争和矛盾?
23.论述“全包”对业主和承包商项目管理的影响及业主应注意的问题?
24.在中国,如果您是一个建设项目的业主,您是否按照FIDIC合同授予监理工程师全权?为什么?如果您准备限制他的权利,则限制什么权利?为什么?
25.简述军队指挥员,政府官员,企业经理,技术人员,市场营销人员作为项目经理的优势和局限性。
26.简述计划与目标的关系?
27.“计划必须符合实际”,这里的“实际”指什么?
28.在一些项目的计划过程中,人们常常使用过去实际工程的资料作为参照。这些资料在使用过程中应注意什么问题?
29.网络计划技术中“活动”和“事件”有何区别?试举例说明。
30.流水施工为何可以缩短工期?
31.某企业经过市场调查发现一个极有前途的新产品,企业也具备上马这个项目的条件,但企业缺泛资金。问可以采用什么途径解决这个问题?这些解决方式各有什么优缺点?
32.讨论:承包商如何才能减少自有资金的投入量?
33.“工期”和“进度”的联系与区别。
34.在解决工期拖延时应注意哪些问题?
35.列举反映进度的主要的指标?
36.有人认为,如果实际成本曲线在香蕉图中则工程成本没有失控。您认为,这个论断正确吗?为什么?
全面改薄项目管理软件快速操作指南
一、软件安装说明
1、软件下载地址:凉州区教育联络群(56108429)群共享,下载内容:软件包。
2、软件运行环境:Windows XP/7/8(32位及64位)+Office 2007/2010/2013(32位及64位),如是Office2003需安装Office2007文件格式兼容包(报表打印和Excel报表导出功能需要更高版本的excel)。
3、如windows和office非正常安装,从网站等下载的Ghost版/精简版,windows系统文件和功能,薄改软件将不能正常使用,建议重新安装windows和office(2007版以上)。
操作系统安装不正确,将出现以上错误提示信息。
4、薄改软件为“绿色版”软件,无需安装,解压缩就可以运行,使用方便。
2012年7月1日
第一节需求分析
需求分析在整个开发过程中占的工作量不算大(个人认为需求分析占整个项目周期的30%),但是产生的影响巨大。如果分析不够透彻,很容易使项目存在潜在的风险,甚至会伤筋动骨。虽然很多公司都明白这样的道理,但实际情况往往是需求分析人员通过调研报告形成需求分析文档(解决方案),然后在给非专业的客户进行确认(确认过程可能会忽略细节,很容易因为细节问题造成项目的伤筋动骨),确认后进入开发阶段。这样做会导致非专业客户的需求部分被乎略或不能及时的发现和解决。虽然是按照解决方案完成了功能,但是很可能造成客户不满意或不愿在需求确认书上签字等尴尬局面。我经历过几个不太成功的项目,其问题的根源都和需求分析有关。需求分析最要紧的是:搞清楚用户到底想要什么?如果这个问题搞错了、搞偏了,后面的步骤做得再好也是白搭。在搞清楚“用户想要什么”之后,接着要整理出功能列表,并筛选出大约20%的重点功能。这个步骤是我今天主要想介绍的,因为这个步骤和后续的各项开发密切相关。一般来说,功能筛选的依据有如下几个:
1、用户经常用的功能(比如创建模块、权限分配等)。
2、宣传的卖点(要能够超出同类软件,吸引眼球)。
3、和用户利益密切相关的功能(这种功能不允许出错,比如存盘功能)。这个筛选的过程要尽早完成,而且最好是客户、需求调研人员、项目经理、开发人员、测试主管四方一起讨论,以保证立场客观、观点全面。筛选出重要功能点后,其他人员的工作安排要“以重点功能为纲”。
第二节项目管理
如果是我负责的项目,在排项目计划时,就得尽量优先安排重点功能的开发/测试,而且要安排能力强的人员来完成。按照我以前的做法,重点功能编排计划至少得留出1/3的时间余量,以防万一(事实证明,几乎每个稍大点的项目都会出现万一)。至于非重点功能,尽量排到后面,安排能力一般的人开发/测试。然后,在项目进行过程中,肯定要有定期的例会。作为项目经理,应该主要关注重点功能的进度情况和风险情况。一旦项目有延期的风险,就从非重点功能开始裁减(俗称砍功能)。由于是裁减非重点功能,不至于产生致命的影响。
第三节编写代码
开发人员有几个通病:先做有趣或容易的功能,然后再做无聊或者繁琐的功能;对自己有兴趣的功能投入精力多,对自己没兴趣的简单应付。以上这些都是开发的大忌。作为一个职业的开发人员,不应该以自己的兴趣和喜好来决定开发的轻重缓急。正确做法应该如下:
首先得用主要精力完成上述所说的重点功能,而且要保证它们的代码质量尽可能好,尽可能方便维护(重点功能往往是经常有需求变更,经常被修改的)。对于重点功能中的“常用功能”,要保证时间性能够好(能快速响应)。对于“用户利益相关的功能”,要保证bug尽可能少(尤其是安全性、稳定性、健壮性的bug)。
至于其它的非重点功能,只要不出明显bug,有点小缺陷无伤大雅。
第四节测试
测试人员同样要把主要精力用于测试那些重点功能。对于“用户利益相关的功能”,多进行一些健壮性测试、稳定性、安全性等测试(比如测试保存大文件是否会出错)。对于常用功能,主要进行易用性和性能测试(比如拷贝、粘贴是否易用)。至于其它功能,只要进行普通的测试,保证它不出现明显和严重bug即可。
第五节产品演示
有些软件开发完之后,会搞一些Demo进行宣传。这时需要把重点功能的Demo进行较长时间的介绍用来增加软件的卖点,这样给客户的印象最深刻,效果最好;
下面是我个人理解的项目开发过程: 1.首先进行用户需求调研,先弄明白用户想要什么(如果有老系统,可以先参观老系统,看有什么可以改进的,有什么可以继承的)熟悉业务。还包括:系统应用的网络环境、应用范围、数据量的大小、使用人群等内容)需求调研完成后,完成系统用例图以及用户调研报告,然后根据调研,列出功能列表,同时区分重点功能和非重点功能。
2.调研完成后,进入流程分析,以流程图为主并画界面原型让用户来确认,如何使用等讲解清楚(这个过程中,会产生需求的变更),同时完成《用户需求
规格说明书》,并进行流程图和文档的评审工作。完成这些内容,可以说是一个软件系统的里程碑。
3.需求评审完成后,进行数据库设计和详细设计(流程图、类图、系统接口),此时形成的文档有《数据库设计说明书》,《详细设计说明书》,并完成评审工作。
4.设计完成以后,就要进行开发工作了。依据详细设计说明书,此时要先进行重点功能的开发,然后进行非重点功能的开发。在此过程中开发人员进行模块的单测,确保系统的可运行。在任务分配过程中,因软件开发是一个思想过程因此不太容易量化工作,所以在任务分配时,应把功能分的越细越好,达到颗粒(细化到按钮功能)的效果为最佳。这也是确保项目在工期内顺利完成的重要内容之一。
5.开发完成后,由专门的测试人员进行单元测试(国内由程序员完成)、流程测试、性能测试等。(还可能有第三方测试人员和用户代表的参与)。
6.用户测试。首先进行用户测试的培训,然后挑选部分用户进行系统的测试,此时一般会有开发人员进行现场的技术支持,使用用户尽快的熟悉系统的使用。
7.系统上线试运行。如果是大项目上线试运行是万里长征的第一步。
整体感觉:(7.4)
一、对项目开发的整体工作:
1、流程清晰、较全面;
2、重点、特点、步骤认知度较高;
3、有相关大型项目开发的经验及管理经验,由其是失败经验。
二、从整体工作需要的角度出发,仅是经验值,目前尚只能在项目经理位置,从前瞻性上没看出来,即对整体黑软件市场的认识尚未看出,或无!
参加工作以来,本人先后独立或主持开发过10几个企业信息化管理系统。其中,**电力有限公司的电费充值卡管理系统、**集团的人力资源管理系统以及移动办公管理平台,这三个系统运行以来深受使用单位的一致好评,为企业节约了人力成本,提高了工作效率。
本人对软件开发具有浓厚的兴趣,工作之余经常钻研技术,关注it技术的发展趋势。对业务需求分析比较透彻,在客户端界面操作的易用性上考虑得比较周全。工作至今,我从一个学徒成长为项目工作组成员,再到现在的项目经理,这几年的提升已让我具备了系统开发独挡一面的能力,而且已连续两年被评为企业优秀员工,这不仅是因为本人在工作岗位上长期都本着刻苦努力、虚心好学的态度,也是领导、师傅耐心教导的成果。
优点:本人具备丰富的工作经验、扎实的技术能力以及优良的代码编写风格,刻苦认真、虚心好学,对业务需求分析比较透彻,不仅能够独立完成任务,也能带领团队完成任务,具有良好的团队协作精神和沟通能力。
缺点:在带领团队完成项目的时候,有时会因为太过和善而显得魄力不足。
优秀的心理素质:
心理素质对一个项目经理太重要了,当然,如果你的心理素质很好,也许你不会感到这是什么问题。让我感觉,心理素质的一个重要表现是:面对重大的项目压力时,你的心理承受情况如何?
项目的压力来源很多,包括你的客户、你的领导,还有你的组员。你需要具有承受这种压力的巨大潜力,否则,你会手忙脚乱。
除此之外,心理素质还表现在你的思维、你的个性以及你的创新意识等等。想想吧,作为项目经理的你,太多需要承受了,太多需要思维了。
坚实的知识积累:
佛洛伊德著过《欲望决定命运》,我很喜欢。我暂时窃取一下,说“知识决定命运”,好像也挺有道理的。
中国是一个重视学历教育的国家,至少我的项目经理和程序员最低都是专科学历,事实是,绝大部分是本科学历。拥有了标志着知识的学历,我们有了选择的机会,确切的说,是被选择的机会。
我的`项目经理在努力学习PM-BOK,我的程序员在努力学习各种编程技术。他们都在努力改变命运,我真的很佩服很喜欢他们。
知识决定命运,同样决定着项目经理的命运。坚实的知识积累,当然我更多指跟项目经理职业相关的知识,会成为你项目经理职业生涯的坚实后盾。
丰富的经验:
我们在招聘项目经理时,常常关注工作经验。那是因为我们常想把培养的成本抛给别人,但我更喜欢培养,我认为这样更符合中国人特有的人情味,而且更让人放心,
凭什么辛辛苦苦跟你打拼之后,你却不给他发展机会,非要让他到别人那里找机会呢?
有丰富的经验注定重要,没有人会反对这一点。但我想说的是,如果你没有经验,不要气馁,谁生下来就做过项目经理呢。
更重要的是把握获取和积累经验的机会。一旦你有机会,不要轻易放弃,而要抓住机会,努力为自己积累经验。如果你恰好刚刚抓住这个机会,我建议你,仔细检查一下自己从事这一职业尚需修炼的内容。
领导能力:
我的老师曾经说过一句话“经理需要领导,经理正在领导”。我之所以没有彻底的问一问这句话的真正含义,我觉得自己来琢磨更有意思,而且随着时间越长,琢磨出来的意思越多。
我觉得意思应该是这样吧,项目经理需要领导能力,而作为项目经理也正在运用着领导能力从事领导工作。可见领导能力是项目经理必备的能力之一。
到底领导能力是什么?绝对不是管管人那么简单,我看过一本非常有趣的项目管理书籍《最后期限》(《The Deadline》),作者迪克马对管理描述的一段话很适合回答这个问题,大意如下。
项目经理做好领导工作,关键做好如下四件事情:1)选择正确的人;2)为他们分配正确的工作;3)保持他们的积极性;4)帮助团队凝聚起来并保持团队的凝聚力。
【软件项目经理面试指南】推荐阅读:
软件项目经理基本职责02-11
软件项目经理岗位职责10-08
软件项目总结免费11-15
软件项目需求分析01-18
软件项目人员组织分工07-13
软件项目合同范本07-14
软件项目实施计划方案10-06
软件项目施工总结报告10-16
软件项目管理小结10-19
软件项目独家合作协议01-26