中途採用の新人さんが CVS にコミットしてくれません。

彼の前の会社では「プログラムがすべて完成して、管理者の承認をもらったらコミットしていい」というルールだったらしく、コミットを卒業式かなんかの式典だと思っているようです。
今回の開発は私と彼の 2人での開発で、進行具合を把握しておきたいので、もっと頻繁にコミットしてほしいわけですけど、どうしたら彼の意識を変えられますか?
彼の意識を変えることができるような WEB ページを教えてください。
このブログ記事を読んだら考え方変わるよ!とかです。
一度にたくさん教えられても困りますので、しぼって教えてください。
よろしくお願いします。

回答の条件
  • URL必須
  • 1人1回まで
  • 13歳以上
  • 登録:2010/11/18 07:34:41
  • 終了:2010/11/18 16:24:40

回答(3件)

id:Galapagos No.1

Galapagos回答回数963ベストアンサー獲得回数892010/11/18 07:54:45

進行管理にCSVを使うというのは、あまり聞いたことがありません。進行管理は、プロジェクト進捗管理表を使うはずですので。


なぜ貴方が(御社が)CVSを使っているのか、その目的を示してもらわないと回答はしづらいのですが・・・開発途上でCVSを使うのは、一般論として変更管理が目的ですので、そのことが明確に説明されているページを以下に紹介します。

id:akagi_paon

私は CVS をコード共有に使用したいのですが、この使用方法自体が間違っているんでしょうか・・・。

2010/11/18 09:22:50
id:JULY No.2

JULY回答回数966ベストアンサー獲得回数2472010/11/18 10:51:10

ポイント10pt

CVS tutorial supplementary doc contents

上記ページの、特に「同時並行開発作業」というところの図がイメージに近いと思います。

...が、その中途の新人さんの気持ちも分かる気がするなぁ。

ちょっと規模の大きいプロジェクトだと、各リビジョンは少なくとも全体のビルドに問題がなく、かつ、大きなデグレーションは無いことが確認されているレベルの物をコミットする、という事が多いと思います。開発関係者が多くなると、コミットした影響で「ビルド出来なくなった」「動かなくなった」といった時の犯人探しにかかる労力が膨れ上がるので、それを避ける為に「十分に確認された後にコミット」という事になります。

この辺は、CVS や Subversion のような、中央に1つのリポジトリを持つタイプのバージョン管理システムの弱点と言われています。本当は個人レベルでも日々コミットして、間違ったときに戻せたり、自分の修正記録を確認出来ることはメリットがあるはずなのですが、中央のリポジトリでは、コミットに対する他への影響を常に意識する必要があるので、コミットがどうしても慎重になってしまう。

分散バージョン管理Git/Mercurial/Bazaar徹底比較 (1/5) - @IT

そこで、近頃注目されているのが Git や Mercurial といった分散型のリポジトリを持ったバージョン管理システムで、これだと、自分の修正を都度コミットしながら、ある程度まとまった修正で中央へ反映、という事が出来ます。

...ただ、たかだか二人での開発なんだから、分散型を使うまでもなく、CVS や Subversion で十分と私も思います。

一つ、提案ですが、その人用のブランチを作って、「直して動いたらそのブランチにコミット」としてみたらどうですか? もちろん、マージの手間はかかりますが、「間違ってコミットして迷惑をかけたら...」という心理的な負担は軽くなると思います。

id:jan8 No.3

jan8回答回数454ベストアンサー獲得回数962010/11/18 12:10:25

ポイント10pt

きっと「いつコミットすれば良いか分からない」と意見を言われるでしょう。

「タスク」を定義して、(例:タスク1:機能Aの関数A1を追加する、タスク2:バグ#3301修正、など)

コミットとタスクを関連付ける事により、後からコミットの意味が分かるような管理をすると良いと思います。

「タスクを完成して、管理者の承認をもらったらコミットしていい」というルールを新たに作成すれば良いでしょう。

上記のルールに従うと、進捗を頻繁に把握したい場合には、より小さいタスクをたくさん定義する必要があります。

コミットは機能をひとつ追加したタイミングで行う (Git入門) - サンプルコードによるPerl入門

http://ja.wikipedia.org/wiki/%E3%83%81%E3%82%B1%E3%83%83%E3%83%8...

他に「完成するまで進捗を見て欲しくない」という深い心理があるかも知れません。

こればかりは、本人と面談して原因を取り除くしか方法はないでしょう。

  • id:Galapagos
    まずは回答の訂正です。申し訳ありません。
    ×進行管理にCSVを使うというのは
    ○進行管理にCVSを使うというのは

    さて、「CVS をコード共有に使用したいのですが」ということですが、それではコミットする意味がありませんよね。ファイル共有で十分だと思います。
    また一般論になってしまいますが、コミットというのは、設計仕様の変更やバグ、他モジュールの都合でコード変更を行う時に、その証拠を残すために行う手続きです。

    配属になった中途採用の方と、CVSの利用目的について議論を深めた方がよろしいかと存じます。
  • id:ku__ra__ge
    新人さんのマシンに一定時間ごとに自動コミットするスクリプトを仕込むという策じゃダメなんでしょうか?
  • id:b-wind
    >彼の前の会社では
    こう言うのはそれぞれの職場毎にルールが変わる物だと言うことは説明した?

    >今回の開発は私と彼の 2人での開発で、進行具合を把握しておきたいので
    この考えは伝えたの?伝えたならなんて返ってきたの?

    ツールの使い方なんで使う人次第。ツールがどうこうと言うより
    あなたとその人のコミュニケーションの問題に見える。(それ自体が悪いと言っているわけではない)

    相手のことをよく知らないうちに、単に正論だけぶつけても反発される事も多いよ。
    (特にエンジニアに多い気質)
  • id:akagi_paon
    Galapagos さんの「ファイル共有で十分」というコメントを見て目が覚めました。
    全然十分じゃないです。差分見たりタグ戻したりマージしたりするのはどうするんですか?
    というわけで、Galapagos さんがただアホなだけという結論に達しました。よかった。
  • id:akagi_paon
    > ku__ra__ge さん
    ネタにマジレスすると、コンパイルエラーのあるものはコミットしてほしくないです><
    ていうかそもそもそんなハッキング能力は私にはないです><
  • id:akagi_paon
    b-wind さん、コメントありがとうございます。
    おっしゃるとおり、彼とは物理的に離れた場所にいるのでコミュニケーションには問題があります。
    電話で何度か会話しましたが、いまひとつ意志の疎通が取れてない状態です。
    なので、なんかのブログ記事でも読ませてちょっとでも変わればなーというほんの少しの期待を込めて質問しました。
    どうやら適当な回答も寄せられそうもないのでキャンセルしようと思います。
  • id:akagi_paon
    なんでキャンセルするねん!という声がどっかから聞こえてきそうですが、
    たんに今の気分がそうだからです。
    そうです。すべて私が悪いんです。
    ごめんなさい。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません