BT

いつもコードが悪いのか?

| 作者: Vikas Hazrati フォローする 0 人のフォロワー , 翻訳者 大田 緑 - (株)チェンジビジョン フォローする 1 人のフォロワー 投稿日 2010年12月25日. 推定読書時間: 3 分 |

原文(投稿日:2010/12/14)へのリンク

ソフトウェアプロジェクトの失敗には、様々な理由が挙げられる。プロジェクトが失敗するのは間違った要求のためであったり、コストとスケジュールが超過したためであったりする。単にマネジメントが悪かったと言って失敗するプロジェクトはほんの少しだ。根本原因の分析をした場合に、すべての失敗したプロジェクトは、不完全なコードが主な元凶になるだろうか? いつもそうだろうか?

Bobおじさんが強く信じているのは、不完全なコードのコストが高すぎるために、プロジェクトを失敗させることだ。Bobおじさんによると、

私は、コードのせいで失敗したプロジェクトを知っています。実際に、コードのせいで破産した会社も知っています。
 

Bob氏によると、その理由は簡単だ。コードを維持するコストがプロジェクトの予算を超えると、プロジェクトは失敗する。コストが会社の予算を超えると、会社は破産する。他の極端な状態を取り上げながら、Bob氏はコードのコストがゼロに近い場合に失敗するプロジェクトはないと述べた。

要求が不完全だったり、管理が悪かったり、スケジュールが間違っていたり、予算に合わなかったりするからと言って、なぜプロジェクトは失敗するのでしょうか? プロジェクトが失敗するのは、エラーのコストが巨大だからです。 なぜエラーのコストは巨大なのでしょうか?  なぜならコードのコストがものすごく大きいからです。コードを作り出すのに何もコストがかからない場合、エラーのコストはゼロに近くなるでしょう。

しかしながら、誰でもこの考えに同意する訳ではない。

この質問がTwitterに投稿された時、ビジネス上の問題がプロジェクトの失敗の主な原因であることに、大抵の人たちは同意した。Alex Chaffee氏の意見では、良いコードがあるからと言って、悪いマネジメントと不完全な要求を打ち負かすことはできない。

要求が不完全でマネジメントが悪い場合、フリーですぐに使えるコードがあってもビジネスは救えません。誰もほしくない役に立たない製品の完全なバージョンを直ちに展開し、くだらない製品のもっとひどいバージョンを急いで繰り返し出し続けるならば、結局はお金と時間と評判を失い、あなたの製品やビジネスは失敗するでしょう。

同様に、James Iry氏は悪いコードはプロジェクトが失敗する理由の1つにすぎないと述べた。Iry氏によると、

フリーのコードによって、確かに企業はより迅速に繰り返して製品を出せるようになりますが、悪いアイデアや、良いアイデアでもマーケティングの方法が悪くて売ることができないもの、良く売れるけれど、設備やマネジメントやその他に関して過度に重いコスト構造を作り出すものを繰り返して出す場合、会社は最終的に失敗するでしょう。

Michael Dubakov氏は、 正しい解決策を提供しなければ、プロジェクトは失敗すると述べた。Dubakov氏が言うには、コードがクリーンな場合に、正しい解決策を得るためにコードをリファクタリングするのは簡単だが、これは良いコードが正しい解決策だということを意味するのではない。Dubakov氏は以下のように述べた。

あなたは、世界で一番クリーンなコードで、絶対的に美しいアーキテクチャを作り出すことができます。100%のテストカバレージ、関係性の完全な分離、フラットな階層、boolean引数のないメソッドができるでしょう。あなたはこれらすべての美しさを手に入れるかもしれませんが、それでもプログラムがユーザーの問題を効率的に解決していなければ、みじめに失敗するでしょう。

Michael Norton氏は続けて、プロジェクトが失敗する根本原因の分析のほとんどすべては、人にたどり着くだろうと述べた。Michael氏によると、

間違った問題を解決してプロジェクトが失敗した場合、関係する人々が問題を誤解したためにプロジェクトは失敗したのです。コード品質が低かったためにプロジェクトが失敗した場合(そういうプロジェクトはあるでしょう)、関係する人々がひどいコードを書いたために失敗したのです。

このように、クリーンなコードの重要性を非難する人は誰もいないが、悪いコードだけがプロジェクトの失敗に責任を持つことに誰もが同意する訳ではない。あなたはどう考えるだろうか?

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT