敏捷测试团队组织构成
任何企业进行软件系统研发时,都需要匹配的技术人员与管理人员,传统的软件研发模型中,针对团队组织有完善的职能定义,敏捷模型也不例外。
第一章、第二章简要阐述了Scrum敏捷开发模型中涉及的角色,本章重点结合项目案例详细介绍敏捷开发团队中的成员构成与组织架构。
2.3.1 团队成员构成
【案例2-1 威链优创敏捷团队构成】
威链优创是一家创业型公司,创始人根据其对某种行业的理解,如电子商务行业,根据市场需求分析,计划做一款支持PC、移动端的在线商城,创始人自己具有市场、销售经验,但不了解IT技术,不懂如何开发这样的软件平台,则其可寻求技术合伙人。
技术合伙人刘某某根据自身的行业经验,分析整个产品的演进运营过程,决定用Scrum模型进行开发,因此,刘某某将构造一个敏捷开发团队,进行相关产品的研发。
确定开发模型后,技术合伙人进行团队成员的招聘,此时,需清楚计划构建的团队应当有哪些成员,他们对应的职责又有哪些。
敏捷开发团队通常包括以下几类人员:产品经理、项目经理、开发工程师、测试工程师、UI设计工程师、架构设计师等。
1. 产品经理
产品经理主要负责当前产品的规划、需求提出、成本预算等工作,产品经理应当将规划的产品告知开发团队,确保每个成员知悉产品愿景,同时从边界角度限定时间、资源的使用预算。
敏捷开发中产品经理需编写产品待办列表(Product Backlog),开发团队根据产品待办列表细化具体的开发活动,当然,产品经理也可将产品待办列表的任务安排具体给其他人,但产品经理应当对结果负责。
有些公司将产品经理作为某个产品的具体负责人,以上述的技术合伙人“刘某某”为例,他可以作为产品经理,负责整个产品的组织与开发。
2. 项目经理
项目经理与传统的项目经理稍有区别,从敏捷团队的自组织特性来看,敏捷开发团队不应当存在管理级别的成员,所有的管理事务应当揉合在结果驱动的自发工作流程中,即传统项目经理/项目经理的计划、管理、监督等活动在敏捷开发团队中应当弱化,甚至取消。
但由于国内对敏捷模型掌握仍然不够深入,很多企业只是采用了敏捷的形式,并未真正做到敏捷开发的要求,因此,不少团队仍然存在传统经理/项目经理这个角色,但这个角色仅起到协调、纽带的作用,不具有管理权限,部分职能上与Scrum Master重合。本教程采用的敏捷项目管理平台禅道,在角色设定中默认设置了“项目经理”这个角色。
本教程案例中的开发团队,设置了“项目经理”角色,且由“张某某”担任。
3. 开发工程师
承担具体设计、开发任务,针对Sprint中的每个用户故事、开发任务开展工作。当测试工程师发现缺陷后,开发工程师与他们沟通,尽快处理缺陷,确保在计划周期内交付增量价值给用户。
本教程案例中,“李某某”、“王某某”为开发工程师。
4. 测试工程师
承担测试需求管理、测试用例设计、测试用例执行等活动,与开发团队成员加强交互,尽早确认需求、发现缺陷尽早解决,及时回归测试用例,与开发团队成员共同保证按时交付增量价值。
本教程案例中,“林某”、“许某某”为测试工程师。
5. UI设计工程师
负责产品的UI设计,与开发团队成员交互,确保UI设计满足产品设定及用户习惯,当测试工程师提出缺陷时,UI设计工程师及时沟通解决。
本教程案例中,“赵某某”担任UI设计工程师。
6. 架构设计师
一般可由项目经理担任,当然前提是其具备架构设计的能力。负责整个产品的整体架构设计,此时,架构设计师除了关注产品需求外,需考虑整个产品的稳定、安全、兼容等质量特性。
假设本教程案例中,架构设计师由项目经理“张某某”担任。
2.3.2 团队组织结构
通过上述关于开发团队成员的角色介绍,本教程案例产品的敏捷开发团队成员组织结构如图2- 1所示。
图2- 1敏捷开发团队组织结构示意图
敏捷开发团队中,通常不设置下属团队,团队中每个成员没有级别限定,都属于开发团队,产品经理提出愿景(产品需求、待办列表等)、设定边界(交付日期、用户群体设定、资源耗用限定等),开发团队细化用户故事、确定功能优先级、规划Sprint、实施开发与测试、交付增量价值等。
2.3.3 测试工程师选择
一般而言,敏捷测试工程师与传统测试工程师的岗位要求相同,主要包括素质要求与技术要求两方面:
1. 素质要求
(1) 统招专科以上学历;
(2) 2年以上软件测试经验;
(3) 组织或参与过手机端和WEB端软件测试工作;
(4) 有良好的沟通能力,热爱测试行业;
(5) 工作认真、细心、负责,有较强的责任感。
2. 技术要求
(1) 熟悉软件工程、Scrum敏捷模型、软件测试理论和方法;
(2) 熟练运用各种黑盒测试用例设计方法;
(3) 熟悉至少一种缺陷管理工具,如:Jira、ALM、禅道等;
(4) 熟悉至少一种数据库,如Mysql、Oracle等,掌握常用SQL语句编写,如增、删、改、查;
(5) 熟悉常用自动化测试工具,如LoadRunner,Selenium,HttpWatch、Jmeter等;
(6) 有性能测试经验、自动化测试、安全性测试经验优先。
具体需求应当根据产品测试需求确定,不过从上述测试工程师的岗位需求来看,测试工程师需掌握越来越多的开发技能,才能胜任日益复杂的测试任务。
相关文章
- 如何用测试平台减少团队间信息差
- 团队经常抱怨测试质量太差?
- 一支不足百人的团队创造了 ChatGPT :90 后挑大梁,应届生 11 人,华人抢眼
- 如何识别六西格玛团队失败的信号?
- Protein science︱王舒禹团队:贝叶斯与图神经网络结合预测突变对蛋白质稳定性的影响
- 田渊栋团队发布「长故事生成器」第二版DOC:连贯性大幅提升,趣味性提升20.7%!
- 测试团队如何建设?
- 天津大学研究团队提出基于源混叠矩阵估计的稳态视觉诱发电位扩增方法
- 建设 TiDB 自动化平台:转转 DBA 团队实践
- 清华团队将Transformer用到3D点云分割上后,效果好极了丨开源
- 高端麒麟处理器还在研发 消息称华为不惜一切保住海思团队
- Facebook宣布成立新产品团队开发“元宇宙”
- 腾讯微信团队公告:公众号及新用户注册全部暂停 8月初升级完成后恢复
- Oracle TMS:提升团队效率的神器(oracletms)
- Linux 基金会宣布开发区块链技术的新团队
- 八种敏捷团队的提升方法
- 谱写新时代 oracle中国区总裁团队携手共进(oracle 中国区总裁)
- VMware 修复致命漏洞,揭秘 360 黑客团队和韩国神童的传奇往事
- 论文被拒千百遍,团队不受待见,Yann LeCun为何仍待深度学习如初恋?