全功能团队与组织分组
任务之间的数据交互如此之频繁,以致于在日常的开发工作中我不得不经常站起身,走到BA和QA面前,说,你好,有个问题需要问一下。于是,公司很明智的,将我们划分到一个团队里,并称之为全功能团队。
其实,全功能团队的划分非常自然,在组织分组里,其对应着一个重要的标准:工作流相依性,亦即按照工作流程来进行分组。在具体讨论这个问题之前,我们先从另外一个问题开始:为什么组织需要分组?
啊哈,组织分组是为了方便画出各种漂亮的组织结构图,满足领导审美上的需要。
很抱歉,不是。
恩,对了,是为了让领导搞清楚到底都有些谁在为他干活,免得隔个几年都要搞一次机构精简。
也不是。
分组是协调组织内部工作的一种不可或缺的手段。其最重要的作用就是建立起一套普遍的监督体系,每个单位都会指定一名管理者,由其对该单位的所有行为负责,这
些管理者又会相互联系,从而建立起组织的权力体系;其次,分组通常要求单位里的人员共享相同的资源,例如硬件机器;最后,分组可以鼓励同一单位内人员的相
互调节(即通过非正式的简单沟通实现对工作的协调),因为大家在同一个地点工作,又共用公用设施,例如厕所,使得大家彼此接近,促进了经常性的非正式接
触。
分组带来的最大问题就是:促进了组内协调,却牺牲了组外协调。步兵瑞科就曾愤愤地抱怨:他们就知道在天上飞,我们却在下面送死。(银河舰队)程序员的我也曾经抱怨过:他们就知道提需求,反正也不用自己开发。
那么,组织分组的标准有哪些呢?有四个:工作流相依性、工作方法相依性、工作规模相依性和社会相依性。
工作流相依性。许多针对特定操作任务之间关系的研究,都着重指出了这样一个结论:对操作任务的分组应该反映出工作流的自然相依性。例如,图6-15是
一位作者对纺织厂中连续生产工序“自然”和“不自然”的看法。以工作流相依性为基础的分组,单位成员会有一种领土完整的感觉,他们支配着一个定义明确的工
作流程,工作中所出现的大多数问题,都可以通过彼此的相互调节而得到轻易的解决。相反,如果一个定义明确的工作流程分解到若干不同单位来完成,那么协调起
来就困难了。组织要求各单位之间能够相互合作,可实际上,单位之间很难进行良好的合作,所以,一旦出现问题,必须呈交给远离工作流程的上级管理者来解决,
而这些上级管理者由于远离实际的工作流程,往往会根据下级汇报做出决策,于是决策的有效性可想而知。(明茨伯格-卓有成效的组织)
图 6-15根据工作流对纺织厂的“自然”与“不自然”分组
那么,根据工作流相依性分组的最优解和最差解分别是怎样的呢?我们以软件开发流程来进行说明:
图 6-16工作流相依性分组最优解
如果一个单位的职能能够涵盖整个完整的工作流程,则是最优解。在这种情况下,工作中的大部分问题都能在单位内得到解决。如图6-16所示,即开发流程中的大部分工作都能在一个团队内完成,因为这个团队包含了BA、开发人员、测试人员等多种角色的成员,所以也被称为全功能团队。
实际上,由工作流相依性重新思考组织分组由来已久。1990 年迈克尔 · 哈默在《哈佛商业评论》上发表了题为《再造:不是自动化改造而是推倒重来》的文章,文中提出的再造思想开创了一场新的管理革命。 1993 年迈克尔 · 哈默和詹姆斯 · 钱皮在其著作《企业再 造:企业革命的宣言 》一书中,首次提出了业务流程再造 (BPR : Business Process Reengineering) 概念,并将其定义为:对企业业务流程进行根本性的再思考和彻底性的再设计,以取得企业在成本、质量、服务和速度等衡量企业绩效的关键指标上取得显著性的进展。
以此为标志,形成了新的业务流程理念,并伴随着对传统企业金字塔式组织理念和管理模式的反思,新的理念强调企业以业务流程为中心进行运作、打破传统的部门隔
阂、增加客户价值和企业效益(降低成本)。以业务流程为中心取代职能分工,成为管理的首要原则,围绕流程建立起来的组织具有更高的敏捷性、效率和效益,呈
现出扁平化、网络化的特征。
然而重新思考图6-16所示的全功能团队,你会发现,在很多情况下,在最低层级组建上图所示的全功能团队并不现实(什么是最低层级?意思是该单位不会再有下级单位),出于沟通效率的考虑,一个单位的成员不能够无限扩大,在传统的管理书籍中(法约尔),这个约束甚至被建议为5人。
在很多制造型企业里,这个人数实际上是大大超出这个限制的,原因就在于标准化。然而,在知识密集型企业里,因为并没有一致的标准能够遵循,单位成员之间必
须面对面沟通以协调彼此的工作,那么单位规模必须足够小,小到便于所有成员能够做到适宜、频繁和非正式的沟通。所以,对于一个软件项目而言,一个小于10人的全功能团队是最适合的,一旦团队规模超过20人,那么就必须进行再分组。对很多软件开发而言,他们需要的人数远超20人,那么这种最低层级上的全功能团队就不再适用。
图 6-17工作流相依性分组次优解
如果工作流程上的各个单位构成顺序依赖的关系,则是次优解。在这种情况下,每个单位仅仅对其上一个单位产生依赖,单位之间的协调较少。如图6-17所
示,可以看出这是一个典型的以职能进行分组的组织,这样的分组至少看上去并不坏,但是现实却是:这是一个相当没效率的分组。原因就在于该分组基于一个重要
的假设:开发流程中的任务是可以分阶段完成的即瀑布开发模型。现实中,这个假设却是完全不成立的,这些任务联系的如此之紧密,以致于在这些单位之间不得不
时时发生大量的协调。于是该分组实际是下图6-18的样子,最差解!
图 6-18工作流相依性分组最差解
如
果工作流程上的各个任务需要跨越多个单位进行反复协调沟通,那么则是最差解,称之为交互式相依。在我观察过的一个组织里边,测试人员发现软件缺陷后的第一
反应不是走过仅仅一屏风之隔的开发小组里进行沟通,而是先填写在线的缺陷跟踪系统,然后再打开即时消息工具,给开发人员发消息:有缺陷,缺陷号是xxx。组织在进行分组时,必须寻求将协调和沟通的成本降至最低。
工作方法相依性。即
使用相同工作方法的人员分到一个单位,通常也就是职能分组。这种分组的好处在于能够激发方法的互相交流,也就是专业性,同类专家分到一起之后,他们能够互
相交流,提高各自的专业水平。在现在公司里,经常能够看到不同团队成员之间的非正式交流,这里,其实是公司整体的文化氛围为这种交流提供了便利。实际分组
时,需要在工作流相依性和工作方法相依性间做出权衡。
规模相依性。第三个标准与经济规模有关。考虑这样一个例子,软件的测试需要真实的硬件环境进行模拟,而这些硬件比较昂贵,那么一个最经济的方式就是成立专门的测试部,统一购买一批硬件,统一对所有的软件进行上线前测试。同理,由于DBA比较昂贵,公司不可能为每个团队都配备一名,所以DBA不属于任何团队,其是共享的。
社会相依性。第四个标准与具体的工作没有关系,与人的社会性有关系。如果领导没有头晕,他是绝对不可能将两个水火不容的人放置到一个单位内的(帝王除外,那叫帝王术)。
以上就是组织进行分组的四种标准。归纳一下:如果工作流相依性意义重大而又难以纳入标准的话,那么组织就应该尝试以市场(项目)为基础进行分组,这样便于相
互调节和直接监督;如果工作流不规则,标准化能够涵盖工作流相依性,如果方法和规模相依性意义重大,那么组织应该积极寻求专业化,以职能进行分组。
最后,我们讨论一下大规模软件团队的分组,在上面我们提到,一旦人员规模超过20人,那么最低层级上的全功能团队就不再适用,就有必要进行再分组。如何进行再分组呢?图6-19是某IT企业的多层级分组,实际上最重要的是开发部门的按特性分组,每个开发小组都必须能够独立交付产品的一个特性。注意,这里是交付,既然是交付那么就不仅仅包含开发一个任务,还需要包括需求分析与测试,这样,从某种意义上,该开发小组实际构成了全功能团队,实际中,每个开发小组都包括了系统分析人员、开发人员与测试人员。
开
发部门按照特性交付分为多个开发小组后,整个产品由一个个模块构成,新的问题出现,就是系统的集成问题,这里的集成问题实际反映出各个开发小组之间的协调
问题。此时,一个独立的测试部门和持续集成就是必须的了,从某种意义上理解,测试部门实际上着重解决的是各个模块间的相互影响以及系统作为一个整体的完整测试,从持续集成的角度考虑,此时最重要的自动化测试应该应用在各个模块之间交互的部分。
图 6-19某IT企业的多层级分组
分享到:
相关推荐
3. **分组管理**:对于有小组活动的课程,可以实现分组管理,方便团队协作。 4. **搜索与过滤**:提供搜索框,允许用户快速查找特定课程,同时可以按课程名、教师、教室等条件过滤。 5. **导入导出功能**:支持从...
24TT多功能抽奖软件是一款功能全面、设置灵活、操作简单、界面美观...本软件适用各种活动的抽奖环节或游戏随机分组,如企事业单位的科室、团队或者个人组织举办的新年年会、晚会、圣诞、厂庆、新春团拜、活动、尾牙、婚
- **组织管理**:包括部门管理、用户管理、分组管理、权限管理等功能,构建清晰的组织架构,实现高效团队协作。 - **产品管理**:覆盖产品、需求、计划、发布和路线图的全生命周期管理,确保产品愿景与市场需求紧密...
- 组织管理:包括部门管理、用户管理、分组管理和权限管理,确保团队组织结构清晰,权限分配合理。 - 产品管理:涵盖产品、需求、计划、发布和路线图管理,便于产品生命周期的全程跟踪。 - 项目管理:涉及项目、...
执行力管理系统是一种专为组织提升工作效率和团队协作设计的软件平台。...综上所述,执行力管理系统是一个全方位的办公解决方案,通过整合多种工作流程,促进团队之间的沟通与协作,从而提升整个组织的执行力和效率。
JAVA客户端是ScrumWorks的全功能版本,允许用户对Scrum的所有数据进行全面操作。这包括添加、编辑和删除Backlog条目,从Excel导入和导出数据,执行后台数据备份,以及管理阻碍。其桌面视图清晰地分为两部分:右侧...
实训课程通常采用项目教学法,让学生完成一个实际的Android应用程序,但这往往存在实训任务与实际工程脱节、教学组织方式不明晰等问题。 课程的目标设定应以实际的Android应用开发环境为参照,强调团队合作和CS...
事务管理,如Todo管理,帮助个人有效跟踪任务,同时组织管理涉及部门、用户、分组和权限设置,确保团队协作的顺畅。禅道还具备统计功能,提供丰富的统计报表,以便分析项目进度和团队绩效。其强大的搜索功能有助于...
证券公司的业务系统是其运营的核心组成部分,它涵盖了各种关键功能以支持经纪人的活动和服务客户的需求。以下是该系统各个部分的详细说明: ...通过这些细致的功能设计,系统可以全方位支持公司的日常运营和长期发展。
4. 360度评估:此功能用于全方位评估个人或团队的表现,通过匿名或多角度反馈,提供全面、客观的评价结果,有助于个人成长和团队建设。 5. 投票系统:SurveyKing的投票功能适用于各类决策场景,无论是组织内部的...
【用友NC63全产品培训-交流社区】是针对用友软件NC63版本的协同产品培训,主要涵盖企业内部的信息发布、信息交流、活动报名等功能,旨在提升企业的信息化管理水平,实现多级集团管控、全产业链协同以及动态企业建模...
学校工会组织的迎新联欢活动方案旨在促进教师团队的交流与合作,增强团队凝聚力,帮助新入职的教师更快地融入学校大家庭,并通过轻松愉快的活动让全体教职工在紧张的工作之余得到放松,以更好的精神状态投入未来的...
Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习Oracle为提升语言效率而加入的支持特性,进而将两者综合考虑并在工作中加以应用。作者通过总结各自多年的软件开发和教学培训经验,与大家...
"团队"可能指的是开发团队的名字或者是数据库分组,这表明整个项目是由一个团队协作完成的,并且数据库部分可能已经经过了团队的分工和组织。 结合以上信息,我们可以总结出以下知识点: 1. **C#编程语言**:C#是...
总之,Postman 9.12.2 中文版为开发者提供了全方位的API开发和测试支持,无论是个人项目还是团队协作,都能大大提高工作效率。通过熟练掌握和运用其各种功能,你将能更好地设计、测试和维护API。
- 分组管理模块支持创建、删除和修改联系人分组,提高了信息组织的灵活性。 6. **系统设计开发总结** 通过本次课程设计,不仅掌握了C#编程语言和数据库系统的应用,还理解了系统分析、设计和实现的全过程。该...
在深入探讨SAP_SP-ECC6的基本业务配置过程,尤其是SD(销售与分销)模块的配置细节之前,我们首先需要理解SD模块在SAP系统中的核心功能和作用。SD模块负责处理所有与销售和分销相关的业务流程,包括但不限于客户订单...