我想知道您当前的团队在报告和组织结构图方面的结构。如果有人能提供贵组织中使用的各种角色的名称,那就太好了。
我想我完全搞砸了这个问题。我还想知道理想的设置是什么,有点像你梦想的组织结构图。
我想知道您当前的团队在报告和组织结构图方面的结构。如果有人能提供贵组织中使用的各种角色的名称,那就太好了。
我想我完全搞砸了这个问题。我还想知道理想的设置是什么,有点像你梦想的组织结构图。
我在一家小型软件公司工作;我们只有两个开发人员。在我开始编写软件之前,我学习了心理学,之后获得了 MBA 学位,所以我可以从现存的文献中告诉你,一般人可以管理 2-7 件事,而最佳的是 4-5。所以,你最好的选择是参加 5 人或更少的团体。如果您有 5 个团队,则一个人可以管理所有 5 个团队。如果您有 25 个团队,则每个团队由一个人管理,五个经理由一个人管理。
就我个人而言,我总是有两个程序员在同一张桌子上工作。我和我的首席开发人员在一张非常大的办公桌前工作。我们面对面,没有隔阂。我们相处得很好,协作的便利性使我们非常有效率。我可能总是有多达 3 到 4 名程序员同时在同一个办公室工作。我会让他们面对面,这样你仍然有隐私,所以通过眼神交流来提问是容易和舒适的。
另外,我不会让我的程序员呆在一个公共区域。对于程序员来说,分心可能会付出极大的代价。我喜欢他们有能力关上门说:“今天没有人打扰我……我在这个区域!”
最后,理想情况下,开发人员一次会处理尽可能少的项目。上下文切换是开发环境中的杀手。一个简单的分心可能会花费多达一个小时的生产力。上下文切换可能需要几个小时。因为我们太小了,我们经常在同一天完成 5 或 6 个项目。较大的公司几乎将程序员专门用于一个项目,这减少了由于上下文切换而导致的效率损失。
在 Microsoft Windows 和 Office 组织中,产品开发团队(大部分)由三个角色的人组成,即项目管理 (PM)、测试人员和开发人员。
当然,开发者负责开发。测试团队负责开发功能和相关的测试和基础设施;并运行测试以发现错误。很少有测试是手工完成的——我们花了很多时间使事情自动化。这包括设计事物以使它们更易于测试。
项目管理角色负责沟通、协调和规划。这对不同的团队意味着不同的事情。但它们是将一切粘合在一起的粘合剂。
从组织结构图的角度来看,事情非常传统。大多数经理有 3 到 9 人向他们汇报——不是太平,但也不是太深。一个非常扁平的组织树在微软不会很好地工作(这并不意味着它很糟糕,但从文化的角度来看,拥有超过 9 个直接下属是具有挑战性的)。
我们还有“团队负责人”职位和“项目工程师”职位。我确定还有其他的我忘记了,但今天早上我还没有喝足够的咖啡。
我们有:
主人。
开发人员(从技术上讲,所有者是开发人员之一)。
没有中层管理人员,没有头衔,没有不必要的手续。
为我工作。
在我的公司,我们的管理结构非常扁平。我们的开发团队没有任何等级制度;所有软件工程师都处于同一“级别”,并直接向软件开发副总裁报告。有时我们中的一个人会被派去领导一个项目,但在我们公司,这只是意味着不同的职责,而不是晋升。这有点酷,因为它使我们的开发团队成为精英。
在大多数情况下,我们的设置是这样的:
经理 <- CMMI 促进者 <- 软件工程师 I-IV
经理 <- 系统工程师
这是一个相当简单的设置,但效果很好。
[导演] <-> [PM] <-> [开发人员,测试人员]
[开发者] <-> [导演]
很平。
我们的人力资源报告关系不同于开展工作的团队。我们有三个 Scrum 团队,其中有几个产品负责人,但这些团队中的人不一定向他们团队中的某个人报告。高级开发人员(我们三个)向工程总监报告,其余的其他开发人员(六人)向两名高级开发人员报告。同时,测试人员和 SDET 都向高级 SDET 报告。因此,在人力资源管理方面,有 3 名中层管理人员向工程总监汇报,还有一名没有任何报告的高级开发人员和我们的架构师。这 15 个左右的人依次分布在三个不一定与组织结构图一致的 Scrum 团队中。Scrum 团队负责日常确定人们应该做什么,