在大型编程团队中工作感觉如何?


16

我一直很幸运能在一个小型编程团队中工作。我认为与我合作最多的是11位程序员。与数百名开发人员一起进行项目是什么感觉?几千?什么可以缩放,什么不可以?

编辑:感谢您的所有答复!似乎很少有积极的方面:

  • 可以在大型代码库上工作
  • 更好的内部职业发展
  • 员工免受滥用管理的保护(小级别上的-ve大于大级别上的+ ve)

大型团队还有其他好处吗?


1
糟透了 不惜一切代价避免它。
Paul Tomblin,2009年

4
我认为11人是一支庞大的团队...我曾经合作过的最大的团队是3人!:-)
Brian Knoblauch

阅读“神话般的人月”以获取一些观点……尽管它对我没有吸引力(我曾经与之共事的是其他4位开发人员,外加3位测试人员和一个下午)。较大的团队听起来像是开会之后又开会:(
workmad3

我同意。11是一个大团队。恕我直言3是最好的。
2009年

Answers:


11

我发现官僚机构规模真的很好。

除此之外,还不是很多。大型项目拥有大型团队,因为没有其他方法,而不是因为它(每个开发人员)效率更高。一旦您在效率低下(即知识转移和沟通)中增加了第二个人,便要付出代价。

我从事的最大的项目在5个不同的地点拥有70个左右的开发人员。即使更改一条线也至少花费了一天的时间,尽管部分原因是由于从苏黎世到伦敦的网络连接花费了45分钟以上的构建时间,而启动该应用程序又花费了45分钟。每个文件的签入时间大约为5分钟。我不是在开玩笑。伦敦开发商可以在短时间内完成此操作。

无论如何,您趋向于发现的是,在大型项目中,您将有一堆团队成员,您之间的互动并不多。它更像是一个松散关联的小型项目集合。我曾经读过,即使对于像Microsoft Office这样的大型项目,Microsoft的开发也倾向于将项目分为5-7个开发人员团队。

部分差异还包括大小公司之间的差异:大公司往往具有更多的流程,更多的规则,更少的灵活性等。但这绝不能保证。

不过,这可能对职业发展有好处。在小型公司中,有人必须离开或死亡,然后才能晋升(或公司必须成长,以使团队扩大并向上移动),而在较大的开发部门中,则可以在团队之间移动等等。

另外,有时您会找到一些非常聪明的人来结伴学习。在小型公司中,如此孤立和自力更生可能有助于程序员变得有些“奇怪”,有点像隐士。


我曾见过其中一些陌生人
Binary Worrier 2009年

2
有时我担心自己可能是其中一员
Yisroel 2009年

1
“我发现官僚机构的规模真的很好。” 喜欢那句话!
HLGEM,2009年

5

随着团队规模的扩大,沟通是我发现最重要的事情,而沟通却开始退化。进行交流变得越来越困难,并且难以确保每个人都在同一页面上。我间接地由大约75个开发人员组成的团队工作,我们使用一个通用的代码库,但是75个开发人员中的许多人分成了较小的小组来进行单独的“活动”。对我们而言,沟通只是一场噩梦。

大型团体的管理也更加困难,因为在大多数环境中,如果有8-12个人加入管理团队,不幸的是,这只会夸大沟通问题,因为这通常会创建“单独”类型的环境,其中各个子集开始脱离大团队,并尝试将知识保留在他们的团队中。


5

当我为武器系统开发软件时,我们拥有大批软件开发人员。由于没有人能满足要求(其中有些是经过分类的),所以这全都与团队以及团队之间的交互方式有关。

  1. 配置管理(每晚的构建过程)非常重要。在那些日子里,每天晚上都需要一个大型的分布式计算集群来重新编译世界。

  2. 工作授权-将您的时间花在总体总体项目时间表上的正确订单项上-真是令人头疼。下降到0.1小时。增量。

但是最大的交易是变更通知。特别是界面更改。

这是如此重要,他们发明了这种疯狂的两层工艺。大多数工作都用于确保接口更改通知请求(不是通知本身,而是通知请求)具有精心设计的支持软件,该软件带有数据库,报告和诸如此类的内容。

一旦请求被批准,实际通知或多或少就不用多说了。这意味着它实际上是一个单层过程,而请求实际上就是通知。但是,当您进行瀑布式开发时,所有开发人员都必须考虑很长的时间。

由于有这么多人并行工作,因此有了一个配置控制板。所有各种团队经理,再加上一群人的工作仅仅是为了协调变更。


4

我的第一个“实际”编程工作是与其他军队一起开发国际空中交通管制系统。这是一次非常成功的尝试,我们被认为是能力成熟度模型5级环境。从那以后,我去过中小型商店。那么,哪个是最好的地方?就个人而言,我每天都会去一家规模较小的商店。虽然有些人可能将5级视为圣杯,但对我来说却令人窒息。一切都必须记录,批准,签字等。不要误会我的意思,我肯定会看到其中的价值,尤其是对于像空中交通管制这样至关重要的系统,但问题是您想如何花费自己的时间?天?您是否希望能够自由幻想并实现它们,还是要写要求?也许如果我在ATC系统上待了更长的时间,我可能会升至能够设计和开发的水平,但是即使那需要X年,Y批准数,Z促销数-都规定得很好没有偏差的机会。令人窒息。

最后一件事,总的来说,我发现小型公司的开发人员素质要高得多,这仅仅是因为他们无法隐藏。在一个非常大的公司中表现平平并不难,但是在一个很小的公司中却变得很痛苦,而且它们通常不会持续很长时间。


2

我(简短地)在一个至少有数百名开发人员的组织中工作。但是,当然(?),组织内部是分区的,因此您作为一个雇员不会与其他所有人直接联系,这很难跟上。

在那个特定的地方,该软件被拆分为多个组件,并围绕组件组建了团队。一些团队只使用一个(大型)组件,而许多团队则负责一堆(较小)组件。

当然,这意味着使用非常大的代码库可以完成的所有工作;诸如配置管理,构建,集成之类的事情变得非常重要,这些事情又由专门的专门部门进行。而且,您令他们感到敬畏,因为他们能够收集所有开发人员部门的输出,并定期(在我工作的一周内)将它们全部集成到一个切实有效的内聚整体中。


2

我从未在大型程序员团队工作过,但是组织规模不断扩大的结果通常是更多的规则。这不一定总是一件坏事!除了使每个人的生活变得困难的规则之外,还有更多规则可以保护员工并确保良好的流程。

我已经看到小型组织中的管理人员摆脱了那些会立即被企业人事部门终止的事情。


2

我在大型项目中注意到的一个区别是办公室政治。项目越大,政治就越占主导地位。

我离开学校的第一个项目是几百名开发人员。作为刚从学校毕业的自大自大的开发人员,我真的还没有为此做好准备。这救了我的hiney(它是将唯一的唯一的事情曾经真正保护你)是朋友我做的量。

这是我从中学到的最大的教训。尝试与所有人交朋友。甚至是混蛋。特别是,如果您有机会停止工作一分钟,并且与从未与之交谈过的人交谈,那就去做吧。


1

我曾经花了一年时间在一个拥有500多人的团队中工作,其中大约200个是开发人员。我们正在提供一个EOA,它集成了几种不同的SOA解决方案。

在实践中,大约有30到50个团队,每个团队都有不同数量的程序员(我们团队中有3个),每个团队负责整体交付物的不同方面。

我曾经工作过的最大的团队大约有15个人(在一家不同的公司中,这只花了3到4个月)。我是团队的技术负责人,早上7点开始工作,我比其他人都早了2个小时,这是我完成自己的任务的唯一方法。

我不想在一个拥有超过8或10个开发人员的团队中工作,对于一个团队来说,有15个开发人员太多(很容易将团队分成两部分,不幸的是,不是我的电话),一个或三个开发人员是一个漂亮舒适的大小恕我直言

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.