優秀なプログラマーがバージョン管理を使用したことがないということはありえますか?[閉まっている]


73

私は、困難な状況を解決するのに役立つ専門のプログラマを探しています。

これまでのインタビューは驚くほど残念でした。これまでの最良の候補者は、バージョン管理ソフトウェアを使用したことがない経験豊富なプログラマーです。

問題自体はそれほど深刻ではないかもしれません。なぜなら、それは短時間で学習できるものだからです。

しかし、より深い側面があり、私を心配しています:

バージョン管理を必要とせずに10〜15年間、積極的にソフトウェアを開発する方法を教えてください。

追跡の問題の解決策を探していないという事実自体が、プログラミングに対する間違った態度の兆候を変えていますか?


25
誰が彼バージョン管理を必要としなかったと言いますか?彼はそれを必要としていました、そして、私は彼がそれを手動でしたと思います。それを言ったプログラマーは、何か新しいことを学ぶことに対して非常に抵抗しているようです-そのために準備してください。
ドックブラウン

6
@ e-MEEによって異なりますが、30〜60分で更新/解決/コミットを学習できますが、1時間で(d)vcsがどのように機能するかは誰も学習しません。何年もそれを使用するほとんどの人々はまだそれを本当に得ません。
アタマンロマン

3
@ConradFrixキャロットケーキ:)
チャドハリソン

7
良いプログラマはバージョン管理を使用したことがないためにのためにカレンダーが今日は1981年であることを述べている場合は、可能である
カズ

7
これは、10年の経験がなく、1年の経験が10回繰り返された人の典型的な例のように聞こえます。
ジャンヌピンダー

回答:


90

私は、ソース管理を使用していない会社で約11年間働いていました。私たちは管理しました(ほとんどの場合、変更をコメントし、いつでも復元できるコードを中央サーバーに保持しました)。より良い方法があるかどうか、私たちは本当に尋ねませんでした。そうは言っても、これは机の上に本の形でMSDNライブラリ全体を置いていた時代でもありました。

はい、インターネットの前にプログラミングがありました。

現在、ソース管理に出会わずに業界で10年以上を過ごすことができる方法を見つけるのに苦労しています。しかし、私はいくらかの同情を持っているでしょう、私はそれが可能であったと信じます、そして私はその詳細だけで候補者を拒否しません。候補者がこれをどのように管理しているかを調べて調べます。

あるいは、インタビュープロセスが問題であったかどうか疑問に思うかもしれません。彼はどのように最高の候補者でしたか?彼が持っていない、私が正しい質問をしていないだけの現代的なプログラミング技術はありますか?適切な質問をしていた場合、別の候補者は輝いていますか?

最後の注意として、懸念がある場合はすべての候補者を拒否することを恐れないでください。最初からやり直すのは時間がかかりますが、間違った人を雇う方が時間がかかります。


17
+1、興味深い答えです。しかし、「当時、ソース管理にはかなりの費用がかかっていましたとはまったく同意しません。RCSは30年、CVSは21年です。どちらもオープンソースです。
バルテック

8
+1:私はまだここで働いています。今年、ついに管理されたソース管理を手に入れました(主に私による)。私たちは今までそれを持っていないの結果として、すべての恐ろしいの開発者だとは思わないが、私はそれがに来るのすっごく気にうれしい
オリバー・クレア

3
候補者がソース管理の原則を理解していれば、問題は見当たりません。経験豊富な開発者は、使用するシステムの「構文」を非常に迅速に理解できるはずです。私が尋ねる1つの質問-この経験はすべて1つのサイトでですか?もしそうなら、彼はシステムを導入する権限を持っていなかったのかもしれません。彼の経験がさまざまな企業での経験がある場合は、もう少し掘り下げます。現在、ソース管理を使用しない開発チームを持つ企業の数は最小限に抑える必要があります。
BIDeveloper

4
正しい質問をすることについてのポイントについては+1。何が彼を最高の候補者にしたのだろうか。
シャンブレーター

3
@Ramhound:そして、ソース管理を手動で行う場合、バックアップに必要なハードウェアと時間を減らす必要があると思いますか?私の経験からすると、その反対はまったく真実です。
ドックブラウン

49

彼の態度にかかっていると思います。彼が非常に経験豊富なプログラマーであり、優れたプログラマーであれば、バージョン管理システムを迅速に習得できると思います。彼は2つの方法でそれについて話すかもしれません:

  • 良い

    私はバージョン管理を使ったことがありませんが、学ぶことに非常に興奮しており、開発をより効率的にするのに本当に役立つようです。私はプロジェクトに単独で取り組んできたので、それほど必要としませんでした。

  • 悪い

    バージョン管理は、業界でゆっくりと消えつつある流行語です。私はバージョン管理を超えています。


17
私はそれが10年前に有効だったかもしれないことに同意しますが、最近は?私はそれを「良い/悪い」ではなく、「悪い/恐ろしい」と言うだろう
-vartec

24
単独で作業している場合でも、VCSを使用することは非常に貴重です。プロジェクトが「ほとんど機能している」状態から二度と機能しない状態になり、「ほとんど機能する」バージョンに戻す方法がないため、プロジェクトがどんなに小さくてもすべてをVCS に入れることを誓いました。
-alroc

11
「学ぶのがとても楽しみです」-Coherenceのような高価な商用製品ではありません。ソース管理は、誰もが知ることができるものです。あなたが読めば任意のソフトウェア開発にブログをあなたはそれを知っておく必要があります。
アンディブート

7
この回答の+1。彼/彼女がすべてのスキルを持っていることは良いプログラマーの印ではありません。彼/彼女は必要なスキルを拾うことができるということです。
スティーブン

2
@スティーブン:いいえ。まったく違います。そのロジックにより、プログラミングを習得することができたため、8歳の子供を雇うことができました。IMOには、プログラマーと見なされるために必要な基本スキルがあります。プログラミング言語の習熟度は1つであり VCSの知識と使用は別です。他にもあります。
スティーブンエバーズ

34

20年以上にわたってDOSおよびWindowsでソフトウェア開発を行うことから、いくつかの視点を提供します。

Windows / PCの世界のバージョン管理ソフトウェアは、90年代前半から半ばまで信頼性の低いものでした。Visual Sourcesafe(VSS)は最高のWindowsベースのものでしたが、風変わりであり、多くのプログラマーが嫌っていました。一部のチームは、このような状況に対処した後、単に使用を楽しまないでしょう。

当時の他のほとんどのVCSオプションはWindowsベースではなかったため、Windows開発チームではほとんど使用されませんでした。これらのいくつかは高価なソリューションであり、オープンソースソリューションは今日ほど容易に受け入れられませんでした。

多くの場合、90年代後半から00年代前半にかけて、WindowsチームがVSSを使用しなかった場合、社内の慣習を除き、ソース管理には何も使用しませんでした。Team Foundation Server(TFS)の洗練とgitやSVNなどの優れた無料オプションにもかかわらず、それらの多くはまだVCSを使用していません。

小規模なWindows開発チームで長年働いていた人がVCSを使用していなかった可能性があります。私はそれらを使用していないか、または使用について非常に無計画であるいくつかの場所でインタビューし、契約作業さえしました。

ですから、この分野でのあなたの候補者の経験の不足は明確な「いいえ」とは思いませんが、おそらくこれが彼らの経験から欠落している理由を見つけるために以前の仕事の状況を掘り下げたいと思うでしょう。また、バージョン管理に対する彼らの態度を探求したいと思うでしょう。彼らはそれは良い考えだと思いますが、彼らは以前の位置でそれを追求することを許可されませんでしたか、それは時間の無駄だと思いますか?


18
VSSは「風変わりな」ものではありませんでした。破損したリポジトリとデータの損失は一般的でしたが、毎日の整合性チェックを実行しない限り、問題が発生してから数週間または数か月間それを発見できない可能性があります(それでも回復できた場合は幸運です)。ファイルのロックと共有はひどいものでした。プログラマは、VCSが何をすべきかとは正反対のことであるため、それを嫌っていました。
-alroc

@alroc-信じられないかもしれませんが、信頼性が低く、風変わりなものがいくつかありました。1995年頃に1つを使用するという不幸がありました。VSSの信頼性に関して深刻な問題は一度もありませんでしたが、他の人から悲惨な話を聞きました。VSSの悪い経験の後、VCSの使用をやめた組織を知っています。
jfrankcarr

UGGH、私たちはその日にPowerbuilderのソース管理を試しました。これによりソースコードが失われました。PBはクラッシュし、チェックアウトされたpblは他のすべてのユーザーにアクセスできなくなります。なんて冗談だった。
GrandmasterB

私はVisual Source Safeを使用していた店で1.5年間働いていました。最高のプログラマーの1人は、電話でコードをチェックインしようとするたびにリポジトリを台無しにします(そう、これは少し前のことです)。私の最も好きではないVCSシステムの1つ。
グレンペターソン

DOS環境の1つのジョブでtlib(burtonsys.com/index.html)を使用しました。確かにこれは2005年でしたが、しばらく使用していたようです。
ダグT.

29

バージョン管理ソフトウェアなしでバージョン管理することはできませんか?彼らがどのようにコードを管理したか尋ねてください。たぶん、すでに独自のシステムが導入されていたのかもしれません。

手動で物事をやりたい、車輪を再発明し、変化に抵抗することはプログラミングにとって新しいことではありません。Visual Source Safeと「唯一」のVSSを使用する候補者にだらだらするつもりですか?

才能を見つけようとするとき、あなたは以下の違いを見分けることができなければなりませんできない、持っていない、しない。


バージョン管理とその有用性を知る前に(私は2年の非専門家、趣味のプログラミングの後、それを発見しました)、プロジェクトマイルストーンの「バックアップ」を備えた5つのフォルダー-プリミティブなVCSを持つことは珍しくありませんでした。
-orlp

「許可されていない、許可されていない、許可されていない」ネットワークドライブであるジャングルが好きだったので、ソース管理を実行することに同意しない場所を聞いたことがあります。
フィリップ

19

一人の開発者によって開発された小さなプロジェクトであっても、バージョン管理を使用しない言い訳はありません。ローカルバージョン管理の設定は簡単ではなく、大きなメリットがあります。それを知らない開発者は、良いとも経験もできません。

