窓を守る

2007年09月22日 16:27
トラックバック (0)   コメント (0)

割れ窓理論というのがあります。詳細はいつも通りリンク先などを見てもらうとして、強引に一言に纏めると

建物などの窓が割れたままになっていると「この辺は誰も注意を払っていないのだろう」と住民のモラルが低下し、犯罪が多発し治安が悪くなる
そうです。なので、
軽微な問題や違反であっても手を抜かず対応していくことで重大な問題が発生しにくい環境にすることができるよ
というものです。


私は新人の頃に、達人プログラマーという本を読んでこの理論を知りました。この本では品質の低い一部のコードを放置しておくとプログラム全体の品質が落ちるという内容だったと思います(今、手元に無いのでうろ覚え)。読んだ当時は半信半疑でした。だってだって、プロのプログラマー達が作るプログラムにそんな情けない現象が発生するものでしょうか?します。これまでいくつかの開発現場を経験してきましたが、結構。

個人的な意見ですが、窓が破壊されプログラムの治安が悪化するのを防ぐポイントは以下かなぁと思います。
・ある程度スキルが高く、かつプログラム全体に愛情を注げるメンバーを増やす。
・やたらと開発体制を大きくしない。できるだけコンパクトに。

「ある程度スキルが高く、かつプログラム全体に愛情を注げるメンバーを増やす」について。品質の低いコードと判定するにはある程度のスキルが必要ですが、自分のコードだけしか興味を持たず他人のコードの品質は全然気にしない人だと窓が割れていることすらも気づかないでしょう。その場合でも、全体を見るよう指示をすれば多少は効果がありますが、テンションが低いままの作業になるので、別の弊害が出てくるかもしれません(自分の担当分のコーディングがはかどらなくなる、等)。理想を言えば、そういったメンバーでも自発的に全体を見るようになる仕組み作り(意識改革?)をすべきなのですが…現実的には「プログラム全体に愛情を注げるメンバー」を重視したほうが良いと思います。今回の窓の話から逸れますが、経験上、自発的にプログラム全体を見て意見してしまう人は成長が早いと思います。プロジェクトに入ってきて間もないくせに担当外のコードについて言及するプログラマが居たならば「生意気だ」と思うより「期待できる」と思ってみては如何でしょうか(まぁ、その意見の内容にもよりますが)。

「やたらと開発体制を大きくしない。できるだけコンパクトに。」について。まず開発体制が大きくなりすぎると、意思の疎通を行うのに時間がかかり気持ち的に面倒になってきます。意思の疎通が面倒になると誰も気にかけないコードというのが発生しやすくなり無法地帯化してしまいます。あと、「ある程度スキルが〜〜〜」とも関連するのですが、窓壊し人と窓直し人の割合を適正に保つのが難しくなる傾向があります。人が多すぎると、プロジェクト体制を決める際に、隅々まで気が回らなくなるのかも知れません。

と、ここまで書いてみて「初心者向けのBlogとか何とか言いながら開発体制がどうこうって、上から目線はやめろっ!」という自己感想をもってしまったのですが、「初心者の場合であっても自分のコードだけでなくプログラム全体にも気を使ってあげてね。余裕があればオープンソースのコードも見てね。勉強になるしパッチとか送れるようになると良いよ。」と書き加えて、バランスをとってみたりして。

最新エントリー
カテゴリ
月別のアーカイブ
プロフィール
こまつ みつのり(Mitsunori Komatsu)
ブレインハーツ株式会社のプログラマー兼マネージャー。プログラミングからプロジェクト管理、サーバ管理、そして雑用までを器用にこなす。趣味で自作システムトレードプログラムを開発中。
Powered by
 

企画特集

Techno ExchangeTechno Exchange
RackableとCTCの地球にやさしい関係
APC SOLUTIONS FORUM 2008をレポートAPC SOLUTIONS FORUM 2008をレポート
電源、冷却の効率化によるエネルギー削減とは?
ZDNet Japan ホスティング特集ZDNet Japan ホスティング特集
2008年夏のホスティングサービスのトレンドは何?
セキュリティ対策レベルテスト公開!セキュリティ対策レベルテスト公開!
自社のセキュリティのウイークポイントはドコ?
Webセキュリティ特集Webセキュリティ特集
Web2.0時代の脅威へ対抗するためのソリューションとは?
ZDNet Japan Green ITZDNet Japan Green IT
サミットだけでは終わらせない!エンタープライズの取り組みはこれからだ!
「シンプル」&「低コスト」な運用管理「シンプル」&「低コスト」な運用管理
IT運用管理に関するアンケート実施中!
仮想化環境で求められるストレージの要件仮想化環境で求められるストレージの要件
それに応えるNetAppの実力とは?
DELLが掲げる「新・仮想化アセスメントサービス」DELLが掲げる「新・仮想化アセスメントサービス」
〜企業システムの仮想化環境の構築を支援〜
フォトレポート:飛行機の祭典--米国最大、オシュコッシュ航空ショー
米国最大の航空ショーであるオシュコッシュ航空ショーが米国時間7月28日から8月3日まで開催された。このフォトレポートではその模様をお届けする。
L・トーバルズ氏:「主要Linuxプログラマーになるのは楽じゃない」
Linuxの生みの親であるL・トーバルズ氏が、Linuxカーネルの開発について、新規の開発者がまず心得ておくべきことをインタビューで語った。
ブログの未来はどうなる--新しいコミュニケーション手段「ライフストリーミング」
最近、ブログ世界の変化が話題になっているが、ブログに続くコミュニケーション形態としてライフストリーミングが注目を集めている。