软件开发活动中的角色
一般来说,一个 IT 团队中包含以下这些分工角色:技术总监、项目经理、项目助理、系统分析、产品经理、Leader,主程、辅程、测试、美工、DBA 等等。本文将介绍软件开发活动中常见的角色及其职责划分,需要注意的是,并不是所有公司团队都具有这些岗位,对于中小型团队,可能会出现身兼多职的情况。
技术总监
技术总监负责一个企业的技术管理体系的建设和维护,需要对技术和业务具有深入理解,对行业技术发展趋势和管理现状具有准确的判断。
具体来说,技术总监需要承担以下职责:
- 指导制定长短期研发战略和规划、技术管理制度和技术规程标准,并负责全面实施,带领团队实现研发目标;
- 主导并参与系统架构核心代码编写,核心技术问题攻关,组织解决项目开发过程中的重大技术问题;
- 负责指导并监督技术部门完成日常开发测试等工作,规范开发流程;
- 组织研究行业最新的技术发展方向和技术架构,指导核心架构设计、技术选型、开发迭代以及性能优化;
- 负责技术人才的团队建设和管理,建立科学有效的技术人才培育与发展体系。
总之,技术总监虽然不需要编码,但需要对系统方向和团队中一些决策性的事进行管理,保障项目的实施和战略性发展。
项目经理
项目经理负责分配资源,确定优先级,协调与客户和用户之间的交往。总而言之,就是尽量使项目团队一直集中于正确的目标。项目经理还要建立一套工作方法,以确保项目工件的完整性和质量。
项目经理的目标是控制系统进度、评估和把控风险、分配工作任务,因此需要具有一定的管理能力和沟通能力。
项目助理
项目助理负责对会议、文档、日常事务的跟踪进行管理。别以为这个只是助理一职,这个职务在整个项目中,启着至关重要的位置,她贯穿于团队中每个职务之中,其它职务是针,她就是一根线,她可以对项目中每个人的工作进行监控、总结和传达任务。
构架设计师
构架设计师负责在整个项目中对技术活动和工件进行领导和协调。需要对系统进行构架设计、技术评估、开发环境,编写概要设计文档与设计规范文档,对各类技术点进行分析,要求技术全面,并掌握熟练,有丰富的项目经验,在各种环境下,给出最佳的解决方案。
构架设计师要为各构架视图确立整体结构:视图的详细组织结构、元素的分组以及这些主要元素组之间的接口。因此,与其它角色相比,构架设计师的见解重在广度,而不是深度。
产品经理
对系统功能需求分析、用户体验设计,编写需求文档,如果我们接到任务,我们的产品需要做哪些功能,产品经理必须给出需求,将功能项目实际的列举出来,不但要知道自己做什么样的东西,还要了解我们做出来怎么用,分析产品在实际运营中的一些需求,制定项目的功能开发阶段,现在一般的开发团队中还没有这个职位,其实这个职位对一个产品的好坏影响很大,我们在产品开发完成后,常常遇到一个问题,就是产品刚出来就感觉已经落后了。
软件设计师
软件设计师可认为是一个软件开发小组的 Leader,通常也是项目的主程,负责软件的详细设计,例如定义一个或几个类的职责、操作、属性及关系,并确定应如何根据实施环境对它们加以调整。此外,软件设计师可能还要负责一个或多个软件包或子系统设计,编写部分模块设计文档和代码,检查软件工程师编写的模块代码。
软件设计师作为项目组的重要成员,需要熟练相关开发技术,负责技术难点分析,编写详细设计文档。不仅需要突出的技能,还需要有创新能力,不是什么都是从网上拿下来一改就用的,其它方面都可以讲出一二,对行业内的动态都很关注,有一定的交际能力。
软件设计师是团队模块开发引领者和衔接者,一般经历过几个项目的人都可以担当。
软件工程师
软件工程师负责完成架构设计师或软件设计师的设计意图,根据设计文档编写代码;根据设计文档编写单元测试代码,根据测试报告 Bug 记录修订 Bug,完成包或子系统的开发。
软件工程师就是我们常说的“程序员”,通常分为前端工程师和后端工程师,如果设计硬件产品,还会有嵌入式软件工程师、底层驱动工程师等角色。
UI 设计师
UI 设计师有时候也被称为“美工”,负责产品界面的创意及视觉设计,包括图形、图标、动画等,对产品的风格进行整体规划设计,维护和整理视觉规范。UI 设计师通常需要配合产品经理、前端工程师,进行产品的概念原型细化和视觉呈现,并配合进行用户测试及分析关注设计方案的效果数据及用户反馈,利用数据指导后续设计。
实际上,优秀的 UI 设计师不仅需要有良好的视觉设计能力,还需要了解一些前端语言(HTML、CSS、JS 等)以及一些接口规范。
测试工程师
测试工程师是项目开发过程中的质量检测者和保障者,负责产品质量的把关工作。主要的工作职责是理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug)决定软件是否具有稳定性(Robustness),并写出相应的测试规范和测试案例。
具体来说,测试工程师需要负责测试用例、测试文档的编写,以及执行测试,其中包括设置和执行测试,评估测试执行过程并修改错误,以及评估测试结果并 记录所发现的缺陷。
数据库管理员
数据库管理员(Database Administrator,简称 DBA)负责管理和维护数据库管理系统(DBMS),属于运维工程师的一个分支。主要负责业务数据库从设计、测试到部署交付的全生命周期管理,包括搭建好数据库环境、准备数据规范、更新数据以及数据文档,对数据系统性能分析、迁移、管理等工作。
DBA 的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。
实施工程师
负责软件产品安装调试和部署,完成项目相关系统工程工作,负责客户技术支持,负责编写系统部署方案和使用手册、维护手册,负责系统实施计划和规划。
配置管理员
配置管理员(configuration management officer,简称 CMO)是大型软件公司中负责代码管理、代码编译、版本管理、版本发布等工作的岗位,主要工作内容是辅助软件经理处理软件版本相关工作,只在一些大型公司中存在,为开发人员的下游,产线与测试部的上游,直接搭档是软件经理,工作内容十分重要,而且需要细心才能做好这样一份工作。