是否有不使用版本控制和持续集成的严肃公司?为什么?


17

我的一位同事给我们的印象是我们的软件部门非常先进,因为我们同时使用了具有持续集成功能的构建服务器和版本控制软件。这与我的观点不符,因为我只知道一家公司制造过认真的软件,却没有一家。但是,我的经验仅限于少数公司。

有谁知道有一家从事软件业务并且不使用这些工具的真实公司(超过3个程序员)?如果存在这样的公司,是否有充分的理由让他们不这样做?


3
那些讨厌的软件演员。
与Monica进行的Lightness竞赛

1
软件参与者与软件开发者有什么不同吗?
Aditya P

“我不是软件,但可以在电视上播放!” -软件参与者。
FrustratedWithFormsDesigner

1
有杰恩·西摩(Jayne Seymour),她是一位认真的软件女演员。...或者至少她在《 Live and Let Die》中饰演了Solitare :)
Kevin D

3
我十年前在这里工作,我们每晚都在所有受支持的系统上进行构建。他们从来没有接近编译的地方。曾经
David Thornley

Answers:


5

我不确定您是否会称其为认真的举动,但MySpace在这方面还很糟糕:请参阅http://highscalability.com/blog/2011/3/25/did-the-microsoft-stack-kill- myspace.html


1
+1他们至少在大联盟中。我认为那是不可能的。这么大的公司没有版本控制。去搞清楚。
daramarak 2011年

疯。我不敢相信,但是该博客和该文章的参考文献都是可靠的。
史蒂夫

责怪它在狗身上。
JeffO 2011年

2
一个面向青少年在车库里开始乐队活动的网站,其编码风格就是在他们的车库里工作。图。
quant_dev

13

您会惊讶地看到现实对常识有何帮助;-)

我认为仍然有很多公司没有使用版本控制系统。有趣的是,到目前为止,我所看到的所有情况都不是因为他们愿意反对使用此类系统,而是因为他们不知道像SVN这样的东西存在!至于我:我完全同意您的看法,无法想象我不想使用任何版本控制的情况。地狱,我什至将自己的个人文件(word文档等)推送到家用PC上的GIT存储库中。

在持续集成系统的情况下,在日常操作中不使用它们是很常见的。有时也是因为人们不知道这样的系统存在,但是我也看到过这样的情况:-非常可疑-不使用它们的借口是“我们不够复杂”或“如果不进行持续集成,它就可以很好地工作,那么为什么还要增加另一项技术呢?” 当然,这并不是一个现实的评估-而是要回答最初的问题:这并不是常见。


11
普通软件开发人员可能没有听说过版本控制软件吗?这些公司从哪里雇用人?月球的黑暗面?
daramarak 2011年

7
@daramarak:许多(如果不是大多数的话)软件开发人员根本不读书,不浏览开发博客,也根本不与其他开发人员(公司以外)进行交流。如果您通过学习其中一本“ 21天之内学习视觉基础”书籍来进行开发,那么您不太可能会听说版本控制。实际上,我不记得只有10年前在大学学习过版本控制的知识。
Joeri Sebrechts

@joeri-值得庆幸的是,我在哪里工作,但总的来说我可以相信。
史蒂夫

@perdian-您说“很多公司”,但未提供任何具体信息...您是否有指向文章,博客等命名和羞辱的链接?我并不是说我不相信您(实际上我确实相信您),但是数据总是很好的……
Steve

@Steve Haigh-不,我没有任何“确凿的”证据。我自己见过一些不使用CI oder版本控制的公司(我会自己保留自己的名字g),并且通过一点推断,我认为还有很多“不在那儿”。我觉得这是一个很大easiert发现公司使用CI,单单看例如詹金斯页面上的参考名单。但是反过来呢?很少有人在广告“嘿,我们使用技术X” ;-)
perdian 2011年

12

我所在行业(银行)中的几乎每家公司目前都使用版本控制。但是在没有版本控制的情况下成功开发软件当然是可能的。20-30年前。我们正是这样做的。

