勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

コードの共有

ソーシャルコーディングが流行りのようなのでgithubに登録してみた。試しにちょっとしたコードを登録したり、他人のコードを眺めてみたりしている。そういえば昔、社内にあるコードをかき集めて検索できるようにした事を思い出した。

各プロジェクトはそれぞれ構成管理システムを持っており、そこで最新のコードは管理されているんだけど、プロジェクトメンバー以外には公開されていない。知り合いのメンバーなどに頼んで適当な断面のコード一式を入手して、コード検索エンジンに喰わせて横断検索と表示ができるようにしていた。

ブラウザで見れるということ

プログラマ達は高機能なIDEで開発をしていた。コードを作り出すという目的には合致していたようだけど、プロジェクトマネージャの立場から見ると、IDEは過度に複雑に見えた(そしてセットアップも大変すぎる)ので、もっぱらブラウザ経由でコードを検索したり閲覧していた。時々バグや問題を見つけたらパッチをメンバにメールで送って修正をして貰った。プロジェクトマネージャの立場であれば、その程度で充分に役に立った。

本当は最終的にコメントを登録出来るようにしたかったのだけど、当時は良いソリューションも無かったし、手組みする余裕も無かった(最近はgerritあたりが流行なんですかね)。

それに、他人のコード(プロジェクト)に対して口を出すという事がはばかられる空気もあった。わたしがちょっとした潜在的な問題や質問を別のプロジェクトのプロジェクトマネージャにすると、けっこう驚かれた。

組織でのコード共有

例えばgoogleは全てのコードを共有していると言われているけど、普通の組織でこれをやるのは文化的にも難しい。わたしはどこかブレーキが壊れているので、所属する組織の所有物はすべて利用したい。でも多くのひとは(特に管理側の立場の人は)所有意識が高くて(ヒト、モノ、情報などを)無償で提供するようなことはしない。

銀の弾丸を求めてフレームワークを整備したり、部品と称した塊をトップダウンで作って「生産性を向上」などという人たちもいる。それよりもボトムアップで全てのコードを乱暴に共有してしまったほうが、生産性は上がるのではないかと思う。

githubへの期待

国内でも一部企業でコードライブラリをgithubへ移行するような話を聞く。この流れがもっと、加速すると面白い。他人のコードを見て学び、コメントし、コピー(フォーク)する文化がもっと定着すると、いろいろと変化が起こるような気がする。