バージョン管理と継続的インテグレーションを使用しない深刻な企業はありますか?どうして?


17

私の同僚は、継続的な統合を備えたビルドサーバーとバージョン管理ソフトウェアの両方を使用していたため、ソフトウェア部門は非常に高度であるという印象を受けていました。これは私の観点とは一致しませんでした。深刻なソフトウェアを製造していて、どちらも持っていなかった会社を知っているからです。しかし、私の経験はほんの一握りの会社に限られています。

ソフトウェア業界に属し、これらのツールを使用しない実在の会社(プログラマー3人以上)を知っていますか?そのような会社が存在する場合、そうしない理由はありますか?


3
これらの厄介なソフトウェアアクター。
モニカとの明るさのレース

1
ソフトウェアアクターはソフトウェア開発者とは違うのですか?
アディティアP

「私はソフトウェアではありませんが、テレビでプレイします!!」-ソフトウェアアクター。
FrustratedWithFormsDesigner

1
ジェイン・シーモアがいます。彼女は真面目なソフトウェア女優です。または、少なくとも彼女はライブでソリティアを演じて死にました:)
ケビンD

3
10年前に働いていた場所では、サポートされているすべてのシステムで毎晩ビルドが行われました。彼らはコンパイルに近づきませんでした。今まで。
デビッド

回答:


5

あなたがそれらを深刻な行為と呼ぶかどうかはわかりませんが、MySpaceはこの面ではかなり貧弱です:http : //highscalability.com/blog/2011/3/25/did-the-microsoft-stack-kill-を参照してくださいmyspace.html


1
+1少なくともメジャーリーグに参加しています。それが可能だとは思いませんでした。バージョン管理のないこのような大企業。図を移動します。
ダラマラク

クレイジー。私はそれを信じていなかったでしょうが、そのブログと記事からの参照はすべて信頼できます。
スティーブ

犬のせいだ。
ジェフ

2
ガレージでバンドを始めるティーンエイジャー向けのウェブサイトは、ガレージで働くコーダーのスタイルで書かれています。図。
quant_dev

13

あなたは現実が常識にできることを見て驚くでしょう;-)

バージョン管理システムを使用していない企業はまだかなりあると思います。興味深いことに、これまで見てきたすべてのケースで、そのようなシステムの使用に喜んで反対したのではなく、SVNのようなものが存在することを知らないからです!私に関しては、私はあなたに完全に同意し、いかなる種類のバージョン管理も使用したくない状況をイメージすることはできません。地獄、自宅のPCにある自分の個人ファイル(ワードドキュメントなど)をGITリポジトリにプッシュすることもあります。

継続的インテグレーションシステムの場合、日常業務でそれらを使用しないのがもう少し一般的です。時々、人々はそのようなシステムが存在することを知らないが、それらを使用しないことの非常に疑わしい言い訳が「私たちは十分に複雑ではない」または「継続的な統合なしで非常にうまく機能している」というケースを見てきましたそれでは、なぜ別のテクノロジーを追加する必要があるのですか?」もちろん、現実的な評価に耐えられない-しかし、元の質問に答えるために:それはすべてではありませんことは珍しいです。


11
平均的なソフトウェア開発者がバージョン管理ソフトウェアについて聞いたことがない可能性はありますか?これらの企業はどこから人材を雇用していますか?ザ・ダーク・サイド・オフ・ザ・ムーン?
-daramarak

7
@daramarak:多くの(ほとんどではないが)ソフトウェア開発者は、本を読んだり、開発ブログを閲覧したり、他の開発者(会社の外部)とまったく通信したりしません。これらの「21日間でビジュアルベーシックを学ぶ」の本の1つを自分で教えることによって開発に着手する場合、バージョン管理について耳にすることはまずありません。実際、大学でバージョン管理について学んだことを覚えていませんが、たった10年前です。
ジョーリSebrechts

@joeri-ありがたいことに私が働いている場所では真実ではありませんが、一般的に信じられます。
スティーブ