我想说,许多银行,甚至可能是大多数银行,都不会使用持续集成的构建服务器。如果您已经成功交付了软件而没有进行持续集成,那么沿着这条道路继续走是完全合理的。


3
我不同意“继续走这条路”是完全合理的。是的,在最近的X年中交付软件并不意味着它在接下来的Y年中没有任何更改就无法工作。但是,在将CI引入现有(并且已经相当成熟)的软件产品中之后,总会有一些收获。
perdian 2011年

1
@perdian:很多举措总有收获。因此,您必须平衡CI与其他所有因素。您不能仅仅说CI会给您带来比其他任何事情都更多的好处。您还必须衡量机会成本。
RoadWarrior

1
@ SK-logic:RCS在英国银行业当时是完全未知的。而且我们开发了一些非常大型且强大的系统,没有任何源代码控制。
RoadWarrior

1
-1:“只是关于每个公司”的说法过于笼统,是错误的。我在过去的一年中看到一些公司不使用任何版本控制工具,它们依赖共享目录上的版本副本。是的,这让我哭了。他们说“ svn太难使用了”。我的天啊。但是我仍然找到一些像这样的公司。不要一概而论,不是行业中的每个人都不知道什么是源代码控制系统,也不在线学习任何东西,也不知道什么是持续集成。(我同意那是地狱。很高兴不再在那里)。
Klaim 2011年

1
@ SK-logic-... RoadWarrior所说的,除了此处的船舶/电力行业。我不愿透露姓名,但至少知道两家在其行业中处于主导地位的公司(某些专业软件开发公司),我相信他们从未使用过任何形式的VCS(就您而言)。他们有自己的方法来区分好的代码和进行中的代码。
Rook

7

只是为了反驳@RoadWarrior的答案:

我在一家银行工作。我花了近三年的时间来实施版本控制,现在设法在我们代码库的20%左右使用它(这相当大,我们大约有20位开发人员,并且我们开发系统的时间超过16年)

通过我在行业(银行)的接触,我知道的其他金融机构的没有了任何理智的人会打电话版本控制。

是的,我们的行业(软件开发)比大多数人想承认的要难得多。


节哀顺变。听起来至少行业中的某些部门严重缺乏这些工具。我想这又是关于皮鞋孩子的故事。我能问一个疯狂的人称其为版本控制吗?
daramarak

6
在编辑之前,请手动获取代码副本。例如,MyProg-> MyProd.old4
Dan McGrath

可悲的是,这种做法比人们想象的更普遍
Craig T

3

版本控制:25年前,我的第一份工作没有这样的版本控制系统,但这是PDP-11上的RSX11。然而,有一个非常有设计和代码的正式审核(这是在核工业)的质量控制水平高。

从那时起,每项工作都使用了版本控制系统,包括SCCS,PVCS,clearcase,cvs和perforce。

因此,以我的经验,版本控制在严肃的软件开发中非常普遍。

持续集成:这是一个更大的问题,尤其是在具有大量旧代码的地方,这些地方甚至可能没有太多的自动化测试方法。将现有代码转移到CI环境中需要大量投资,尽管最终可能会获得回报,但很难让管理层做出这样的投资而没有短期收益。

我曾在一个地方(一家大型银行)工作过,该地方为某些项目设置了CI,我们在项目上实施了一种CI系统,这确实使事情变得容易得多,但花了大约6个月的时间。


对于具有遗留代码的地方,他们是否进行了自动构建,或者是否有手动构建/部署计划?
daramarak

3

我可以想象,大多数MOST公司不会使用这些东西,因为它们不了解收益,而开发人员要么不想学习,要么害怕通过做与以往不同的事情来“搅动锅”以前做过。


3
绝对!我已经听到了答案(或者也许我们应该称其为la脚的借口)“到目前为止,我们还没有使用过它,并且由于它(以某种方式)起作用了,所以我们不需要它了”。弹性的人反对改变他们的工具真是可惜。
2011年

1
我不能忍受那样的人。可悲的是,这就是我在职业生涯中经常遇到的“开发人员”类型,我只是无法应对他们的无知,而总是希望离开一家这类开发人员盛行的公司。冒着听起来完全敌对的风险,这类人是这个行业的癌症。
韦恩·莫利纳