バージョン管理を「新規」と見なしている企業については、導入するつもりはありません。

  • SCCSは1972年にリリースされました(40年前
  • RCSは1982年(30年前)にリリースされ、完全にオープンソースで無料です。
  • CVSは1990年(21年前)にリリースされました。これも完全にオープンソースで無料です

20
SVNが「ささいなことを超えた」セットアップの最良の例であるかどうかはわかりません。リポジトリで直接編集する必要があるファイルのいくつかは、面倒なことがあります。ローカルDVCSのセットアップは簡単ではありません。そして、のBitbucket / GitHubのアカウントを設定し、それから、リポジトリのクローンを作成することははるかに複雑ではありません
PDR

9
@vartec:些細超えて何されるのですgit init。リンクされたページは、非常に複雑に感じるため、私を逃がす可能性があります。
maaartinus

7
@vartec:gitとhgは、長年集中型VCSを使用してきた人よりもVCS初心者にとって理解しやすく、初心者向けのCVCSよりも簡単だと主張します。まだ理解していないかのように、そのページのリポジトリレイアウトセクションを見てください。次に、「ここにリポジトリがあるので、ここに複製したい」と考えます。
pdr

8
@vartec:うーん。同意できません。私は一人で仕事をしていても、分岐してクローンを作成できるのが好きです。時々アイデアがあります。そして、時々彼らは悪いものです:)。
pdr

4
私は、経営陣がバージョン管理を拒否した企業で働いてきました。オプションではありませんでした。そして、興味深く複雑なプロジェクトを行いました。そのため、私が最悪の開発者だとは思わない。自宅では私はどちらも使用しません。
ピカル

14

バージョン管理を使用したことがないプログラマーは、おそらく他のプログラマーと協力したことがないでしょう。他の資格情報に関係なく、このようなプログラマーを雇うことは考えないでしょう。


34
同意しません。ソース管理を使用しない場合、通常よりもはるかに高いレベルで他のプログラマーと協力する必要があります。私も、あなたは何のソースコントロールが存在しない環境から来ている場合は、あなたがいることを言って限り行くかもしれない真の協力の重要性を知っている
オリバー・クレア

12
それは見事に抜本的な声明であり、特許的には真実ではありません。
マーフ

3
私は単に、最新のツールの使い方を知らないプログラマーを雇いたくありません。彼/彼女は信じられないほど素晴らしいコードを書く方法を知っているかもしれませんが、少なくともバージョン管理の基本的な知識は絶対的な要件だと思います。
JesperE

6
この辺りの多くの人々は、VCSにさらされておらず、新しい仕事でVCSを使用することを積極的に拒否して混乱しているようです。以前の職場で彼/彼らに単にまったく発生しなかった場合、または経営陣によって口頭で言われた場合はどうなりますか?といえ、私が雇用を行っている場合、これ重大な問題になり、彼らの学習意欲は私にとって厳しい要件になるでしょう。
ジェルジAndrasek

5
ここで非常に多くの人々を見るのが怖いのは、実際にはソース管理の欠如が正常または許容可能なものであると感じているからです。
JesperE

12

赤い旗は大丈夫のようですが、なぜ彼がそれを使用しなかったのかを深く掘り下げます。ソロ開発者が特に10年以内にバージョン管理を使用することを期待しますが、チームで働いていてバージョン管理を導入しようとさえしなかった場合よりも寛大になります。


6
+1:現在のマネージャーがソース管理の重要性を認識していなかったという理由だけで、もし私が失業していたなら、私は恐ろしいでしょう。少なくとも私はすべての私の個人的なプロジェクトのためのソースコントロールを使用しませんので、私は完全にこのような状況でねじ込むことがないでしょう...
オリバー・クレア

2
@LordScree-大量のWebサイトで作業するのは自分で行うのは難しいかもしれませんが、仕事以外でソース管理を使用することを学ぶことができます。
ジェフ

9

私はバージョン管理の経験の不足については信心しません。これは単なるツールです。最終的に、1日か2日でsvnまたはgitの基本を理解できます。残りは時間とともに拾います。そして、ソースコントロールを使用する環境で作業する場合、半分まともな候補者が適合することができないとは信じられません。

ソース管理の使用は、スキルというよりも習慣です。それを使用したことがない人は、必要な労力を誇張し、得られる利益を過小評価する可能性があります。結局のところ、彼は今まで元気でした。実際にソース管理を使用した後にのみ、彼はそれを高く評価するようになります。

あなたが尋ねるべき質問は、ソース管理がないときに彼がどのように管理したかです。これは彼についての何かと彼が彼の仕事をどのように管理するかを伝えることができます。


4
バージョン管理なしで更新、リリースなどを管理した方法を明らかにする必要があります
ChrisF

4

あなたは彼の経験について多くの情報を残しています。

基本的に、バージョン管理について知らなくても、プログラマーが10〜15年の経験を積むことは可能だと思います。10年間のコーディングは、10年間新しいプログラミングテクニックを絶えず学ぶこととは異なります。

私は非常に若く、コードに手を触れたくないと思う古い経験豊富なソフトウェアエンジニアを見てきました。とはいえ、彼は非常に才能があるかもしれませんが、私は彼がそうではないことを考えると、小さな情報から推測します。

幸運を。


4

個人的に、私にとって最も憂慮すべきことは、候補者が概念としてバージョン管理システムに出会ったことがないか、使用する価値がないと判断したことです。最初のシナリオは非常にありそうもないと思いますが、その場合、候補者がキャリアの期間中に著しく孤立していると推測することになり、チームの一員としての彼らの価値に重大な疑念を投げかけます。具体的には、特定のことを行う方法に関する非常に奇妙な概念であり、物事を行うための「正しい」方法を知らない場合があります。