@perdian-「かなりの数の会社」と言いますが、具体的なことは何も言いません...記事、ブログなどのネーミングと恥辱へのリンクはありますか?私は(実際には、私はあなたを信じていないとは言わないよ ...あなたを信じている)が、データは常に良いです
スティーブ・

@Steve Haigh-いいえ、「ハード」証拠はありません。私は、CIまたはバージョン管理を使用しない会社(自分の名前はgのままにします)をいくつか見てきました。私はそれが企業を見つけるために多くのeasiertだと思う単に例えばジェンキンスページの参照リストを見ることで、使用するCIを。しかし、その逆ですか?「ねえ、私たちテクノロジーXを使用していません」と宣伝する人は多くありません ;-)
ペルディアン

12

現在、私の業界(銀行)のほぼすべての会社がバージョン管理を使用しています。しかし、バージョン管理なしでソフトウェアを正常に開発することは確かに可能です。20〜30年前。まさにそうしました。

多くの銀行は、おそらく大多数であっても、継続的な統合を備えたビルドサーバーを使用していないと言えます。継続的インテグレーションなしですでにソフトウェアを正常に配信している場合、その道を進むことは完全に合理的です。


3
「その道を続ける」ことが完全に合理的であることに同意しません。はい、過去X年間にソフトウェアを提供したからといって、変更せずに次のY年間機能しなくなるわけではありません。ただし、既存の(そして非常に成熟した)ソフトウェア製品にCIを導入した後は、常にこれから得られるものがあります。
ペルディアン

1
@perdian:多くのイニシアチブから得られるものが常にあります。したがって、CIを他のすべてとバランスさせる必要があります。CIが他のすべてよりも多くの利益をもたらすと主張することはできません。また、機会費用を測定する必要があります。
-RoadWarrior

1
@ SK-logic:英国の銀行業界では、当時RCSはまったく知られていませんでした。また、ソース管理なしで非常に大きく堅牢なシステムを開発しました。
-RoadWarrior

1
-1:「すべての会社について」という言葉は広すぎますが、間違っています。過去1年間、バージョン管理ツールを使用せず、共有ディレクトリのバージョンコピーに依存している企業を見てきました。はい、これは私を泣かせました。彼らは「svnは使いにくい」と言った。ああ、神様。しかし、私はまだそのような会社を見つけています。一般化しないでください。業界の全員がソース管理システムとは何かを知っているわけでも、オンラインで何かを学んでいるわけでも、継続的な統合が何であるかを知っているわけでもありません。(私はそれが地獄だと同意します。もうそこにいないことを嬉しく思います)。
クライム

1
@ SK-logic-...ここの海洋/電力産業を除き、RoadWarriorが述べたこと。名前は付けませんが、その分野(いくつかの特殊なソフトウェア開発)で支配的な少なくとも2つの会社について知っています。彼らには、良いコードと進行中のコードを区別する方法がありました。
ルーク

7

@RoadWarriorの答えに反論するためだけに:

私は銀行で働いています。過去3年間、バージョン管理の実装に費やし、現在ではコードベースの約20%でそれを実現しています(非常に大きく、約20人の開発者がおり、16年以上システムを開発しています)

業界(銀行業)での私の連絡先を通じて、正気な人がバージョン管理と呼ぶものを持っていない他の金融機関をたくさん知っています。

はい、私たちの業界(ソフトウェア開発)は、ほとんどの人が認めようとするよりもずっと悲しいです。


哀conの意。少なくとも業界の一部にはツールが非常に不足しているように聞こえます。私はそれが再び靴屋の子供たちについての物語だと思います。非常識な人がバージョン管理と呼ぶものを尋ねることができますか?
-daramarak

6
編集する前にコードのコピーを手動で取得します。たとえば、MYPROG - > MyProd.old4
ダン・マクグラス

悲しいことに、このプラクティスは人々が考えるよりも一般的です
クレイグT

3

バージョン管理:25年前の最初の仕事では、バージョン管理システム自体はありませんでしたが、これはPDP-11上のRSX11でした。しかし、設計とコードの正式なレビューによる非常に高いレベルの品質管理がありました(これは原子力産業で行われました)。

それ以降のすべてのジョブは、SCCS、PVCS、clearcase、cvs、perforceなどのバージョン管理システムを使用しています。

したがって、私の経験では、バージョン管理の使用は、深刻なソフトウェア開発ではほぼ普遍的です。

継続的インテグレーション:これは、特に自動化されたテストの方法でさえもおそらくおそらくない多くのレガシーコードを持っている場所で、より大きな問題です。既存のコードをCI環境に移行するには非常に大きな投資が必要であり、おそらく最終的には成果を上げますが、短期的な利益なしにそのような投資に経営陣がコミットするのは困難です。

私は1つの場所(大規模な銀行)で働いていましたが、一部のプロジェクトではCIを導入し、プロジェクトに一種のCIシステムを実装しました。


レガシーコードがある場所については、自動化されたビルドを実行しましたか、それとも手動のビルド/展開計画がありましたか?
-daramarak

3

ほとんどの企業は利点を理解しておらず、開発者は学習したくないか、以前とは異なる方法で「鍋をかき混ぜる」ことを恐れているため、これらのことを使用しないと思います前にやった。


3
絶対に!私は答えを聞いたことがあります(または、私たちはそれを下手な言い訳と呼ぶべきかもしれません)レジリエントな人々がツールの変更にどれほど反対しているかは残念です。
ペルディアン

1
私はそのような人々に我慢できません。悲しいことに、それは私のキャリアの中で頻繁に出会った「開発者」のタイプであり、彼らの無知に対処することができず、常にこうしたタイプの開発者がcompany延している会社を辞めようとしています。なんとなく敵対的に聞こえる危険があるが、この種の人々はこの職業では癌である。
ウェインモリナ

2

私は今は従業員ですが、以前はデータベースコンサルタントとして自営業者でした。その何年も、何年にもわたって、私はママからポップまで、フォーチュン100から800から1000の会社にいました。

継続的な統合を行った場所は比較的少数しか見ませんでしたが、バージョン管理を使用していない会社を見たことはありません。バージョン管理されたコードの集中リポジトリがない場所をいくつか見ました。個々のプログラマーは、自分のコンピューターでバージョン管理を使用するか、サーバー上のホームディレクトリの下のどこかにバージョン管理コードを保持していました。

私はこれらの企業のどれもソフトウェアビジネスに属しているとは思いませんが、彼らのプログラマーは確かにそうでした。


1

私の同僚は、継続的な統合を備えたビルドサーバーとバージョン管理ソフトウェアの両方を使用していたため、ソフトウェア部門が非常に高度であるという印象を受けていました。

いいえ、私はそれを言うのが嫌いですが、これは本当です。私が働いた最後の2つの場所(銀行の部門と金融会社)で、バージョン管理システムを実装したのは私でした。多くの場所(特に非ソフトウェアショップ)は、なぜ長期的な開発に本当に必要なのか理解していません。チームは通常、1人または2人で始まり、痛みを伴うものの、そこから成長します。1人または2人の場合、お互いにほぼ絶えずコミュニケーションをとることができるため、それなしではうまくいきません。

連続ビルドはまったく別のケースです。私が推測しなければならなかった場合、開発が行われている場所のほぼ90%にCIソリューションが存在していないことに間違いはありません。私は会議に参加しますが、ほとんどの人はMSまたはGoogle以外の組織がそれを持っていることに驚いています。私が見つけたのは、多くの時間を節約できるとしても、経営陣はそれを立ち上げて運用するために少額のお金を費やしたくないということです。

