为什么需要那么多开发人员?

本文主要针对那些不直接参与开发的人员,并且想知道为什么纯粹为了支持一个看起来稳定的项目需要那么多的人和时间。


为了获得直观的解释,请想象我们的项目是一艘船。 我们已经从造船厂放下了,他游泳,他优雅的外形和装满金色双眼罩的口袋让我们赏心悦目。 一切似乎都很好,但是出于某种原因,他需要一群人才能继续游泳。 但我希望他们改建新船...



如果项目没有开发,我们有什么问题(括号内将对问题的技术方面进行解释)。 它不是按优先级顺序编写的,但是无论如何:


  1. 该船下水航行,但泄漏很小。 厨房要么被水淹没,要么货物掉落到水面,或者鱼会游泳。 似乎这并不重要,但是却使我们失去了持续的利润。 (错误,没有它们,任何项目都无法完成。需要人来统治他们)。
  2. 我们游泳的水域的规律经常变化。 如果您不阅读它们并且不适应它们,那么从下一个泊位迟早会有一条凌空抽射将立即把我们的船炸成碎片。 (即使您的业务绝对合法,法律也会动态变化,并且会添加有时在技术上难以实施的新要求。而且,如果不执行这些要求,您可能会被罚款,从而使项目立即泛滥。
  3. 海盗经常袭击船。 他们中的一些人只装备了带有弯刀的训练有素的海豚,但是如果您的项目真的很大,早晚要装备真枪的重型厨房就会出现。 一个单独的细微差别是,在和平时期,您可以冷静地将它们放到船上,它们有机会充分了解您的武器和设备。 他们可以在陆地上分别研究您的钻机,如果运气好的话,他们可以远程炸毁甲板上的火药桶。 (黑客不睡觉,他们可以研究您的项目,发现项目或其组件中的漏洞,并给您造成巨大的物质损失。要抵御这些威胁,需要各方面专家不断努力。)
  4. 在陆地上,经常会发生各种灾难,对商品的需求也在变化。 可能发生的情况是,当您再次到达港口时,令人讨厌的搬运工会向您扔出大量货物,以至于在其重量下,船只会慢慢沉入海底。 (在相同的“黑色星期五”等各种因素的影响下,您可能会承受巨大的负担。如果您不为此做好准备,则不仅将无法获得利润,而且还会损失标准收入并遭受声誉损失)。
  5. 该船的部分设备根据组成船上巫师的星座运势工作。 不幸的是,他经常躺在衣领后面,在最好的日子里,他比一个月前看不到未来。 有时候,您可能会在路线中间知道帆突然破裂,火药变得潮湿。 (现代系统与大量的外部提供程序和服务进行交互。它们通常都有自己的问题。您需要快速跟踪它们,并为所有关键的故障点做好准备)。
  6. 我们将是现实的。 海上的天气不同,有时还会发生暴风雨。 当然,您有一条受过专门训练的飞鱼,站在船长船舱内的一个精英水族馆中,以能够在雷暴雨前窥视而闻名,但不幸的是,这也不是无所不知的。 (无论您拥有多少指标,开发人员,仪表板和其他监控,有时都可能会掉下来。gitlab,AWS或任何出色的云解决方案都无法从中得到保障。然后,您需要人员和能力来快速筹集一切返回)。
  7. 通常情况下,由于船舶在一个水域中航行,这意味着它可以在另一个水域中航行而无需任何努力或改变。 船长常常意识到这个决定的谬误,只是注意到酸而不是水溅到了船外,导航员大声发誓,试图在Scylla和Charybdis之间滑行。 (通常,小小的产品变更会导致复杂的技术任务,而其规模却被低估了。例如,您一直在计算卢布的商品价格。您决定加一分钱。有什么问题吗?)

这些只是为什么您需要一支似乎无所作为的整个团队的几个例子。 我认为您可以在评论中添加很多有趣的东西。 但是到目前为止,我们已经考虑了一个没有发展的退化案例。 但是它将返回现实世界-也许您建造了最快的飞剪机,并且从造船厂离开时的“ Cutty Sark”是造船业的王冠。 但是从字面上看,几年过去了,一艘原子船在旁边游泳,此后,团队一致地将自己沿着船锚悬挂在脖子上,跳入舷外,意识到这里没有东西可以抓住。 好吧,或者放下船去上一艘核潜艇....


那么-为什么您需要一支如此庞大的团队,每个月似乎要看到一个半功能,而且显然在大多数情况下,喝果汁和在咒骂场合下骂人?


  1. 您尝试为船上配备最新的设备,但不断出现一些烦人的小问题-鱼雷不会塞入枪口,根本没有涡轮机的空间,并且由于某种原因,声纳需要用电。 团队骚乱并花费数月的时间来更改设计。 骚乱得到抑制,枪支被钻孔,声纳由水手提供动力,水手轮流踩着发电机车。 (在杂货店方面,很难评估更改项目遗留项目所需的工作顺序。有时这些人员的成本甚至可能超过潜在的收益。或者建造新船可能会更容易)。
  2. 有细微差别。 您的船一直在行驶,您无法进入船厂。 因此,不仅需要更换龙骨-您在旅途中也要进行龙骨更换,有时船会失去控制权并落在礁石上。 为了减少这种情况的发生,您将想出一些使这些变化不那么痛苦的过程-例如,将旧龙骨和新龙骨放在一起。 或零碎。 但是所有这一切也值得资源。 (当项目已经投入生产时,任何更改都可能破坏您想要的任何东西。有很多实践可以帮助您避免这种情况,但是它们都会花费时间和资源)。
  3. 实践表明,有时船只会繁殖。 而且它们是胎生的。 有时很难注意到另一艘船如何出现并在货舱中慢慢成熟。 将来,这很棒,因为它将使您能够扩展舰队并获得更多的双刃剑。 但是,如果您还没有弄清楚如何及时进行剖腹产,那么胎儿可能会过熟,并将母船的内部撕裂到地狱,同时还会死亡。 (通常其他人在同一个项目中进行开发,如果您不考虑架构和时间上的分离方式,那么这将充满严重的问题。如果您将其彻底考虑,则会浪费时间和资源。)
  4. 当几个人同时在船上做某事时,他们将肘部放到耳朵里,然后不小心将新的齿轮丢入水中,然后他们争辩钉子的长度。 当然,所有这些都可以解决-但是解决冲突和不同的愿景也需要时间(团队的规模有互动的开销)。
  5. 您决定更换甲板上的地毯。 在地毯下,木板烂了。 和木板在生锈的地板上。 并且没有相同大小的新地板。 而那个-不适合框架的大小。 为了更换镜架,您需要潜水服和30个人将抽出水。 在此过程中,海妖从深处的黑暗中出现。 (通常一个错误会引出另一个错误,并且似乎一个小任务占据了真正的宇宙比例)。
  6. 要更换救生圈,您需要更改鼻形。 否则,方向盘将掉落。 (所有组件都是相互联系的,并产生未知的协同作用,还必须考虑其后果)。
  7. 如果一个知道算命鱼所有面部表情的水手突然从船上消失了,那么您可以长时间呆在没有风暴的警告下。 有两种解决方法-要么将这个水手拴在一起,要么教所有团队成员了解鱼脸的表情。 (总线因素。关键开发人员的流失会极大地复杂化并减慢开发过程)。

您可以列出很长的时间,但我会感到无聊-我希望传达了主要思想,并且可以在评论中添加其他要点。 游泳愉快!

Source: https://habr.com/ru/post/zh-CN480748/


All Articles