彼らがバージョン管理に対して積極的に決定した2番目のケースである場合、それは彼らが重要な何かに取り組んだことがないか、または非常にrog慢であると推測させます。または、せいぜい、ブロックをコメントアウトしたり、コードのすべての行を作成者、日付、バグ番号に帰属させるなど、コードを維持する本当にひどい方法があります。


4

ここでは、判断される人を実際に考慮に入れていない、かなり判断力のある答えがあります。

個人的に、バージョン管理ソフトウェアは非常に貴重なツールだと思います。しかし、私たち全員が私たちの作業環境で使用されるツールとプロセスについて選択と制御を持っているわけではありません。私は1990年からWindows開発に携わってきました。他の人が投稿したように、当時はWindowsでVCSを利用できるものはあまりありませんでした。VCSを取得するためだけにUNIXサーバーを導入するつもりはありませんでした。それは私を悪いプログラマにしましたか?私のキャリアの後半では、バージョン管理がツールではなくプロセスであった垂直市場の商用製品を扱う会社で働きました。それは私を悪いプログラマにしましたか?私の最後の3つの仕事はすべてVCSツールに大きく依存しています。それは私を優れたプログラマーにしていますか?

私たち全員が最新かつ最高のツール、言語、テクノロジーのみを使用できるようになったら素晴らしいと思います。しかし、ソフトウェア開発の専門職が常にそのように機能するとは限りません。「彼らがしなかったらすぐに仕事を辞めるだろう...」、「使わなかった仕事は決して受けないだろう...」、「強制的に使うだろう」と言うのは少し理想的です。 ..」。すべてが希望どおりに機能する無限の雇用機会に囲まれているわけではありません。私たちには支払いと仕事が必要な手形があるので、私たちは私たちの周りにあるものに対処します。

最後に、あなたの質問に対する答えはこれです。このプログラマーは、彼の以前の仕事で責任者によって下された(おそらく誤った)決定ではなく、彼のスキル、彼の哲学と彼の決定によって判断します。


4
あなたが15年間馬鹿だけで働いていて、サイドでインテリジェントなオープンソースを何もしていないなら、それはおそらくあなたのスキルセットと態度に反映するでしょう。人々は環境によって形作られます。そうでない場合、なぜ私たちは誰かの雇用履歴を見さえするでしょう。
カズ

@Kaz同僚の入力ではなく、自分自身の雇用履歴を調べます。育った地域で誰かを判断することはできません。さもなければ、私たちは隣人にもインタビューを始めるかもしれません。
ジェームズKhoury

はい、私たちの環境によって形作られていますが、私たちは環境によって定義されていません。私は、OPがプログラマーの完全な視点を取り、1つの基準に基づいて厳しい判断を下さないことを提案しています。
cdkMoose

4

専門的にそれをやってお金を稼ぎ始めるまで、私は自分を「プログラマー」とは考えませんでした。

私はクライアントにさらにお金を稼ぐシステムを作成するためにかなりのお金を稼いでいます。私が「良い」開発者であるかどうかは主観的です。

私はGSD(Get Something Done)を迅速に行うことができます。これは通常、Web開発ではクライアントを満足させています。舞台裏で見苦しいコード、コメントの欠如などが表示されない場合があります。

私は今年までGitを使用したことがなく、Githubプロファイルも持っていませんでした。これは、現代のプログラマー標準の観点からは「時代遅れ」だと感じています。また、過去にPHP、Flash、iOSのみを行った後、RailsとDjangoプロジェクトを始めました。それ以来、クライアントと私の両方でサイトを開発する契約を結びました。30歳でプログラミングから数年経った今でも、新しいことを学ぶのはそれほど苦痛ではありません。

現代の社会では、ジョーンズに追いつき、他の人が思うことを気にかけることに重点を置いています。それらの束縛を打ち破り、ソフトウェア開発に必要なもの(市場投入までの時間/時間、最適化されたリソース管理、十分に文書化されたコード、スケーラビリティなど)を検討できるなら、それは誰かがMercurial、SVNを知っているかどうかよりもはるかに重要かもしれません、Gitまたはその他のバージョン管理システム。

開発者の候補者に、自分がどのような情熱を持っているのか、自分の意見でこれまでに作った最もクールなシステム、スキルを開発するために自由時間を費やしているものを尋ねることを好みます。それは他のものよりも私を怖がらせるが、それはあなたを怖がらせる必要があるという意味ではありません。

この質問に対する回答はすでにここにいる人々から得られていると思います。それは、要件に基づいて情報に基づいた独自の決定を下すのに役立つはずです。


2

ソフトウェアの専門家がソース管理を使用したことがないことは信じられないことであり、彼を雇うことに非常に神経質になります。

彼はどんな経験をしていますか。あなたがこれまでに発見していないことを、彼は他に何を知らないのだろうか。

あなた自身のソフトウェア開発経験は何ですか?アーキテクチャ、設計パターン、一般的なソフトウェア開発の問題、システムパフォーマンスの質問、システムセキュリティの質問などについて彼に尋ねる立場にありますか?

もし彼がその種のものに強く出てきたなら、多分私はソース管理知識の欠如を見落とすことができたでしょう


2

優秀なプログラマーがバージョン管理を使用したことがないということはありえますか?

はい。独学のプログラマーを持つ多くの小さな会社はそれを使用しません。

バージョン管理を必要とせずに10〜15年間、積極的にソフトウェアを開発する方法を教えてください。

