ソフトウェアの品質を学びまくる2.0

ソフトウェアの品質、テストなどについて学んだことを記録するブログです。旧ブログからゆっくり移行中です。http://blog.livedoor.jp/prjmng/

【本】我がふり直すためのアンチパターン百花繚乱

 システム開発におけるアンチパターンの本を2冊、読みました。
 1冊目は、『44のアンチパターンに学ぶDBシステム』。ブログ『データベースコンサルタントのノウハウちょい見せ』の筆者である小田圭二さんの著書です。
44のアンチパターンに学ぶDBシステム (DB Magazine SELECTION)

44のアンチパターンに学ぶDBシステム (DB Magazine SELECTION)

 

  本書は「DB&アプリケーション」「インフラ」「プロジェクトマネジメント」の3部構成になっています。

 第1部は、正規化されていないデータモデル、ブラックボックスなビューの濫用、最適化されていないSQLといった、設計・実装に関わる話が中心。第2部では、監視方法・バッチといった、実際の運用に入ってからの話。第3部では、性能テストの位置づけから人材育成まで、幅広い話になります。
『44のアンチパターンに学ぶDBシステム』 P.18
アンチパターン4:太っちょ(多くの列を持つ表)
説明:基本的な正規化が行われていない、列が多すぎる表
挿話証拠:「"注文1"という列と"注文2"という列があるんだ。1行で2つの商品の注文を受けられるんだ。すごいでしょ」
頻出スケール:RDBをあまり使ったことがない現場
 「そんなセリフ誰がいうのwww」というようなパターンも含め、1つ1つのパターンがどれも勉強になる。単に「ダメよ」というのではなく、「トラブルから学ぶアーキテクチャ」という節で、何故それがダメなのかをしっかりと説明してくれています。
 また、技術的な話題もさることながら、本書では早めの、しっかりと計画された性能テストの重要さを折にふれて説いてくれます。個人的にはどうしても、まずは機能テストに注目してしまうのですが、性能の問題こそ、後から見つかると致命的になりがちですよね。
 もう1冊は『ITアーキテクトのやってはいけない』。初めこのタイトルを見たときは「ITアーキテクトはやっていけない」かと思いました。
 これは、ITProの連載コラムを書籍化したものです。『プロジェクト・マネージャの「やってはいけない」』という連載もありますね。

  本書は、プログラミング・OS・サーバ運用・データベース・ネットワーク・保守運用・プロジェクトマネジメントと、システム開発に関する多くの要素を幅広く扱っています。アンチパターンの数は全部で128なので、かなりのごった煮になってしまっていて、「076:LANスイッチでループ構造を作ってはいけない」の次に「077:ビュー・トリガーを多用してはいけない」が来たりしています。が、内容自体はこちらも充実。各分野での無知の再確認に最適といったところです。

 現在は、vol2も発売されているようですが、扱う分野が広すぎるので、分野ごとにシリーズ化してほしいですね。
ITアーキテクトのやってはいけないVol.2 (日経BPムック)

ITアーキテクトのやってはいけないVol.2 (日経BPムック)

 

 「やるべきこと」をチェックリスト化している組織は多いと思いますが、「やってはいけないこと」はまとめられているでしょうか?

 わたしの組織では、失敗事例を元にしたノウハウ集を持っていますが、新しい事例の追加、陳腐化した事例の削除などは、思うに任せないというのが本音です。これらの本から、誰かが実際におかした失敗から学ぶのがよいですね。
 ソフトウェアテストのアンチパターンなんてのもできそうです。「バグ票ワーストプラクティス」なんていうステキな活動もあるくらいですから・・・。