実行可能知識っていきなり言われたってね.
じゃあ, もっとベタに具体的に実行可能知識って何かってことを書いてみますよ.
というわけで, チュートリアルを書き始めました.
よけいわかんねえって?
そのうち分かる日が来るよ... なぁ, タマ...実行可能知識っていきなり言われたってね.
じゃあ, もっとベタに具体的に実行可能知識って何かってことを書いてみますよ.
というわけで, チュートリアルを書き始めました.
よけいわかんねえって?
そのうち分かる日が来るよ... なぁ, タマ...@IT 連載第8回, 「セル, 制約, 価値, アジャイル」シリーズの「セル生産+アジャイル」が公開されました.
これだけではなんなので, ソフトウェア・セル生産方式のリンク集.
日科技連の第 25 回ソフトウェア品質シンポジウム (東京有明 TFT ビル) の招待発表で「アジャイルがもたらす天国と地獄」という講演をしてきました.
ご来場の皆さん, 有り難うございました. スライドはこちら (PDF, 204KB) (実際の発表にはここにない情報もあったんですけどね:-)
アジャイルがうまくいかなかった例, うまくいった例を事後のインタビューを通して較べてみたものです. アジャイルかどうかにかかわらず, 皆さんのプロジェクトでプロセスを換えたときにこのインタビュー項目を使って自問自答してみるといいと思います.
自分の講演よりも, 僕の前の関さん (東芝) の発表内容が大変面白くて, 僕の講演でもだいぶ参照させてもらいました.9/4~5 の二日間にわたってモデル駆動開発の講義をしてきました. 資料はこちら.
ポイントは
といったところでしょうか.
# R on R ではなく Django を扱ったのは, Django の方が好みに合っているから, というだけのことです.
現時点ではモデル駆動開発はまだダメダメです. xUML 系を除けば現場で使う気にならないのも当たり前. xUML 系はコストがかかりすぎるし, いつの間にか MDA からははずれちゃったから主流と思われていない.
一方でモデル駆動開発自体は間違いなくこれから重要になっていくでしょう. ただし MDA 流のトップダウンで重量級のモデル駆動開発も多分そのうちに消える (大胆な予想!). 片や Django や R on R のようなボトムアップのモデル駆動開発, 片やプロセスやオントロジのようなアッパー・モデリングがキー概念です.
それより何より, ソフトウェアの産業構造そのものが変わらなければモデル駆動開発はあり得ない.
某筋からの調査依頼があって, EASE (Empirical Approach to Software Engineering) プロジェクトの EPM (Empirical Project Monitor) というツールを使ってみた.
うーん, 実に SRA (SRAも絡んでいる) らしいというか, 20 年くらい前も SRA で自分, こんなことをやっていたような気がしないでもないが, まぁ時代は変わる. 今風だ.
基本的には CVS (バージョン管理), GNATS (バグ管理), Mailman (メイリング・リスト) を集めて, そこからいろんなデータをリアルタイムで (つまりプロジェクトの終了後ではなく), 取り出して分析するというもの.
た だ今どきとしては, CVS / GNATSに縛られるのはきつくないですか? Subversion とか Trac とか Bugzilla とかいろいろありますでしょ. どうせ縛られるのならいっそのこと, (例えば) GForge にプラグインするような形にできなかったかなとか, そういうインタフェース (API か SOAPプロトコルか何か) を切るのがまっとうそうな気もしたりする.
それから分析結果もリアルタイム性が売り物なら, Web でページをこそこそめくってみるよりは NASA のコンソールみたいになっていて, まずいことになると全画面が点滅してサイレンが鳴り響くとか.
勝手なこと言ってますが...
coLinux のイメージを使って, Windows でちょっと走らせてみました.
UML VM 絡みであるプレゼンテーション (PowerPoint なので注意) を見ていたら, 「オブジェクトには西海岸派と東海岸派がある」などと書いてある. 東海岸派は「オブジェクトはプログラミングのための便利な道具」と思っている人たちで, クラス中心主義者. 西海岸派は「オブジェクトは考えるための道具」と思っている人たちで, オブジェクト中心主義者.
おお, 面白い, 便利じゃんと思ったけれど, 初めて聞いた. こんな言い方, するんですかね. これを書いている人はノルウェーの人なんだけど.
この区分で行けば, 自分はもちろん西海岸派だけど, 今の圧倒的多数の「オブジェクトでやっている人たち」は東海岸派だろう. C++ (New Jersey) は言わずもがな, Java (California) も東海岸派のものだ. それは構造化の手法であってオブジェクトではない, と敢えて言おう. だから今の「オブジェクトでやっているプロジェクト」のほとんどもそれを「オブジェクトでやっています」なぞと言って自滅するくらいならば, 構造化の手法をきっちり使ってやればいいんじゃないの. どうせその程度でしょ.
オブジェクトの良さはぜんぜん違うところにあるんだから. ま, そういう意味でオントロジ (西海岸派の隠し球ですよ) が少しずつ注目されているのはいいことかもしれない. そのうちまた乗っ取られちゃったりするかもしれないけど...
うちでは, 外部の公開されている情報 (調査やなんかで見た Web ページや PDF ファイルや画像やそんなもの) はすべて DEVONthink Pro という知識ベースに突っ込んである.
何が便利かといって, まぁ何も考えずに突っ込んでも後でいくらでも検索や分類ができるところか. MacOSX では Spotlight というデスクトップ検索ツールが頑張ってはいるんだけど, こういう特定の使い方に関してはなかなか適わないと思う.
とは言っても, DEVONthink を使うのもなかなか大変であった. 何しろ高機能だし, 汎用性が高いし. で, 今ではこうなっている.
というわけで, 今の時点で約 3 年分, 4000 ファイルくらいがここに溜まっているわけだ.
「見える化」「見える化」つったって, 今の「見える化」は「見せる化」というか, モノやプロセスの側がヒトによく見えるように工夫しようというもののわけで, ヒトの方がモノやプロセスをよく見えるようにならなくちゃという「見える化」じゃないんだよね.
ヒトの (動体) 視力を上げるのは簡単なことじゃない, と気付いたところから「見せる化」は始まっているんだけど, 「(ヒトの) 見える化」がいつかは必要になるはず.
じゃあどうしたら (動体) 視力を上げることができるか.
新しい本の原稿を VoodooPad で書こうと思って, 2 から 3 にアップグレード. ところが, だめなんだな, リモートのファイル・システムにおいたドキュメントを開けないのだ.
実は最近の MacOS X は CoreData と いうデータ (アプリケーションの操作対象) を扱うフレームワークを持っていて, バッキング・ストレージとして XML, SQLite, Binary を使うことができる. Binary は今までどおりオブジェクト・ネットワークをシリアライズしたもの. SQLite はオンメモリ / スタンドアロンの RDB にオブジェクト (クラス) をテーブル化して入れてしまおうということだ.
VoodooPad は多分 2 から 3 にアップデートするときに CoreData フレームワークに移行して, バッキング・ストレージを SQLite にしたんだろう. SQLite は速いし, 大量のデータを扱える. その代わりにちゃんとしたロック・プロトコルを持たないファイル・システム上に置くことはできない.
ほとんどのファイルをサーバに置いて, ノートブックを持ち歩いていろんなところで仕事をする僕には大変困った事態なのである.
格言: 「あちらをたてればこちらがたたず」
でもさ, クライアント=サーバの SQL エンジンならともかく, 普通のアプリケーションのデータ・ファイルをリモート・ファイル・システムに置けないってのは「ダメ」じゃないか.
ちなみに VoodooPad はデスクトップ Wiki システム. なんと言っても Wiki ワードを自動的にハイパーリンクにしてくれる. なかなか優れたアプリケーションではあるのだが.
ソフトウェア開発をあたかも建築のように考えてみる, とか庭仕事のように考えてみる, とか絵を描くことのように考えてみる. それによってソフトウェア開発のある側面に新鮮なアイデアをもたらす, というのはよくある手だが, その一方で, いや, ソフトウェア開発はソフトウェア開発なんだから, 他の仕事の比喩ではなく, ソフトウェア開発そのものとして語られるべき, という考え方 (「ソフトウェア開発は何ものにも似ていない」) もある.
ま, そりゃそうなんだが.
でも.
むしろ逆にソフトウェア開発とは建築でもあり, 庭仕事でもあり, 絵を描くことでもあり, ... ってこともあるんじゃないか. ソフトウェアが何ものでもあり得るのと同じように.
ソフトウェア・プロジェクトの尺度 (生産性とかコード行数とか欠陥密度) をプロセス改善に使うときの問題点はいろいろあるんだけど, その一つに次のようなものがある. あるひとつの尺度をプロセス改善の目安にすると, その尺度を向上させることはできるのだけれど, 必ずしもプロジェクト全体は良くならない.
例えば, 個人の生産性を尺度にするとひとりひとりの生産性の平均は上がってもプロジェクト全体の生産性は落ちてしまうとか, 生産性を尺度にすると隠れた品質も含めた全体の品質は落ちてしまうとか.
それに対処する方法もいくつかある. その一つは尺度をひとつではなく, 複数にして多面性を持たせる. うまくいくこともあるけど, 結局は尺度が際限なく増えて, ソフトウェアを作っているんだか, 測るのが目的なのか分からなくなることもある.
別 のやり方として, ひとつひとつの尺度ではなく, それらを総合した全体的な尺度を使えばいいという考え方もある. そんな尺度はあるのか? すべての尺度と互換性を持ち, すべての尺度を総合した結果を表すような尺度が. 現代社会ではそれは「貨幣」と呼ばれている. 要するにそのソフトウェアがどれだけ稼げるかを問題にすれば, 「見えざる神の手」がすべての尺度のバランスをとってくれるのではないか, というわけだ.
しかし同時に貨幣という尺度はある規模を超えると非常に不安定で, それ自身が自律した絶対的な価値になってしまうらしいことも分かっている. 例えば歌には売れた CD の枚数 (= 貨幣価値) とは違う尺度が必要なのだ (本来は).
NoteTaker は元は NeXT 向けの Notebook というソフトウェアで, もう10 年以上前からあるわけだが, 今でも他に類を見ない (実は同じく Notebook から分岐した似たソフトウェアもある:-) 画期的なキッチン・シンク・ソフトウェアだ. 2006 年 7 月現在での NoteTaker の使い方をメモとして記録しておく.
さて, ToDo/ジャーナル管理ツールとしての NoteTaker はこうやって使っている.
ポイントは"連続性" (continuous-ness) だろうか. ある作業が (半自動的に) 次の作業を生むような仕組み.
"Getting Real" は Ruby on Rails の開発者 37 signals による, 彼らなりのアジャイル. 本屋には売っていない. 彼らから直接 PDF で買う. なかなかいいビジネスだ. 要旨を日本語にしてみた.
メモ代わりに2006 年 7 月現在の仕事のスタイルを記録しておこうと思う.
毎日, 朝, MacOSX の Dock を上から順に (NeXTStep 時代からの習慣でうちでは Dock は右端に縦に並んでいる)
メイルや Web, NetNews など決まった外部情報にアクセスするのは基本的に朝と夕方, 深夜の一日 3 回だけ.
Dock を上から順にクリックしていくのを, 一日 3 回繰り返すというのはミソなんである. これを Windows 上でやれ, と言われたら...... 廃業します.
Agile Development 2006 年春号が出たので, 読んでみよう.
事例研究は 3 件. ひとつは BT (British Telecom, 日本で言えば NTT ですな). BT は業務/IT 分野でアジャイルへのシフトを行っている最中らしく, その中で EAI (Enterprise Application Integration) をやっているチームのアジャイル化の報告 ("Cooking up some Agile Planning"). もう一つはシーメンスで, Scrum と TOC (制約理論, 「ザ・ゴール」で有名な) を合体させたもの ("Agile gets Lean"). これは面白いかも. もっと詳しい話を聞いてみたい. どちらも超大手ですよね. やるところはちゃんとやってると.
"Checks and Balances" はアジャイル・プロセスにおける QA (品質保証) 部隊の役割について. 日本では QA というと一部の会社には「他に行き場所のない人のための部署」みたいなところもあるけれど, 本当にそれでいいの? Action Based Testing (ABT) というのがちょっと気になりますね.
"Take the XP Plunge!" (XP へダイビング!) を書いているのは Kent Beck と Cynthia Andres ("XP explained" 第2版の共著者). 「もう, もたもたしてないでやっちゃいなよ. 水は入っちゃえば気持ちいいよー」という記事です. 救命胴衣は
だそうです.
"Informed Consent" はアジャイルのための組織形態とは何かという記事. 今までの組織形態はアジャイル・プロセスとは合わない. "sociocratic" な組織 (すべての人が利益を受け取れるような組織) が重要だって. 「組織」はこれからとても重要な問題になるでしょう.
書評は "Behind Closed Doors" (「閉じられた扉の向こう側で」) と "Agile Estimating and Planning" (「アジャイルな見積もりと計画」). "Agile Estimating and Planning" はさっそく発注しちまいましたよ...
記事はどれも短め (平均 3 ページ程度) で, 物足りない感もあるんだけど, 論点は割と鋭い. Agile Alliance のメンバ ($100/年) になると読めます. 何ヶ月かすると非メンバにも公開されるらしい.