私は個人的に2つの小さな会社にバージョン管理を導入し、1つの中規模の会社をひどいものからSVN(当時の最良の選択肢)にアップグレードし、VCしか持たない別の小さな会社で働いて、いくつかのコードに対して独自のVCソリューションを作成し、 VCにはないコードがたくさんありました。

追跡の問題の解決策を探していないという事実自体が、プログラミングに対する間違った態度の兆候を変えていますか?

まあそれはすぐに失敗するわけではありませんが、私は確かに多くのフォローアップの質問をするでしょう。次のようなもの:

VCソフトウェアを試したことはありますか?何?これについてどう考えましたか?使用しない理由はありますか?コードを管理するために以前に何を使用しましたか?同じコードベースで以前に誰かと仕事をしたことがありますか?また、衝突を避けるためにどのような方法を使用しましたか?


1
この答えに新しいものはありません。
pdr

1
今日、賢明な独学のプログラマーは皆バージョン管理について知っており、それを使用しています。残りの人はどこかに頭を突き刺しています。
カズ

@Kaz反対。それは私たちが考えたいことだと思いますが、私の個人的な経験が言うように、私は賢明ではないと思うプログラマーに会いました。バージョン管理を使用しないことは、頭がどこかに引っかかっているかもしれないという大きな警告サインです[魅力的なフレーズ:-)]が、常にそうであるとは限りません。
ジェームズ

2

Explosion Pillsに同意したい(しかし、担当者が低すぎる、気圧...)...態度ははるかに重要です。

プログラミングの卓越性を実現するために役立つと信じているものがいくつかあります。

  1. コミュニケーション
  2. 創造性
  3. 思いやり(何と言いますか?)

そして、多くの場合、小さなOCDよりも多くなります。

あなたはタイプを知っています...そこに座って問題に打ち込み、オプションを探求するときにコードを完全に失います。これらは、作業中にメモを取り、コードにコメントを残して、自分の論理的なパスを理解していることを確認します(そして、自分自身または将来コードを処理する必要のある他のプログラマーの道を照らします)。 ..このように、上記の私のリストの「思いやり」!)、そして問題を効率的に対処できるように、複雑なアイデアを連鎖的に意思決定者に迅速かつ明確に伝えます。

優秀なプログラマーは、VCSのアイデアに賛同せず、VCS(VS a la)の悪い経験を持っていたため、新しいシステムを試すのが恥ずかしがり屋だった環境に何年も立ち往生しているかもしれませんが、そのような状況の優秀なプログラマーは、いくつかの悪い設計の繰り返しですべての作業を失うことから身を守るために、何らかの種類のルーチンを設定していました。

したがって、注意すべきプログラマーは、VCSを必要とせず、避けられないねじ込みからの保護手段を必要としない主張するプログラマーです。彼らの態度は「まあ、私はそれを構築したので、間違ってはいけない」というものです。これらは、大学を卒業したばかりの修練生よりも恐れているものです。なぜなら、初心者はVCSの長所を理解することができるため、VCSの長所を理解することができるからです。


2

バージョン管理を必要とせずに10〜15年間、積極的にソフトウェアを開発する方法を教えてください。

彼が小さなプロジェクトを一人で管理している古い学校のチームから来ている場合、それは非常に可能です。彼は、同じ技術セットで10年の経験がありますが、自分自身を学び、改善することはありません。

追跡の問題の解決策を探していないという事実自体が、プログラミングに対する間違った態度の兆候を変えていますか?

あなたの候補者がチーム開発(少なくとも4人以上のプログラマー)環境にいた場合、それは簡単な質問です。ただし、プログラマー間で作業分担が行われる場合があり、プログラマーだけに割り当てられたモジュールで作業するため、コードをソース管理する必要性が減る場合があります。

しかし、インターネット時代にソース管理について聞かれないことは本当に驚くべき状況です。したがって、(開発環境に関して)新しいことを学びたいという彼の意欲と、動的な作業環境に対して彼がどの程度オープンであるかを調べます。


誰もがプログラミングブログなどを読むわけではありません。特に、単一のレガシープラットフォームで完全にキャリアを積んできた人は、彼らから直接的な価値をあまり得られないでしょう。Mainframe / COBOL / RPG(ゲームではない)ソフトウェアのブログをいくつ知っていますか?これらのプラットフォームのプログラミングは、過去30年間ほとんど変更されておらず、それらの情報の最良のソースの多くは、ほぼ確実にデッドツリー形式のままです。プログラミングがあなたの仕事である場合、それはあなたの人生がどのようなものであるかということです。テクノロジーブログなどを読んでいる分野で作業する場合、短期的なROIはあまりありません。
ダンニーリー

1
一人のプロジェクトでも、バージョン管理の恩恵を受けます。バグが見つかった場合、「バージョン3.13で導入された」と述べることができるため、3.13以降のユーザーが影響を受けます。最新版に移行したくない人のために、さまざまなバージョンのパッチを簡単に作成することもできます。バージョン管理なしでこれらのことを実行できる場合、事実上のアドホックバージョン管理を実行しています。ユーザーがソフトウェアを使用して、面倒でエラーが発生しやすい手作業を排除することを期待しますが、プログラマーは自分でそれをしないでください!笑。
カズ

2

