« 2008年12月13日

2009年1月4日の投稿

2009年1月5日 »

前ブログの続き。。。

土曜日日曜日に、「サンデーソングブック」という山下達郎のFMラジオ番組があり、愛聴しているのだが、そこで取り上げられる楽曲は「時代を超えて残る曲」だ。達郎自身、「長く残る曲というものはどういう特徴を持つものか、に興味がある」と言っていた。

これに触発され、より長く残る価値観、を見つけて、それを後輩たちに伝えたいと思う気持ちが僕の中で最近高まってきている。前ブログでは、ずっと「よい設計とは」として残り続けている設計の特徴を挙げた。

オブジェクト指向技術について、ここ2,3年は「先祖がえり」というか、「長く読まれるであろう価値観に焦点を当てた本」が出ていることも動機の1つだ。

この23冊が双璧だろうと思う。これらは、「オブジェクト指向そのもの」なのだ。Webのシステムなど、特定のアーキテクチャにとらわれない、デザインそのもの。そして、それが最新手法(たとえばアジャイル)という文脈でも生きている。

例えば、DDDには、「ユビキタス言語」というパタンがある。これは、システムの利用者、開発者が共に理解できるボキャブラリをつくり、その言葉を使って「要件」から「コードのクラス名」まで統一していこう、というものだ。このような考え方は、システム開発の古くから、例えば「用語辞書」という言い方で使われている。現在の文脈では、例えば初期のXPで「メタファ」と呼ばれていたプラクティスをオーバーライドできる威力がある。そして、「全員同席」をはじめとするアジャイルプラクティスともなじむようになっているのだ。

2000年代は、時代が開発手法により過ぎ、ソフトウェア設計に関するエポックメイキングな本が「ほとんど出ていない」。

つまり、ソフトウェア設計手法としては、95年まででストップしてしまっている(ぼくの中では、GoFのデザインパターンが最後)。だから、重要な書籍は、いまでも十分、読む価値がある。いつか、「サンデーソングブック」のように、過去の書籍を味わいながら紹介する、というブログシリーズをやりたいものだ。デマルコの構造化設計の本あたりから、始めてみようか。。。

平鍋

明けましておめでとうございます。

去年は少し、アジャイル・アジャイル言い過ぎた気がしており、今年はもう少し大切なことの範囲をエンジニアリングに回帰して、再度言おうと思っています。

オブジェクト指向やテスト技法をはじめとするソフトウェア工学の知識とスキルは、ソフトウェア開発に携わる人には絶対必要なもので、その上で、プロジェクトマネジメント手法としてのアジャイルがある。

ということは、もういちどちゃんと言っておこう。そう思った動機は、James Shore の「Art of Agile Development」を訳したこと。そして、それはXPの本だったこと。ここ3年くらいXPという言葉はAgile界では下火になっていて、AgileといえばScrumという風潮だったのが、「エンジニアリングの無いScrumは所詮うまく行かない」、というJames Shoreの当然な一撃があった。InfoQの日本語記事がわかりやすい。「InfoQ: Agileの衰退と凋落」

もう1つ、ぼくはこの業界に今年で20年目となる。その間変わったものと、変わらなかったものがあり、ソフトウェアの設計に関する原則は、ほとんど変わらずにそのままある、ということに気づいた。構造化からオブジェクト指向になり、さらに、言語が動的になってても、ずっと変わっていないこと。それは、

よいソフトウェア設計とは、

  1. 凝集度が高い(high cohesion)
  2. 結合度が低い(low coupling)
  3. 重複がない(ZERO duplication)
  4. テスト容易性が高い(testability)
  5. 可読性が高い(readability)

ことだということ。

1-2 は、構造化設計のモジュール分割の基本である。これはオブジェクト指向設計のクラス分割でもそのまま踏襲されている。

3は、古くは「関数」、さらに古くは「マクロ」(アセンブラなど)という形でよく行われる処理を一まとめにしたりしてきた(今では当たり前)。これが、XP(Once and Only Once)やPragProg(DRY: Don't repeat Yourself) で特にここ10年間焦点があたってMUST項目になった。これは、Refactoring技術の進化やアジャイルで進化的設計が必要とされたことが大きい。

そして、4が、アジャイル開発の中では必須の大きな位置を占めるようになってきた。テストコードとプロダクトコードを対にして維持し、テストを設計に持ち込んだ(TDD)のはアジャイルの功績だ。

5も、名前付けなどと関係して昔からある。最近FluentInterfaceや動的言語の登場で価値観が昇格しているが、特に関数型言語など、うまく使うと言いたいことを「そのまま」ぱしっと表現できた!と感じる瞬間があり(浅海智晴さんが、terseな表現、という言い方をしていた)、これは、5の新しい形だろう。(※1/5追記 思考と言語表現のS/N比が高い、ということもできる)

また、1, 2, 3 は、ASoC(Advanced Separation of Concerns)とも関連していて、例えばAOPの出現で、散らばった log を一箇所にまとめることができたりするようになってきた。また、メタプログラミングや属性(アノテーション)などの手法もこの目的に使うことができる。

このように、1-5は昔から「よい設計」を表現しているのだが、ここ10年で新しい手法を伴って繰り返し認識されている指針なのである。このような、「よい設計とは」、をUncle Bobはオブジェクト指向の原則として10数個にブレークダウンした。(『アジャイルソフトウェア開発の奥義』)ぼくはこれが現在もっともよい設計原則集だと思っている。

(※年末、ThoughtWorks Anthology(『ThoughtWorks アンソロジー ~ アジャイルとオブジェクト指向によるソフトウェアイノベーション』近々に書評書きます) を読んでいたら、これに「フォーカス」、という概念が追加されていた(Alan Shalloway)。これは、1と良く似てはいるが直行する概念だということだが、1と2の組み合わせで説明できる概念だとぼくは思うので、ここでは割愛。)

平鍋

« 2008年12月13日

2009年1月4日の投稿

2009年1月5日 »

» このブログの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)

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


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