私がこれを見つけた最大の理由は次のとおりです。

  1. 経営陣は同じ組織の階級を超えて昇進しています。彼らは使用したことがなく、それを必要としなかったのに、なぜ今変更する必要があるのでしょうか?私が見つけたものの中には、変化を恐れている人もいます。新しいものは恐ろしいものであり、古いコンパイラをほこりにするのを防ぎ、必要なときに若いコンパイラを助けます。他の場合(そしてより頻繁に)、彼らは常に厳しい予算を持ち、どこでお金を使うかについて決定をしなければなりません。これらを実装することは明らかに必要ですが、それは以前にそれらを使用したことがあるためです。メリットはわかっていますが、わかりません。

  2. マネージャーは非ITの人々であり、彼らがここにいるのは、以前は必要なかったものにお金を使いたいということだけです。

私が人々から聞いたほとんどの議論はベストプラクティスなどに集中しており、それらは真実ですが、ほとんどの開発者が理解していないのは、このシナリオでは財務状況の観点からそれを組み立てる必要があるということです。この金額を使って、X時間を節約します。バックアップするには数字が必要です。これは常に真実ではありませんが、過去の私の経験でした。


開発者からのコミュニケーションが不十分で経営陣が上にいる場合、このような問題が発生すると想像できます。ありがたいことに、すべての企業がこのようなわけではありません。私が働いている場所では、(義務でなければ)何かが私たちをより効果的にすることができるかどうかを経営者に伝えることが期待されています。
-daramarak

1

多くの人がソース管理を使用しないのは、自分でコーディングしている可能性があり、コードベースを中央サーバーまたはUSBハードドライブに定期的にバックアップするために使用しているためです。長期的には有益だとわかっていたので、私は約1年前にSVNの使用を開始しました。それに慣れるのにしばらく時間がかかりましたが、今では私は常に参照できるコード履歴がたくさんあります。私が始めた4年前に実装したことを望みます。

継続的インテグレーション?必要な場合にのみ使用してください。私にとっては、ソフトウェアエンジニアは2人しかいないので、自分でソフトウェアに取り組んでいるので、継続的な統合の恩恵を受けることはできません。


1
継続的インテグレーションは、エラーが発生したときに特定することになっています。2人の開発者でさえ必要です。
-daramarak

1
@daramarak:2人のエンジニアが、統合されていない2つの別個の製品で独立して作業している場合は別です。
ブライアン

1
CIは、私がやらなくても構わないことの1つです。個人的には仕事でそれを持ちたいと思っていますが、それはすぐには起こりません。ただし、1日に1〜2回自動ビルドが行われますが、これでニーズには十分です。
マイケルK

1
自動ビルドを使用すると、途中にあります。コンパイルでチェックされたすべてが時々喜びになることを知っているだけです(「私のマシンでコンパイルします」)
daramarak

1

ハ、あなたはあなたがSCMとCIシステムを持っているので、あなたは進歩していると思いますか?それは、アマチュアの時間です。

多くの企業が最低限必要なことをしています。本当に必要なのはそれだけだからです。それが機能し、大きな労力をかけずに再現性のある優れたリリースを入手できれば、修正する必要はありません。このような状況で最後にやりたいことは、特に新しいサーバーをセットアップして管理し、システムを構築するために管理リソースを作業から奪うことになると、問題を「修正」し始めることです。

ただし、一部の企業では、ビルドを実行するだけでなく、テスト計画とテスト結果を介して展開に至るまで要件を制御し、コードレビュー、ワークフロースタイルのチェックイン手順、チームリーダー指定のワークパッケージ管理。これは実際の構成管理であり、そのような環境で作業する必要がないことを非常にうれしく思います!

私はいくつかの会社で働いたことがありますが、何らかの形のSCMを持たない会社は考えられません。それらのいくつかは他のものよりも包括的でしたが、それらのすべては、VSSを使用したものでさえ、彼らのためにうまく機能するシステムを持っていました。


笑 !署名:プロ。
deadalnix