経験が重要であり、ソース管理ツールを使用する仕組みを非常に迅速に学習できることは間違いありません。しかし、あなたは赤い旗を見るのは正しいです。

  • あなたの候補者は職業とその傾向から隔離されていますか?
  • チームで働く他の多くの側面も学ぶ必要がありますか?

私にとって、バージョン管理に関する問題は病気というよりも症状です。原因はさまざまで、かなり良性の場合があります。多くのアドホックプログラマーは、プログラミングに関する数冊の書籍から始めて、理にかなっていると思われることを始めたばかりであり、ソフトウェア開発の体系的な研究を行いませんでした。昔のように、コンピューターサイエンス専攻は、ソース管理システムを使用することなく卒業することがありました。なぜなら、彼らのプロジェクトはすべて個別のプロジェクトであり、ソフトウェアプロセスが非常に未熟な会社に行っていたからです。

しかし、彼がそこに着いたとき、彼が10年以上孤独なオオカミだったなら、人々と一緒に暮らすのが難しくなるかもしれません。

候補者にさらにいくつかの質問があるかどうかを尋ねる価値があるかもしれません。

  • チームの一員として働いた時間について教えてください。
  • あなたが働いていたチームがチームメンバー間で競合した時期について教えてください。
  • 別の開発者からコードを受け取り、プロジェクトを進めた時期について教えてください。
  • 一緒にコードを作成するときに、あなたとあなたのチームの他のメンバーがお互いに邪魔にならないようにした方法を教えてください。
  • 以前は機能していたが、それ以降のバージョンでは機能しなかった機能に関連する問題をお客様が報告したことを教えてください。どのように解決しましたか?
  • チームで働くことの何が好きですか?

彼はまた、彼の方法、プロセスをほぼ完全に制御し、彼が唯一のソフトウェアの専門家であるという役割に慣れていることに慣れているかもしれません。あなたは物事の新しい方法に開かれている誰かが欲しいでしょう。さらに質問を:

  • コーディング標準の作成に使用した、または作成した時間について教えてください。
  • コーディング標準でどのようなものを見たいですか?
  • 他の人のコードを書き換えることについてどう思いますか?
  • ソフトウェアまたはドキュメントのピアレビューに関与した時間について教えてください。
  • 執筆に携わったソフトウェア開発の提案または契約について教えてください。
  • お気に入りのソフトウェアマネージャーまたはスーパーバイザーについて教えてください。
  • お気に入りの同僚や部下について教えてください。

2

2012年、15年の業界経験を持つ人にとって、バージョン管理を使用したことがないというのは危険です。その年が1982年、あるいは1992年であったとしても、それほど危険ではないかもしれません。しかし、今日では、その開発者の背景にあるこの不可解なギャップについて優れた説明があった方が良いでしょう。

異常な状況では、異常な説明が必要です。

これは、自動車整備士が15年間自動車を修理していると主張しているが、自分自身に油を注ぐほどのことは決してなかったと主張する自動車整備士のようなものです。

もちろん、グリースで自分自身を塗りつけてもトランスミッションは修正されず、修理マニュアルの手順のいずれもそのようなことを要求しませんが、それはポイントではありません。重要なのは、きしむようにきれいであることは、車のメカニックが実際に働いているときに実際にどのように見えるかとは大きく異なることです。その作業では、自分自身に油を塗ります。

バージョン管理の経験がないと認める経験のある人にインタビューしている場合、彼はおそらく自分の経験の一部を誇張または偽造しているでしょう(バージョン管理が広く使用されている重要なものであり、彼が嘘をつくべきであることも知らないでしょう! )

インタビューであらゆる種類のジョーカーを見ることができます。リンクリストの図を描画できない、またはリンクリストの先頭にノードを挿入する関数を作成できない人々を見てきました。しかし、彼らは20年の実務経験を主張しています。

コンピュータサイエンスの新卒であっても、まだバージョン管理を大いに活用していない場合でも、バージョン管理に受動的に精通していることが期待できます


新卒者が一貫して期待できる最高のものは、「ああ、聞いたことがある」。Subversionをベースにした1週間の概要を紹介しましたが、バージョン管理は一切使用しませんでした。
イズカタ

はい、そして彼らは新卒なので、それを「購入」して先に進みます。
カズ

「親しみやすさを渡す」(あなたが答えで意味したと思うこと)は、ある時点でそれを使用したことを意味します。私はあなたがそれを期待することさえできないと指摘しています。
イズカタ

CSの卒業生がバージョン管理を使用していない場合、母校の部門は、ソフトウェア工学の概念について学ぶだけでなく、チームプロジェクト(バージョン付き)コントロールとすべて)。私は、その部門の長と一言か二言したいと思います。
カズ

私はほぼ20年間プロのプログラミングを行ってきました。リンクされたリストとは何か、そしてそれらが使用される理由を知っています。私は一度も使用したことがないので、おそらくあなたの関数を書く際のより細かい点に苦労するでしょう。あなたが30歳のテクニックを使っているからといって、他の人は少し不公平であるべきだと言っています。
DefenestrationDay

1

奇妙なことに気付くでしょうが、経験豊富なプログラムが専用のソース管理を使用したことがないことは不可能ではありません。ある会社では、従来のC#およびVBコードにソース管理を広範囲に使用していました。しかし、純粋なデータベースコード(ストアドプロシージャとスクリプト、およびテーブル定義)は、純粋なデータベースコードの作成、保守、実行を主な仕事とする2人のSQL開発者がいましたが、ソース管理ではありませんでした。私はそこでデータベースエンティティのソース管理を支持し、部分的にしか成功しませんでした。

別の会社では、開発チームは小規模でした(1人の男性が長い間働いていて、その後2人でした)。以前の開発者のソース管理では、ソースファイルのコピーが複数あり、最後に日付が追加されていました。私の前任者には、より良いソース管理システムがないことに加えて、確かに有能で賢い人がいました。

私がプロになる前、私は趣味家であり、ソース管理をまったく使用していませんでした。私はそれが何であるかを漠然と知っていましたが、気にしませんでした。

要するに、プロがそれをあまりよく知らないのは奇妙だと思うが、特に彼が非常に小さなチームに慣れているなら、それなしで有能であることが確かに可能である。雇用において、私は彼に対してそれを保持しません。私は絶対に学ぶことを嫌がり、彼に対して仕事でそれを使い始めるでしょう...


データベースからSQLスクリプトを生成するようDBAに依頼すると、スクリプトをソース管理に入れることができます。
linquize

@linquize Ohは同意しました。それはそれを行うためのより良い方法の1つです(ただし、それだけではありません)。私は、特にDBA側でソース管理の経験のない有能な専門家や熟練したアマチュアに会ったことを単に言及します。雇用では、潜在的な新規雇用に対するソース管理を学ぶことに抵抗がありますが、特に小さなチームに慣れていて、ほとんどがデータベース側にいた場合は、以前にそれを使用しなかったことにあまり驚かないでしょう。
-TimothyAWiseman

1

私自身の2cは、VCについて尋ねられたことに対する彼の反応に依存するということです。考えられる反応は次のとおりです。

  1. え?あれは何でしょう
  2. いいえ、代わりにやった
  3. 恥ずかしいシャッフルはありません、管理は私たちを許可しません
  4. 恥ずかしいシャッフルはありませんが、私は少し自分自身を調べて、私たちがやるべきことのように見えると思いました。

4の場合、その男は私からパスを取得し、彼は正しい態度を取り、おそらくそれをうまく拾います。3の場合、彼はそれが行われるべきであるが4ほど多くないことを理解するためにクレジットを得るd好奇心の証拠としてそれを採用し、彼に合格するかもしれない。

彼が1または2と答えた場合、つまりVCについて知っていて気にしない場合、候補者の判断に真剣に疑問を呈します。彼が取り組む必要のある他のツール(バグトラッキング、品質メトリック、ビルドオートメーションなど)があります。彼が新しいことに挑戦していない場合、おそらくこれらの問題のすべてについて困難な戦いに直面するでしょう。アプローチ。

ここにいるほとんどの人がそうであるように、雇用主が十分に対応していなかったという理由だけで候補者に不利益を与えることは不公平だと思います。私にとって、それはすべて彼らがそれにどのように反応したかにかかっています。


1

振り返ってみると、変更されたものを書くのは良いことです。何が間違っているのかを把握する時間を大幅に節約し、書き留めておいたために問題の多くが迅速に修正されました。私の意見では、ログを保存しておくのは良いことです。特に、自分よりも多くの人とプログラミングする場合。

Webアプリを作成している場合、常に新しいものを追加するだけなので、バージョン管理なしで機能を追加し続けることができます。しかし、あなたは新しいことをログまたはニュース記事に書くかもしれません。

それはあなたがプログラミングしているものについてのすべてです。


0

私は、ソフトウェアの承認プロセスが12〜18か月であった場所で働いてきました。承認済みソフトウェアのリストに含まれていない場合は、マシンで取得する方法がありません。CD / DVDドライブはロックダウンされ、マシンはインターネットに接続されませんでした。

ソース管理に出くわした最初の場所は、複数年にわたるプロジェクトのテストが終了するまでに、開発者が独自に作成することでした。彼らは、最初からそれを書くことは承認プロセスより速いと賭けました。

この問題に出くわした2位は最初の数か月間ソース管理を使用していましたが、顧客はすべての開発を社内ネットワークで行うことを望んでいました。再びすべてをロックダウンしたため、多くの圧縮されたフォルダーに戻りました。

私はこれらの条件でのみ働いている開発者を知っています。彼らはこれらのツールを使用したい、彼らはこれらのツールを使用したいが、これらのツールを使用することは許可されていません。

彼らがそれらを使用しなかった理由を調査してください。経験がないために手順を理解していないことは、ツールを拒否することとは大きく異なります。


この答えに新しいものはありません。
pdr

0

私は最後の15年間開発しています。バージョン管理は数回しか使用しませんでした。スケジュールされた独自のスクリプトとプログラムを使用して、すべての開発フォルダーを増分バックアップします。バージョンコントロールを使用するかどうかを誰かに尋ねられたら、何と言ったらいいかわかりません。私はバージョン管理システムを必要としたことはありませんでした。私はいつも小さなプロジェクトに取り組んでいました。私は最高のプログラマーではありませんが、最悪ではないと確信しています。ほとんどの場合、私は定期的にバージョン管理システムを使用していないことを人々に伝えるのは恥ずかしいですが、それは私にとってのやり方です。


私は反対の経験がありました:私が唯一の開発者である小さなプロジェクトでバージョン管理を使用すると言うとき、一部の人々は私に面白い外観を与えます。オープンソースプロジェクトをホストするためにバージョン管理が使用されており、展開方法として理解されているため、最近ではそれほどではないかもしれません。
カズ

