« 2005年8月18日

2005年8月21日の投稿

2005年8月22日 »

EoT-EoC-EoM

前2回で、オブジェクト指向を「テスト容易性」と「変更容易性」を中心に再定義したい、という話をした。 従来オブジェクト指向の説明に使われている概念、およびそこから得られる(といわれている)再利用性という品質からではなく、

テスト容易性: EoT = Ease of Testing
変更容易性: EoC = Ease of Changing

という2つの概念からが、(現代的な)オブジェクト指向設計の焦点であることを主張してきた。最後、なぜこの2つが必要なのか、というと、それは、メンテナンスのしやすさ(EoM=Ease of Maintenance)を高めるからだ。そして、このEoMこそが、2005年のソフトウェア開発の根本品質だ、と言い切ってまとめたい。

EoMの高い設計が、よいオブジェクト指向設計である。

ということである。今回は、前回書いた、EoT/EoCそして、このEoMについて、ソフトウェア品質との関係を上位から考えてみる。

ISO/IEC9126」では6つのソフトウェア品質特性が定義されている。 

機能性:ユーザ要求を満足する一連の機能 
信頼性:一定の期間・条件下での所定性能を維持する能力 
使用性:分かりやすさ、使い勝手の良さ 
効率性:一定条件下での性能・資源効率 
保守性:変更、修正のしやすさ 
移植性:別環境への移しやすさ 

この中で、「保守性」に注目したい。その他の品質特性は、この「保守性」に依存している、ということはできないだろうか?ソフトウェアは常に変更にさらされている。Bertrand Meyerは、品質を内部品質と外部品質に分け、外部品質の達成のためには、内部品質が必要だと言った。私は、2005年のソフトウェア開発という文脈では、内部品質であるこの「保守性」にフォーカスすることが最も重要だと考えている。

保守性には、以下の副品質特性がある。 

解析性:障害や改訂の対象箇所の識別しやすさ 
変更性:実際の改訂、障害除去のしやすさ 
安定性:改訂時の予期せぬ影響の出にくさ 
試験性:改訂時の妥当性検証のしやすさ

この中で、解析性、変更性、安定性は EoCに、 試験性は、EoT にあたる。ここまでの議論で、すべての品質特性の依存先を、EoCEoT に向かわせることができた。そこで、

よい品質のものを作るには、EoMが大切。そして、EoM=EoC+EoT

と言うのがこの議論の結論だ。

特に、アジャイル型の開発では(イテレーション0を除けば)、開発イテレーションはすべて保守フェーズだと捕らえている。「保守」すなわち進化型設計が中心にあり、そのEoMのために重要なのは EoC(変化ヲ抱擁セヨ) EoT(テスト駆動開発)なのだ。(そして、品質という観点ではないが、後述の Sustainability)

アジャイル開発に限らなくても、システムは「変更される」。むしろ、要求の追加変更がシステム開発を駆動している、と考えてよい。ほとんどのシステムはそのライフサイクルを「保守モード」で過ごす。さらに、技術の推移、ビジネスの存続性、ソフトウェアエンジニアの年齢、などから、システムは、持続可能(sustainable)であることが求められ、かつ、システム開発も持続可能である必要がある。メンテナンスできないソフトウェアは作ってはいけないし(そのために、メンテナンスのドキュメント、トレーニングやペアプログラミングによる情報伝達、自動テストは必須)、開発プロジェクトのマネジメントも、一時の開発ピークで燃え尽きて離職してしまうようなデスマーチ状態を作ったり、開発要員と保守要員をすっぱり交代させるような線引きをするような要員計画をしていはいけない。

