《软件工程(第4版?修订版)》—第1章1.7节开发团队的成员

简介: 在本章的前面,我们看到客户、用户和开发人员在新产品的定义和创建中发挥着重要的作用。开发人员是软件工程师,但是,每一位工程师可能都只擅长于软件开发的某一特定方面。因此,我们在此更深入、详细地讨论开发团队成员的角色。

本节书摘来自异步社区《软件工程(第4版?修订版)》一书中的第1章1.7节开发团队的成员,作者【美】Shari Lawrence Pfleeger , 【加】Joanne M.Atlee,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 开发团队的成员
软件工程(第4版•修订版)
在本章的前面,我们看到客户、用户和开发人员在新产品的定义和创建中发挥着重要的作用。开发人员是软件工程师,但是,每一位工程师可能都只擅长于软件开发的某一特定方面。因此,我们在此更深入、详细地讨论开发团队成员的角色。

任何开发过程的第一步都是找出客户想要什么,并且将需求文档化。正如我们已经看到的,分析就是把事物分解成其组成部分的过程,以便我们能够更好地理解它们。因此,开发团队包含一个或多个需求分析员跟客户一起工作,并且把客户想要的分解为离散的需求。

一旦了解了需求并且把需求文档化,分析员就与设计人员一起工作,生成系统层描述(系统要做什么);然后,设计人员与程序员一起工作,以程序员能够编写实现指定需求的代码行的方式来描述系统。

生成代码之后,必须对它进行测试。通常,第一次测试由程序员自己完成;有时,也使用另外的测试人员帮助程序员发现他们忽略的错误。当代码单元被集成为一个个运行的功能组时,测试人员小组与实现小组会在各部分组合构建系统的过程中,验证系统是否能够正确运行,是否符合规格说明。

当开发团队对系统的功能和质量感到满意时,注意力就转向了客户。测试小组和客户一起验证整个系统是否是客户想要的系统。他们通过把系统如何工作与最初需求规格说明进行比较,来完成这项工作;然后,培训人员向用户说明如何使用这个系统。

就很多软件系统而言,客户的验收并不意味着开发工作的结束。如果在系统验收之后发现了故障,维护小组就要修复它们。另外,随着时间的推移,客户的需求可能会发生变化,系统也必须进行相应的改变。因此,维护可能涉及分析人员,由分析人员决定增加或变更哪些需求;还可能涉及设计人员,由设计人员确定改变系统哪个部分的设计;还可能涉及实现这些变化的程序员,确保改动后的系统仍然正确运行的测试人员,以及向用户解释这些变化如何影响系统使用的培训人员。图1-11说明了开发团队的角色与开发步骤的对应关系。

就课程项目而言,学生通常会自己工作或者在一个开发团队的小组中工作。教师所要求的文档是最少的,学生常常不需要编写用户手册或培训文档。再者,布置的作业是相对稳定的,需求在项目的生命周期中不会发生变化。最后,学生构建的系统很可能在课程结束后就丢弃掉,他们的目的是证明他们的能力,而不必为实际的客户解决问题。因此,对于课程项目而言,程序规模、系统复杂性、文档化的需要以及可维护性的需要都是相对很少的。


5d184ea302c9a569bc19771289c8a838a56d3d22

但是,对一个实际的客户而言,系统的规模可能会很庞大,复杂性可能会很高,可能需要大量的文档,可维护性的要求也可能会很高。对于一个涉及成千上万行代码并涉及开发团队成员间很多交互的项目来说,项目各方面的控制可能是很困难的。为了支持开发团队中的每一个成员,一些人员可能在开发的最开始就要介入系统,并且自始至终都是如此。

资料管理员负责准备和存储在系统生命周期中用到的文档,包括需求规格说明、设计描述、程序文档、培训手册、测试数据、进度等。与资料管理员一起工作的是配置管理小组的成员。配置管理涉及维护需求、设计、实现和测试之间的对应关系。根据这种交叉引用,开发人员可以得知,如果需要改变需求,相应地要改变什么程序;或者如果提议进行某种改变,会影响到程序的哪一部分。配置管理成员还要协调可能建立或支持的系统的不同版本。例如,一个软件系统可能要运行在不同的平台上,或者按一系列不同的发布进行交付。配置管理要确保各个平台上系统的功能都是一致的,而且新发布的功能不会降级。

开发角色可由一个人或几个人承担。就小型项目而言,两三个人就可以承担所有角色。然而,对大型项目,通常要根据开发中的职责,把开发团队分成不同的小组。有时,维护系统的人员与最初设计和编写系统的人员是不同的。对某些规模巨大的开发项目来讲,客户甚至会雇佣一家公司做最初的开发,而用另外一家公司进行维护工作。我们在后面的章节中讨论开发和维护活动时,会讨论每种类型的开发角色需要哪些技能。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
8月前
|
存储 定位技术 项目管理
软件工程IT项目管理复习之 十:项目沟通管理
软件工程IT项目管理复习之 十:项目沟通管理
130 1
软件工程IT项目管理复习之 十:项目沟通管理
|
8月前
|
运维 前端开发 算法
揭秘成熟互联网团队:团队成员包括哪些岗位?
揭秘成熟互联网团队:团队成员包括哪些岗位?
361 0
|
敏捷开发 项目管理 开发工具
在Scrum敏捷项目开发中,开发人员有哪些职责和需要参加哪些活动
Leangoo领歌是国产的免费的敏捷项目管理软件,支持包括小型团队敏捷开发,规模化敏捷SAFe,Scrum of Scrums大规模敏捷等敏捷开发方法,具有产品管理和项目管理的功能;
|
前端开发 JavaScript IDE
让团队代码像一个人写的
前端代码规范流程实践思路 1. 本地开发过程,提示、校验、更改 2. Git 提交过程,代码校验是否允许提交 3. 服务端校验,代码校验是否合并和发布
167 0
让团队代码像一个人写的
|
敏捷开发 架构师 程序员
敏捷开发流程之Scrum:3个角色、5个会议、12原则
本文主要从Scrum的定义和目的、敏捷宣言、Scrum中的人员角色、Scrum开发流程、敏捷的12原则等几方面帮助大家理解Scrum敏捷开发的全过程。
以人为本--创建最好的开发团队
以人为本--创建最好的开发团队
580 0
|
测试技术 项目管理
艾伟也谈项目管理,敏捷个人:内容框架之执行力
  执行力是敏捷个人需要学习的一个内容,本篇主要介绍执行力相关的内容,大家在读后可以采用介绍的一些指南开始行动。 执行力的三个层面 按照命令和规则做事的过程,简单讲就是能够听话照做 按照预定的计划行为的过程,简单讲就是做事章法 将想法变成现实的过程,简单讲就是规划实现   对第一个层面来说,要做的事情是片段的、非连贯的,但对第二个层面来说是连续的、整体的。
1017 0
|
测试技术 程序员 项目管理
艾伟也谈项目管理,技术领导的疑难:如何掌控其他成员的开发
  如何将项目的开发掌控好是技术领导(Team Leader)必须做好的。何为掌控项目的开发,即开发的进度和质量在计划内,不在期限快到时慌手慌脚,也不需交期到时天天加班,更不能删减测试时间。总而言之,就是开发工作有节奏,按部就班到达预期目标。
910 0
|
测试技术 项目管理
艾伟也谈项目管理,在团队中如何推行一项新的实践
在一个老团队中,推行一项新的实践是非常不易的。     如果要求,每天10点站立会议增强团队成员之间沟通。大家会心里先衡量一下,恩,不就是每天站个十几分钟,自己说几句话,然后听别人说嘛,不难做到。
1135 0