2
多くのことを簡単に行えるようにするため、態度を変えてバージョン管理を検討する必要があります。たとえば、gitバージョン管理システムには、git bisect回帰バグを見つけるための自動化されたワークフロー()があります。これにより、プロジェクトのバージョン履歴をバイナリ検索して、バグを導入した変更セットを見つけようとします。あなたがすることは、再構築し、テストを実行し、gitそれが良いか悪いかを知らせることです。次に、次にテストするベースラインを選択して取得します。
カズ

ではgit、いくつかの実験的な変更を行ってから、それらをに入れることができますstash。作業が元に戻され、変更が保存されます。後でスタッシュを探索し、変更を再適用して実験を続けるか、破棄します。そしてもちろん、適切なバージョン管理システムには分岐があり、安定したバージョンの機能を単独で開発するなどのことができます。または、戻ってリリースのバグを修正し(顧客にパッチを提供するため)、その変更を現在の開発バージョンにも簡単にマージします。
カズ

0

IBM MVSシステムのプログラマーとしての私の経験から言えば、私が働いていた最初の10年間、私が働いていたオペレーティングシステムには、プログラマーが使用できるバージョン管理可能なファイルタイプが1つしかありませんでした。これは基本的に固定数のバージョンを持つファイルであり、どのバージョンが何であるかを覚えておく必要がありました-現代のバージョン管理にはほとんど役に立たない。ソースコード管理システムの概念は、実際のディレクトリがなく、多かれ少なかれ(8文字)修飾子しか持たないファイルシステムと相まって、その環境で働いている誰にとってもまったく異質でした。

SunOS 3に移行してRCSを使用するまで、ソースコード管理システムは実際には見ませんでした。その時点で、私は非常に手軽なIBMシステムプログラマーであり、生産性が高く、仕事がとても上手でした。すべてのバージョン管理は、バックアップをテープにコピーし、どこにあったかを記録することで処理されました。

この時点でまだメインフレームで作業している場合、正式なバージョン管理システムにさらされたことはなかった可能性があります。特にサポートされている選択肢はClearCaseとRationalであり、どちらも無料ではありません(実際、どちらも非常に高価です)。

だから誰かがバージョン管理を使ったことがないので定義上無能であると言うことは格別の議論です。詳細を掘り下げて調べる必要があります。彼らがLinux / Unix / Mac OS開発者であると主張しているが、バージョン管理を使用したことがない場合、彼らにとってはあまりよくありません。それらを最新のソフトウェアエンジニアリングでトレーニングします。彼らが昔ながらのメインフレームプログラマーであり、それが必要な場合は、必要なプログラミングスキルを正確に持っているかどうかに集中し、これを教える必要があるという事実に身を任せます。他の人が言ったように、その概念に対する彼らの反応は、その場合の決定要因になります。


0

きれいにしてください!私たちのコミュニティ全体は、こっけいなたまり場やハッキングイベントが豊富にある高度に発達したソーシャルコミュニティに住んでいるわけではありません。また、私たち全員がソフトウェア開発会社で働いているわけでもありません。私たちの母国語で、印刷されたものでもオンラインのものでも、仲間のプログラマーと出会うことができます。

あなたが言うように彼が経験豊富なソフトウェア開発者であれば、私が理解できるすべてのために、彼はおそらく中小企業のフリーランサーとして働いている孤独なオオカミでした。


-1

バージョン管理を使用しない理由はいくつか考えられます。

  1. ソフトウェアの開発を行っていない企業での主な業務内容。
  2. または、開発者が他のシステムを使用することに決めた場合-経験のあるシステムにのみ有効です。
  3. または、開発者が各システムの動作方法をまだ学んでいない場合
  4. または、馴染みのないツールに対する態度の問題です

ただし、次のような人に会うときは注意が必要です。

  1. 何かをする唯一の方法があること
  2. または、すべてのプログラマーが彼らと同じ方法でそれをしなければならないこと
  3. または、人々が使用している慣行は簡単に変更できること

-2

貧しいプログラマーがバージョン管理の専門家であるのは可能な限りです。私のポイントは、あなたのプログラミングスキルや問題解決能力のためにバージョン管理が何をするのかわからないということです。それは経験の問題です。多くの小さな店は、それを使わないか、それとも自分自身でそれを理解するために(しばしばソロで働いている)個人に任せています。


-2

「バージョン管理を必要とせずに10〜15年間ソフトウェアを積極的に開発することはどのようにできるのか」という問題ではないと思いますが、「過去 10〜15年間、バージョン管理が必要ですか?」

確実なプログラミングはバージョン管理なしでも可能ですが、専門家は現在の最新技術に精通し、適切なツールを選択してジョブを実行できる必要があります。適切なバージョン管理ソフトウェアを使用しないと、作業にリスクが生じ、信頼性が低くなります。プロの開発者を雇いたい理由の1つは、リスクを管理できる必要があることです。

VCSで適切に注釈が付けられているコードベースは、そうでないものよりもはるかに価値があります。すべての変更の理由を追跡して理解できるため、メンテナーは知っておくべきことをより深く理解することができます。これを行わないことは専門的ではなく、そのための唯一の言い訳は、彼/彼女が彼/彼女の前の仕事で貧しいマネージャーによって制約されていた場合です。それでも、プライベートプロジェクトにバージョニングを使用すべきではありませんでしたか?

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