2

尽管我现在是一名员工,但我曾经是一名自雇人士,担任数据库顾问。在那些很多年的时间里,我曾在800到1000家公司中工作,从准妈妈到流行100年代。

我看到的地方很少进行持续集成,但是我不记得曾经见过一家不使用版本控制的公司。我确实看到了一些没有用于版本控制代码的集中存储库的地方。各个程序员可以在自己的计算机上使用版本控制,也可以将版本控制的代码保存在服务器主目录下。

我不认为这些公司中有任何一家从事软件业务,但是他们的程序员当然是。


1

我的一位同事给我们的印象是我们的软件部门非常先进,因为我们同时使用了具有持续集成功能的构建服务器和版本控制软件。

不,我不想说,但这是事实。我工作的最后两个地方(一家银行的部门和一家金融公司)是实施版本控制系统的那个地方。许多地方(尤其是非软件商店)不了解为什么长期发展确实需要它。团队通常从一两个人开始,然后从那里成长,尽管很痛苦。没有一个人,一个人或两个人就可以相处(不好),因为彼此之间几乎可以保持不断的交流。

连续构建是完全不同的情况。如果我不得不猜测,我敢打赌,几乎90%的开发场所都没有CI解决方案。我参加会议时,大多数人都为MS或Google以外的组织感到惊讶。我发现,即使它可以节省很多时间,管理层也不想花一小笔钱来启动和运行它。

我为此找到的最大原因是:

  1. 管理人员已在同一组织中晋升。他们从未使用过,也不需要它,为什么现在需要更改?我发现有些人只是害怕改变。有些新东西令人恐惧,它会阻止他们使用旧的编译器,并在需要时为我们的年轻编译器提供帮助。在其他时间(且经常),他们的预算总是很紧张,并且他们必须决定在哪里花钱。对于我们来说,实现这些功能是很明显的需求,但这是因为我们之前已经使用过它们。我们知道好处,但他们不知道。

  2. 经理是非IT人员,他们在这里的全部目的就是要花钱购买以前不需要的东西。

我从人们那里听到的大多数争论都围绕最佳实践等,而这些都是正确的,但是大多数开发人员不了解的是,在这种情况下,您必须根据财务状况来进行构架。有了您要花费的这笔钱,我们将节省X的时间,并且您需要数字来备份它。这并不总是正确的,但是我过去的经验一直如此。


我可以想象,当开发人员与管理层之间的沟通不畅时,就会出现这样的问题。幸运的是,并非所有公司都是这样。在我工作的地方,我们期望(如果没有义务)告诉管理层是否有某些事情可以使我们更有效。
daramarak

1

我会说很多人不使用源代码管理,因为他们可能自己编写代码,并习惯于定期将代码库备份到中央服务器或USB硬盘驱动器。大约一年前,我强迫自己开始使用SVN,因为我知道从长远来看它将是有益的。花费了一段时间才能习惯它,但是现在我有很多代码历史可以随时参考。我现在希望四年前开始实施时就已实施。

持续集成?仅在需要时使用它。对我来说,只有两名软件工程师,所以我们不能从持续集成中受益,因为我们自己开发自己的软件。


1
持续集成应该在错误发生时识别它们。甚至有两个开发人员也需要。
daramarak 2011年

1
@daramarak:如果两位工程师正在独立处理两个未集成的产品,则不会。
布莱恩

1
CI是我愿意做的事情之一。我个人很想在工作中拥有它,但是这不会很快发生。但是,我们确实每天进行1-2次自动构建,这确实满足了我们的需求。
Michael K

1
使用自动构建,您已经完成了一半。只是知道有时检查到的所有内容都会很
有趣

1

哈,您认为自己先进,因为您拥有SCM和CI系统?让我告诉你这是业余时间。

许多公司都做到了最低要求,因为这是它真正需要的。如果可行,并且您无需花费大量精力即可获得良好的可复制发行版,则无需进行任何修复。在这种情况下,您要做的最后一件事是开始“修复”问题,尤其是在将管理资源从他们的工作中移出来设置和管理新服务器以及构建系统的时候。

