问题
前面我们已经提到项目管理和项目经理是在国内最经常被滥用的词汇。很多软件公司把
项目经理和
开发经理混为一谈,忽略二者在专业领域之间的不同,让许多原本应该程序开发中大放异彩的资深程序员,去从事不擅长的沟通、交流、计划工作上去。
因此我们有必要看看项目经理在软件开发开发中的角色与责任(R&R),以及项目管理者这个角色是如何设计用来帮助确保软件开发过程如愿进行得。
项目管理者在非主线的软件开发流程就有了的第一个角色,他不参与“实际工作”。项目管理者这个角色是为了确保软件开发过程如愿进行而设立的。
项目经理通常和
开发经理紧密配合,建立开发流程、推动开发流程,并为流程划分轻重缓急。
开发团队中的角色群
PMI的PMBOK通过定义什么是项目管理,从而把项目管理的角色定义为项目经理。该定义如下:
“项目管理是将相关知识、技能、工具、技术应用到项目活动中去以满足项目需求。通过这些应用,并将项目管理过程划分为初始、计划、执行、监控、完成等阶段,以达到项目预期。项目经理就是负责达到项目预期的人。”
在软件开发中,项目管理者的职责是驱动工作按流程进行并完成之。从最早的需求定义阶段,到用户培训的结束之后,项目经理应该是贯彻其始终的角色之一。项目经理与开发团队和业务关系人一起工作,确保将要开展的工作符合客户需求,开发各阶段都按既定的时间框架进行。
举个例子来看,这可能是某个软件公司的组织结构图,我们可以看到项目经理在其中的位置:
每个角色都有他自己的责任:
领域问题专家 SME (Subject Matter Experts):领域问题专家带来需求的那些人。他们了解软件该做什么和流程该如何工作。SME的角色和其他角色有一些不同,随着不断有新的内部外部客户被引入来帮助系统设计,SME会经常变换。SME通常不是来自IT部门,除非方案是正在为IT设计的。通常来说,SME是那些从系统中获得好处的人。
功能分析员FAs(Functional Analysts) -功能分析员是个艰巨的角色,因为SME可能不太清楚如何实施某些技术能促进业务流程,因此FA需要从SME那里引导出清晰、简练、无任何歧义的需求。
方案架构师SAs(Solutions Architect) - 架构师负责将从功能分析员创建的需求分解成一系列架构和设计文档,以便其他团队可以根据这些文档正确创建方案。方案架构师通常也负责寻求能解决问题的适当技术。
开发负责人DL(Development Lead) - 开发负责人这个角色关注于围绕着SA的架构提供更详细的东西,包括创建详细的编程规范。开发负责人通常还要为那些需要了解某个概念或者遇到某些难题的开发人员提供最直接帮助。
开发人员Dev (Developer) - 他们是开发流程的心脏和灵魂,开发人员按开发负责人提供的规格书参与直接编码。
质检员QA(Quality Assurance) - 质检这个角色经常不讨好,因为他们在产品发布给用户之前要查找一切可能的错误。用尽一切可能的技术手段,包括校验数据输入范围、摆弄正式的系统、自动测试脚本,质检团队负责保证方案的质量,并且满足FA提供的需求。有时候QA有个更不讨喜的名字--测试员。
实施人员Deploy(Deployment) - 实施人员负责把所有编译过的代码、配置文件打包,然后发布到在特定的环境和系统中。实施人员关于让方案能被使用。最后,这个角色可能会包括自动的软件安装过程,或者只是简单的将文件拷贝到适当的地方,然后执行之。
培训人员Training - 培训的角色负责为系统,同时也为讲师或者在线培训准备文档,他帮助用户更好地了解系统是如何工作的,他们可以做些什么。
项目经理PM(Project Manager) - 项目经理负责确保项目的持续性报告、风险防范、时间表、和成本控制。项目经理是个问题解决者的角色。他们试图把问题扼杀在摇篮里,以便能多快好省地解决它们。
开发经理DM (Development Manager) - 开发经理负责管理冲突项目间的轻重缓急。开发经理同时也负责那些无法在团队内部解决的问题的申告。
这样的团队角色不唯软件开发所独有,R&D 的团队都有类似的角色,从事类似的工作。
一加一的问题
没有一个项目会毫无阻力、没有麻烦的结束,如果项目都那样,这个世界就不需要项目经理了。
项目经理,对于一个团队履行它的使命和发展负责的人。因此创造出一个大于其各组成部分的总和的真正的整体,创造出一个富有活力的整体,应该是其第一使命。即人们经常谈论的管理,通过管理则可以把在自然界1+1〉2的不可能转变为可能。为履行这一使命,项目经理应该做什么呢
In that the project manager is often intimately involved with the business stakeholders they are often working closely with the functional analyst during the early stages of a project. The functional analyst is focused on getting the details of what the system must do and the project manager is focused on determining what the success criteria are and helping to educate the stakeholders about how the process works.
The project management role is generally responsible for status reports, which are frankly more tools about instilling a sense of urgency and demanding definite answers than they are a process for generating reports. They expose resource and scheduling issues as well as provide a communications vehicle for issues as they begin to occur. The project management role is typically spreads across several projects and potentially development teams. The project manager is frequently working on more than one project at one time - unlike many of the other roles in the project who may be dedicated. The project manager need not be an IT specialist, although this is helpful. The nature of their role is to provide broad based oversight.
In the software development process, the project manager is one part prodding and one part smoothing over problems in the process. They're there to make sure that the process goes forward and they use a variety of processes, meetings, and documents (artifacts) to ensure continued forward progress and to identify problems as soon as possible.
The project management role must be capable of executing details with regular consistency. They must also be able to take a step back from those details to look at the big picture to evaluate things like risk and the accuracy of time estimates. All of this takes a measure of restraint and good listening skills. The restraint prevents the project manager from jumping in before it's time and the listening helps to ensure that the real problem is eventually understood - and can be disseminated to everyone.
Project managers are the keepers of the process. Whatever the process is they're responsible for making sure that it executes well. In some organizations this includes the software development methodology. The project manager is the one that makes sure that the process is adhered to so they can get the predictable results they desire.
While the software industry is nascent, the project management industry is enjoying the advancement of a powerful organization in the Project Management Institute . They have assembled a guide to the body of knowledge for the project management profession that is often referred to as the PMBOK Guide. This organization has developed a widely recognized certification, Project Management Professional (PMP), which has both practical experience requirements as well as traditional testing requirements.
参考:
http://www.projectmanagerplanet.com/tools/article.php/3526491/Anatomy-of-a-Software-Development-Role-Project-Manager.htm
- 大小: 8.8 KB
- 大小: 18.5 KB
分享到:
相关推荐
3dsmax插件V-Ray LUTs 资源管理器 v0.02V-Ray LUTs 资源管理器 v0.02V-Ray LUTs 资源管理器 v0.02V-Ray LUTs 资源管理器 v0.02V-Ray LUTs 资源管理器 v0.02V-Ray LUTs 资源管理器 v0.02V-Ray LUTs 资源管理器 v0.02V...
在UG/NX软件环境中,二次开发是通过使用其提供的API接口来实现的,这使得用户可以自定义功能、扩展工具,以满足特定的设计和分析需求。在这个特定的案例中,我们关注的是UFUN(User Function)中的一个特定函数——...
"ray-master.zip" 文件是一个压缩包,通常包含了一个名为 "ray-master" 的项目或软件的源代码仓库。Ray 是一个开源的、可扩展的实时计算系统,它在人工智能(AI)和大规模分布式应用中被广泛使用。这个压缩包可能是...
"ray-mmd-master.zip" 是一个包含 "ray-mmd" 项目的压缩文件,该项目是一个用于三维模型动画渲染的开源工具,特别关注于MikuMikuDance (MMD) 文件格式的支持。MMD是一种流行的3D动画软件,主要用于创建虚拟偶像如...
9. SketchUp 插件:作为SketchUp的插件,V-Ray 集成在SketchUp的工作流中,用户可以直接在SketchUp环境中进行渲染设置和操作,无需离开设计软件。 10. 中英文双语切换:这个版本的特色在于支持中文界面,为中国用户...
计算机图形学期末项目,《Ray_Tracing_in_the_rest_of_life》二次开发,实_CG-RayTracing
西门子X射线管RAY14中文说明书提供了一系列关于RAY14型X射线管组件的详细信息,包括其设计、特性、技术数据和操作指南。西门子X射线管RAY14适用于普通和数字X射线摄影以及透视工作站的常规检查的诊断。 知识点1:X...
总的来说,"ray-mmd-1.5.2.zip"是一个为MMD爱好者准备的资源包,其中包含了丰富的光线追踪渲染工具、天空盒、光效设置、材质选项等,这些都能极大地提升MMD项目的视觉质量和艺术表现。对于想要深入学习和探索MMD渲染...
**Laravel 开发 - Ray Emitter** 在 Laravel 开发中,`Ray` 是一个非常有用的调试工具,它允许开发者在开发环境中快速查看变量、HTTP 请求、数据库查询等信息。`Ray Emitter` 是一个扩展了 Laravel 事件系统的组件...
本项目“Ray tracing算法第二步 - (Phong, Mirrors and Shadows)”聚焦于光线追踪中的三个关键元素:Phong光照模型、镜面反射和阴影。 1. Phong光照模型:由Bui-Tuong Phong在1973年提出的,是计算机图形学中广泛...
标题 "PG2Ray.rar" 暗示我们讨论的是一个名为 "PG2Ray" 的程序或工具,它被压缩在RAR格式的文件中。RAR是一种常见的压缩格式,用于减少文件大小以便于存储和传输。RAR文件可以包含一个或多个文件,并且通常具有密码...
游戏DOOM使用了一种类似的技术,称为二进制空间分区 (BSP),但本教程只关注 RayCasting 的实现。 效果展示:...
总的来说,MATLAB开发的Raytracer项目是一个结合了数学、物理和编程的综合性实践,既锻炼了编程技巧,又深化了对光线追踪技术的理解。通过学习和实践这些代码,不仅可以掌握光线追踪的基本概念,还能体验到MATLAB在...
参考博客中提到的链接提供了具体实现的代码示例,这可以帮助开发者更直观地理解如何在实际项目中应用这一算法。在实际使用过程中,可能还需要根据实际环境调整参数,例如增大射线长度以适应更大的扫描范围,或者调整...
V-Ray是一款广受欢迎的高质量渲染引擎,主要用于3D建模软件3ds Max中。V-Ray 2.0是其在2009年发布的一个重要版本,为用户提供了一系列升级和改进的功能,旨在提升渲染速度、图像质量和用户体验。在这个版本中,V-Ray...
5. 开发周期:作者承诺读者可以在一个周末之内完成一个基础的光线追踪器的开发。这表明书中将提供清晰的步骤和调试技巧,帮助读者快速上手并完成项目。 6. 代码解释:尽管书中的代码并未在线提供,作者保证所提供的...
Ray是一个开源的高性能分布式计算框架,它允许开发人员在Python中编写可扩展的并行和分布式应用程序。Ray的核心设计目标是提供一个简单易用的API,使得开发者能够轻松地将任务并行化,管理分布式对象,以及创建...
V-Ray是一款广受欢迎的高质量渲染引擎,特别设计用于3D建模软件3ds Max中。在3ds Max 2010版本上,V-Ray 2.0的引入为用户带来了显著的性能提升和功能增强,使其成为专业3D艺术家和设计师的首选工具。这个简体中文32...