私は同意します、SCMとバグトラッカーはズボンを着用して作業するのと同等の開発です。CIは重要な機能の基本的な自動化です。自動バックアップに似ていますが、リリース用です。ああ、CCBミーティング。毎週、時計仕掛けのように。
ティムウィリスクロフト

1

2人のプログラマーが複雑なアプリケーションとタスクのリストを作成している場合でも、互いの変更を打ち負かすことは困難です。

古いリリース管理ソフトウェアでさえ、変更を並べて示し、どちらの方向にも適用できるようにしました。変更がなければ、変更は複数回見逃されていました。

CIには多くの利点がありますが、なぜバージョン管理ソフトウェアを使用しないのか想像できません。


1

バージョン管理なしで働いていた最後の仕事は2006年でした(私はFWIWのWeb開発者です)。会社に雇われるまでに開発者が2、3人しかいなかったが、私はわずか数か月で10人ほどの開発者のうち最初に雇われた。採用時に最初にやったことの1つはバージョン管理の導入でした(CVS、それがどれほどひどいことだったのか、当時はわからなかったからです!)環境なので、使用しませんでした。ああ、私は彼らが実行しているアプリケーションのローカルインスタンスさえ持っていなかったことに言及しましたか?彼らはサーバー上のコードをハッキングしました。もちろん、自動化されたテストはありません。私はそれを考えるとうんざりします。

その前に、バージョン管理なしでAS / 400プログラミング作業を行いました。まともなVCSがその環境でも利用可能かどうかはわかりません。

現在、私はすべてのワンマンプロジェクトにGitを使用しており、最後のいくつかのジョブでもGitを使用しています。

CIは別の問題です。持っていることは素晴らしいことであり、私はそれを奨励しますが、少なくともインタープリター言語の小規模なプロジェクトでは、バージョン管理ほど重要ではありません。しかし、私の最近の仕事のほとんどにはCIサーバーがあります。とりわけ、展開前に完全なテストスイートを実行することを忘れることができないことを意味します。


「CIは別の問題です。持っていることは素晴らしいことであり、私はそれを奨励しますが、少なくともインタープリター言語の小規模なプロジェクトでは、バージョン管理ほど重要ではありません。同意した。CIは、頻繁かつ/または複雑なビルドを実行していて、多くの時間を費やしている場合、テストスイートを実行する場合、または複数のブランチをステージングできるようにする場合などにのみ必要です。多数の開発者がいてテストスイートがないPHPプロジェクトで、週に1回実稼働に移行する場合は、CIについて心配する前に、適切なQAワークフローに集中することをお勧めします。
Siliconrockstar

また、QAやその他のことを心配する前に、適切なテストスイートに集中することをお勧めします。
Marnen Laibow-Koser

理論上かもしれませんが、オープンソースソフトウェアを使用している場合、テストスイートが付属していない限り、これは事実上不可能です。適切で完全なテストカバレッジを持つPHPプロジェクトに取り組んだことは一度もありませんが、私が取り組んだすべてのプロジェクトにはある程度のQAがあります。
Siliconrockstar

@siliconrockstar私はあなた自身のコードのための良いテストスイートを持つことについて話していました。ライブラリコードの適切なレベルのテストはまったく別の問題です。
Marnen Laibow-Koser

@siliconrockstar価値のあることとして、私が取り組んできたほとんどのRailsプロジェクトは、優れた開発者テスト範囲を持っています(例外は積極的に改善しようとしていました)。すべてが正式なQAを持っているわけではありません。優れたテストで正式なQAを行う必要はほとんどありませんが、それでも非常に良いアイデアです。しかし、テストが実施されていない開発は非常にリスクが高いため、テストの改善は他の何よりも優先されるべきだと言います。
マルネンライボウコーサー

0

私は間違いなくあちこちに出くわしましたが、ほとんどは小さな会社です。私がより頻繁に見ている問題は、実際にSCMを持っているが、それらを追跡するには小さすぎるか重要ではない多くのプロジェクトを考えている企業です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.