但是,有些公司需要更严格的系统,一旦这样做,不仅要进行构建,还要通过测试计划和测试结果来控制整个需求,直至部署,并接受代码审查,工作流样式的签入程序和团队负责人指定的工作包管理。这是真正的配置管理,很高兴您不必在那种环境下工作!

我曾在几家公司工作,我想不出没有某种形式的SCM。他们中的一些人比其他人更全面,但是他们每个人都有一个对他们来说运作良好的系统,即使是使用VSS的系统。


大声笑 !签名:专业。
deadalnix

我同意,SCM和错误跟踪器在发展上等同于穿着裤子上班。CI是关键功能的基本自动化。类似于自动备份,但适用于发行版。嗯,建行会议。每个星期都喜欢发条。
Tim Williscroft 2011年

1

即使有两个程序员,当您在处理复杂的应用程序和一系列任务时,也很难不互相敲击。

甚至我们以前的版本管理软件也可以并行显示更改,并允许将它们应用于任一方向。没有它,就不会多次错过变更。

我看到了CI带来的许多好处,但是我无法想象为什么任何公司都不会使用版本控制软件。


1

我上次没有版本控制的工作是在2006年(我是Web开发人员FWIW)。在雇用我之前,该公司只有大约2到3个开发人员,但是在短短几个月内,我是10个左右的开发人员中的第一个。聘用时我做的第一件事就是引入版本控制(CVS,因为当时我还不知道它的糟糕程度!),但是在我之后聘用的许多开发人员无法将其用于他们的开发工作环境,所以没有使用它。哦,我是否提到他们甚至没有运行该应用程序的本地实例?他们入侵了服务器上的代码。当然,没有自动化测试。当我回想一下时,我会畏缩。

在此之前,我做了一些没有版本控制的AS / 400编程工作。我不知道在该环境下是否还可以使用像样的VCS。

现在,我将Git用于所有的单人项目,而我的前几项工作也都使用了它。

CI是另一回事。很棒,我鼓励这样做,但是它比版本控制要重要,至少对于使用解释语言的较小项目而言。不过,我最近的大部分工作都使用CI服务器。除其他外,这意味着没有人会忘记在部署之前运行完整的测试套件。


'CI是另一回事。拥有它很棒,我鼓励这样做,但是它比版本控制要重要,至少对于使用解释语言的较小项目而言。” 同意 实际上,只有在您进行频繁和/或复杂的构建并且开始占用大量时间,想要运行测试套件或者希望能够暂存多个分支等时,才需要CI。一个有十几个开发人员,没有测试套件的PHP项目,而您每周进行一次生产,您可能会想着重于好的QA工作流程,然后再开始担心CI。
Siliconrockstar 2015年

在开始担心质量检查或其他问题之前,您可能需要专注于一个好的测试套件。
Marnen Laibow-Koser 2015年

也许从理论上讲,但是如果您使用的是开源软件,除非它附带测试套件,否则这几乎是不可能的。我曾经没有从事过具有适当的完整测试覆盖范围的PHP项目,但是我从事的每个项目都有一定程度的QA。
Siliconrockstar

@siliconrockstar我在谈论拥有适用于您自己的代码的良好测试套件;适当的库代码测试级别是另一回事。
Marnen Laibow-Koser 2015年

@siliconrockstar值得一提的是,我从事的大多数Rails项目都具有出色的开发人员测试覆盖率(例外是积极尝试对其进行改进);并非所有人都有正式的质量检查。进行具有良好测试的正式质量检查几乎没有必要,尽管它仍然是一个好主意。但是,如果没有适当的测试就很难进行开发,所以这就是为什么我说改进测试应该比其他任何事情都优先的原因。
Marnen Laibow-Koser 2015年

0

我肯定到处都碰到了一些,但大多数都是小型公司。我经常看到的问题是实际上拥有SCM的公司,但认为许多项目太小或不重要而无法追踪。

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.