(ちょっと議論が品質から外れてしまいました。設計の話をしていましたが、プロセスの話、ピープルの話が混入しています。脱線ついでに、Kent Beck は以前、"forty-hour Week"「週40時間労働」というプラクティスをXPに入れていました。それが、Sustainable Pace と名前を変え、現在は、Energized Work となっています。Energized Workとは、「仕事」と「自分の活力チャージ」をバランスさせることです。

http://www.threeriversinstitute.org/energized%20work.jpg

最後に、このように考えるに至った背景にあるのは、現在のビジネス環境およびテクノロジ環境の変化が10年前よりも速くなったことが原因だと思う。10年前は、2年後のカットオーバーや製品発表に向けて、止まった要求をターゲットにして開発する、というモデルで開発すればよかったのかもしれない。しかし、現在はシステム開発における、ビジネス「要求」と開発に利用する「技術」は、ともに急激に変化する。システム開発はその両者を結ぶ活動なのだが、「要求」と「技術」が変化する状況は、揺れる「梯子」に乗って、揺れる「りんご」を掴むがごとしだ。そのような状況においては、「止まった」状態を元に考えることとは、根本的に焦点が違う。変化を嫌ってはいけない。変化こそが現在のビジネス駆動要因であり、すなわち、システム開発駆動要因である。

※EoMはてらださん、から名前を頂きました。ありがとうございました。

平鍋

« 2005年8月18日

2005年8月21日の投稿

2005年8月22日 »

» このブログのTOP

» オルタナティブ・ブログTOP



プロフィール

平鍋 健児

平鍋 健児

株式会社チェンジビジョン代表取締役社長、永和システムマネジメント副社長。
オブジェクト指向開発、UMLの勘所、アジャイルな開発手法の未来、マインドマップのソフトウェア開発での利用方法、プロジェクトファシリテーション(見える化)を語ります。現在、マインドマップとUMLの融合エディタ、astah*(アスター、旧JUDE)を開発中。

詳しいプロフィール

Special

- PR -
最近のトラックバック
カレンダー
2013年4月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
hiranabe
Special オルタナトーク

仕事が嫌になった時、どう立ち直ったのですか?

カテゴリー
エンタープライズ・ピックアップ

news094.gif 顧客に“ワォ!”という体験を提供――ザッポスに学ぶ企業文化の確立
単に商品を届けるだけでなく、サービスを通じて“ワォ!”という驚きの体験を届けることを目指している。ザッポスのWebサイトには、顧客からの感謝と賞賛があふれており、きわめて高い顧客満足を実現している。(12/17)

news094.gif ちょっとした対話が成長を助ける――上司と部下が話すとき互いに学び合う
上司や先輩の背中を見て、仕事を学べ――。このように言う人がいるが、実際どのようにして学べばいいのだろうか。よく分からない人に、3つの事例を紹介しよう。(12/11)

news094.gif 悩んだときの、自己啓発書の触れ方
「自己啓発書は説教臭いから嫌い」という人もいるだろう。でも読めば元気になる本もあるので、一方的に否定するのはもったいない。今回は、悩んだときの自己啓発書の読み方を紹介しよう。(12/5)

news094.gif 考えるべきは得意なものは何かではなく、お客さまが高く評価するものは何か
自社製品と競合製品を比べた場合、自社製品が選ばれるのは価格や機能が主ではない。いかに顧客の価値を向上させることができるかが重要なポイントになる。(11/21)

news094.gif なんて素敵にフェイスブック
夏から秋にかけて行った「誠 ビジネスショートショート大賞」。吉岡編集長賞を受賞した作品が、山口陽平(応募時ペンネーム:修治)さんの「なんて素敵にフェイスブック」です。平安時代、塀に文章を書くことで交流していた貴族。「塀(へい)に嘯(うそぶ)く」ところから、それを「フェイスブック」と呼んだとか。(11/16)

news094.gif 部下を叱る2つのポイント
叱るのは難しい。上司だって人間だ、言いづらいことを言うのには勇気がいるもの。役割だと割り切り、叱ってはみたものの、部下がむっとしたら自分も嫌な気分になる。そんな時に気をつけたいポイントが2つある。(11/14)

news094.gif 第6回 幸せの創造こそ、ビジネスの使命
会社は何のために存在するのでしょうか。私の考えはシンプルです。人間のすべての営みは、幸せになるためのものです――。2012年11月発売予定の斉藤徹氏の新著「BE ソーシャル!」から、「はじめに」および、第1章「そして世界は透明になった」を6回に分けてお送りする。(11/8)

オルタナティブ・ブログは、専門スタッフにより、企画・構成されています。入力頂いた内容は、アイティメディアの他、オルタナティブ・ブログ、及び本記事執筆会社に提供されます。


サイトマップ | 利用規約 | プライバシーポリシー | 広告案内 | お問い合わせ