工作5年多,完整的经历了7个项目,有网站维护项目、全新开发项目、搜索子频道和广告平台等各种类型模式的项目,本文简单讨论下这几种类型的项目人员组织结构。
1.网站维护项目
网站维护项目的主要特点是每个项目很小,实际是一个或2个功能点,要求在短时间内发布。
项目经理:分配任务,控制优先级(可能不同任务会同时修改i相同文件,需要排定发布优先级),协调资源
需求业务分析人员:因为网站特别是电子商务类网站,需要有专门的人员在接到任务后做需求分析,规范业务流程
开发人员:1到2个开发人员接受任务后,根据需求或业务文档设计实现,涉及到前台UI、后台逻辑代码、数据库操作,技术要求全面;时间比较紧张
测试人员:1到2个测试人员根据需求/业务文档以及开发的设计文档编写测试用例并测试功能产出测试报告,手工测试居多
质量保证人员:服务于多个项目组,根据不同的项目组情况提供各种文档的模板文件
网站维护项目虽然看起来很像如今的敏捷项目,但实际是以文档为主线,开发和测试的沟通基本围绕bug的发现和修复展开。
2.全新开发项目
全新开发项目一般规模大、周期长(几个月到几年不等)、人员多。
项目经理:制定任务计划进度表,分工明确责任,建立基线、细分里程碑,控制预算,申请资源(硬件、软件、人员),跟踪项目进度, 控制风险,项目内外沟通
架构设计师:设计整个项目架构,采用哪些技术,使用哪些工具,风险评估,产出架构设计文档或建立基础demo,详细设计文档和概要设计文档
需求/业务分析人员:产出需求分析文档,业务分析文档,培训项目成员,统一对需求业务的认识
数据库管理人员:新系统的数据库表、视图、功能、存储过程设计,产出文档,建立各种环境的数据库,可以由架构设计师兼任设计库表,DBA只管SQL提交的review和执行,账户建立,性能优化
源代码管理人员:开发人员兼任,统一的代码管理,分支管理,代码规范,单元测试规范,建立开发环境、测试环境、预发布环境
开发人员:在各种文档的指导下,开发功能,进行单元测试、联调测试和提交测试
测试人员:设计测试计划,编写测试用例文档,执行测试,产出测试报告,根据项目特点,选取自动化/性能测试工具提高效率,参与评估
质量保证人员:根据项目类型,提供文档模板,修订规范
文档人员:可选,项目验收上线编写用户手册
全新开发项目人员众多,项目经理需要发挥很大的作用,人员协调、进度跟踪,每个里程碑完成后的总结和解决问题以减少问题堆积到下个里程碑,控制风险;每个阶段都有完整的文档产出。
3.搜索项目
Engineer Manager:负责多个项目/产品的预算管理,工程师人员管理,team building
产品经理:负责多个项目/产品,产品特性定义设计和确定发展方向,竞争对手产品分析,主导产品创新讨论,确定新功能发布优先级
技术组长:制定和跟踪项目进度表,统筹开发人员
开发人员:设计开发文档,开发功能,单元测试,code review,提交发布
测试人员:建立产品质量流程,设计自动化测试框架,推动开发人员对质量的认知度,提高开发测试覆盖率
UX:可选,在某些功能上提供用户体验分析,前台UI设计
搜索项目人员规模小,一般都少于10人,需要每个人员充分的沟通,发布期短(1周或2周) ,角色不再非常清晰,除了基本任务外还需要参与产品创新的讨论
最后回过头来看下测试人员的职业发展
- 坚持测试之路,测试工程师-》高级测试-》测试专家的技术型路线或测试工程师-》测试组长-》测试经理的管理路线
- 对技术的渴求,测试工程师-》开发测试-》开发工程师
- 测试人员对项目/产品业务的熟悉程度明显高于开发,测试工程师-》需求业务分析人员
- 对产品的敏锐感觉,测试工程师-》产品经理
Trading Places: 8 Alternate Careers For Software Testers 讨论了测试人员选择其他职业的可能性。