2019/9/18CQUHONG1软件开发中人员管理2019/9/18CQUHONG2目录信息系统开发人员分类;各类人员的职责;各类人员之间的关系;各类人员在开发中的作用;2019/9/18CQUHONG3信息系统开发人员分类及其职责概述信息系统开发是一个系统的复杂的工程,涉及到许多各类人员的共同参与,是集体的成果。搞清楚软件或信息系统开发中需要那些人员?各类人员都有什么职责?是很有必要的。2019/9/18CQUHONG4信息系统开发人员分类(1-7)1、项目投资人:高层领导,批准并支持系统的管理人员;2、项目经理:负责系统总体职责的管理人员;3、项目领导:技术队伍的协调者;4、技术人员:所有指派到项目中的开发人员和技术职员;5、最终用户:那些作为他们的日常工作来操作该系统的人;6、最终用户开发者:来自最终用户组参加开发队的非系统人员;7、系统设计师:总体技术设计人员;2019/9/18CQUHONG5信息系统开发人员分类(8-14)8、应用分析员:复审最终用户需求并定义系统说明的人;9、数据库管理员:数据库的管理人员:10、数据管理员:负责命名和控制数据元素名和内容的人;11、界面设计者:决定最佳人—机接口方法和风格的专业技术人员;12、网络设计师:负责通过数据通讯工具和协议把所有系统成份集成起来的专业技术人员;13、文档人员:开发用户手册、帮助程序和系统的技术说明的专业技术人员;14、系统测试人员:进行系统单元测试和联合测试的人员。2019/9/18CQUHONG61、项目投资人1、在所有成功的管理信息系统项目中,总是有一个在机构中的高层领导出于某种原因想要建立这个新系统。2、项目投资人负责标识系统的战略价值并把可以为整个企业带来利益的事务或服务与该技术联系在一起。3、项目投资人一般站在高层来操作,因而看到的是由机构的高级管理组织所定义的“大图”。这也同样适合于部门系统,只是项目投资人需要把其视野限制到以部门作为开端。4、项目投资人设定系统的托管和范围。这一角色通常由一名高级管理人员担任,他完全了解企业战略并且也对其他高级部门经理进行访问。5、项目投资人还能够把该项目的成功转变为使用了客户/服务器技术的新型的系统应用。6、项目投资人大多数情况下只在开始阶段和批准阶段参与。但项目投资人也要出席一些具有里程碑意义的会议并且要看看主要的交付演示,这有利于把项目队职员集中于他们对结果的承诺上。2019/9/18CQUHONG72、项目经理1、项目经理负责对项目的资源和人员进行管理。担当此角色的人负责按时间计划和在项目投资人预算并批准的财政资源条件下交付系统。2、项目经理决定优先次序并解决项目范围内任何个人间的优先序和设计矛盾。3、项目经理把应用的战略价值翻译成系统必须实现的核心目标的定义。4、由于项目投资人一般均系高级管理人员,项目经理则直接与项目组成成员打交道。5、项目经理主要负责各种项目成份的集成,并保持项目在设计与开发阶段始终聚焦于它对企业的价值上。6、项目经理在开始阶段需要极大的投入,在后续阶段仍要保持对项目状态和出现的困难的了解。关于项目经理,后续课程还有详细讨论。如素质、能力、职责等。2019/9/18CQUHONG83、项目领导1、项目领导为每个人分配具体的任务,并把由项目经理确定的总体的项目交付任务分划成一系列具有其止日期的离散活动。2、详细的项目计划的制定通常也是项目领导的职责。项目领导应该时刻准备了解每个成员的工作以及在任何给定的时候项目队所面临的技术挑战的实质。3、如果一个开发人员或另一个开发成员比交付计划完成得晚或遇到了技术上的难题,他或她首先要向项目领导请求帮助解决问题。4、项目领导对于保证每个队员的工作的协调也负有责任。5、他或她也要负责保证由全体项目职员完成工作的质量水准。6、项目领导按计划把开发现状向项目经理汇报,通常还负责与将要使用该系统的最终用户进行通信。7、任何对最终用户有影响的二次工程需求都应该首先告知项目领导,就这些问题与用户的沟通项目领导负有主要责任。2019/9/18CQUHONG94、技术人员1、在任何项目中,必须有人去做实际工作。在信息系统开发中,这一职责落在了技术人员的肩上,他们通常是软件开发人员。2、对于信息系统开发中的每一部分而使用的每个具体的技术产品,都必须从项目开发队伍中指派一个主要的技术人员。这样可以保证有一个专人负责了解这个产品并可在需要的时候把他的知识传授给其他队员。3、技术人员变成了信息系统开发中某个方面的内部专家。这些方面包括:SQL语法、系统集成、应用软件、设计与开发工具或SQLSERVER数据库管理系统。4、信息系统开发提供的特色的复杂性使得在一些主要环节上检查对那一技术的适当使用非常重要。若不强调这一点,一些只要发现即可解决的小问题就可能滋变成对整个项目的严重威胁。5、由于很多成功的信息系统项目使用了较小的开发队,一个开发人员就有可能成为承担多项技术的技术人员,作为一名开发人员,你应该能够标识你有责任支持哪些技术,并了解在信息系统开发技术的其他方面你可向谁求助。2019/9/18CQUHONG105、最终用户1、任何参加你的信息系统项目的人都应该有一个明确的意识:谁是最终用户。最终用户负责实际接手这个应用,并用此为企业在将来创造价值。2、这点并不是总象听起来那样直观。当不只作为部门的试验时,信息系统意在成为人的工具,只有使用得当,有效的工具才能发挥得最好。3、把这条原理应用到你的系统中去的具体办法是,了解你的最终用户、他们的需求及目标。若开发一个客户/服务器系统,把它交给最终用户,然后抱怨用户使用不当,这是毫无意义的。4、最终用户有他们自己的组织需求,由这些需求驱动的系统交付正是必须由你的客户/服务器系统实现的。5、有这样一个不幸的倾向:系统分析员相信他们对用户需求的理解比用户本人更好,由于对用户的忽视,他们失去了最终用户的看法。6、项目成功取决于你的系统如何正确地识别并满足了最终用户的需求,而不是用户如何好地掌握并操作你的系统。7、他们是你的客户,你的开发工作的成功取决于你如何好地使你的系统投入工作。你要理解用户,而不是让用户理解你。不管系统的设计与实现有多好,只有他们——与系统共同工作的最终用户才能实现收益。2019/9/18CQUHONG116、最终用户开发者1、大多数最终用户要么是过于忙,要么是对把很多时间花在系统开发过程中不感兴趣。要想真正成功,你的客户/服务器项目需要足够多的用户输入和返馈。2、当最终用户额外担当了开发者的角色时,他们就主动变成了连接已完成产品的最终用户和负责建立应用的技术人员这间的桥梁。3、最终用户开发者的第一个职责是揭示将来系统的最有用的特色的精确内涵,第二个职责是把尚在开发中的系统向其他最终用户作宣传。4、最终用户开发者担当起两组人之间的翻译。最有效的客户/服务器系统是利用某种形式的反复开发建立起来的,这种反复式开发是指在整个开发过程中借助用户反馈快速地进行改进和增强。最终用户开发者可提供大量的这类反馈。2019/9/18CQUHONG125、然而,这个过程还应包括另外两项功能。正像你将会在你的客户/服务器项目中扯到的那样,系统有可能会改变最终用户的业务方式。新的机能就是新的机遇,它将迫使用权现状做一次有益的变革。最终用户与软件开发人员之间的通讯也不只限于一种方式。它是双向式的,而且最终用户开发者可以起到一个非常有价值的作用,那就是使最终用户了解新系统可能提供的新机遇。6、最终用户对新的客户/服务器应用熟悉得越快,也就越有可能采用它。最终用户开发者从本质上担当起了预先培训其他最终用户的职责,使得尚在开发之中的系统看起来更加熟悉和不可怕。这个职责是难于由系统人员承担的,因为最终用户一般不认为系统人员能够真正理解他们,或者是他们中一员,为使这一角色更为有效,应该选择那些对最终用户组整体较有影响的最终用户作为最终用户开发者。2019/9/18CQUHONG137、系统设计师1、系统设计师的角色不仅仅是设计一个客户/服务器应用。系统设计师必须把企业和计算环境作为一个整体来考虑。在这样的上下文环境中,系统设计师定义客户/服务器系统中各元素如何协作。系统体系结构包括硬件、软件和系统的集成。对于你的客户/服务器项目,系统设计师要负责环境的总体技术设计、为各种组件选择合适的工具、应用与所有系统资源的集成。2、在项目开始阶段,系统设计师与项目经理和项目投资人在一起工作以保证项目在技术和操作上的长远目标。系统设计师应该是非常熟悉技术本身且保证项目选定的技术具有长远价值。技术上的长远价值在于可以充分利用现有资源,或者在技术和经验上的投资必须在将来和现在都有是有用的。一个长远性和系统体系结构应该是这样一种体系结构:它采用的技术在将来不会变得过时或者难懂。3、系统设计师也要负责保证项目在技术上是可行的。客户/服务器计算机工业中快速变化的领域之一。系统设计师负责保证被选择的每项技术都确实能够提供所需的服务,它们将被集成为一个有效的总体方案。不能投入运行的系统是无法实现重要的价值的。2019/9/18CQUHONG148、应用分析员1、站在与系统设计师相对的另一端,应用分析员负责开发一个特定的客户/服务器应用将要完成的功能的说明。应用分析员通常负责为现有工作过程和系统做文档,并且与用户共同工作来确定新系统实际将要做什么。应用分析员定义应用时总是站在用户或业务的角度,保证系统完成正确的功能,满足用户的商务目标,而不是开发一个详细的程序设计的说明。应用分析员与用户一道弄清楚新系统对于当前的事务实践将会产生什么样的影响。2、应用分析员审查用户环境并让用户用自己的语言解释他们的作业。应用分析员再将这个描述翻译给其他人去阅读包括开发队成员,开发队正是从这个文档理解用户的需求。这种理解再翻译成可用于创建软件应用本身的程序设计说明。3、应用分析员从第一代计算机开始就是软件开发过程的有机部分。用于把应用说明文档化的技术已有很多,应用分析员有责任使用这些技术为你的具体的客户/服务器系统做文档。2019/9/18CQUHONG159、数据库管理员1、DBA的责任是开发逻辑和物理数据模型。这些数据模型详细叙述每个必须被用来支持应用的数据库对象,包括所有的表、视图、存储过程、规则、缺省、索引和触发器。DBA通常对于如何创建数据库具有决断权,对于保证所有数据库对象的创建和数据库对正在开发中的应用的支持也负有主要责任。由于数据库应用的服务器方面与客户方面之间固有的分离本质,因而即使采用适合数据库设计的所有准则也完全有可能使开发出的数据库结构无法支持应用。数据库管理员与开发队共同努力,通过迭代式的逻辑和物理数据模型,保证数据库设计将支持应用。2、在物理数据模型实现这后,DBA与开发队要对系统性能进行复审并根据查询的实际性能需求修改数据库以加速数据检索的速度。3、在大多数机构中,数据库管理员处在负责管理很多数据库应用的中心位置上。在这种情况下,数据库管理员在责任保证数据库对象,如存储过程,是经过测试和行成文档,并且是与整个机构范围的标准相符。数据库管理员应该知道那些已有的、可能会被开发队使用或修改的存储过程或其它数据库对象。4、DBA通常在你的SQLServer上有一个SA帐号,并且负责建立所有用户、帐号和权限,还要为能充分利用SQLServer在基上运行的硬件平台而进行物理数据模型的设计。SQLServer体系结构中有很多方面不为软件开发人员所见,但却影响着应用的性能。DBA对此以及库安全和数据完整性均负有主要责任。2019/9/18CQUHONG1610、数据管理员1、数据管理员是的职责更加注重于数据类型定义的整体标准以及对表及列的命名。数据管理员确保标准编码规则规范的使用,经常把在机构别处所做的工作借鉴过来,或者使用适合的标准化组织,如IEEE、OSF、CCITT和GOODHOUSEKEEPING等认可的代码表。2、数据管理的另一职责是保证多个数据库是可映射在一起的,并且相近的是术语在整个数据库中应具有完全相同的含义。数据字典或数据目录使用的定义规范也是数据