2010/08/29

ルトワクの戦略論に学ぶソフトウェア開発

ルトワク(Edward Luttwak)の戦略論では、戦略が5つのレイヤーに分けられています。
  1. 大戦略(grand strategy)
  2. 戦域(theater)
  3. 作戦(operation)
  4. 戦術(tactics)
  5. 技術(technology)
基本的には、上位のレイヤーが下位のレイヤーを規定しています。政治・経済を含む大戦略に適合するように戦域が設定され、戦域内での戦略目的を達成するために作戦が立てられ、作戦を遂行するために戦術を決定し、戦術に見合った兵器(技術)が選定されます。つまり、目的に合わせて手段を選ぶということです
このアナロジーをソフトウェア開発に適用すると
  1. ビジネス戦略
  2. IT戦略
  3. プロジェクト
  4. 開発プロセス
  5. 技術
の5レイヤーというところでしょうか。ビジネス戦略に適合するようにIT戦略が設定され、IT戦略の戦略目的を達成するためにプロジェクトが計画され、プロジェクトを遂行するのに都合の良い開発プロセスを決定し、プロセスに見合った管理・開発ツール(技術)が選定されます。
しかし、時間の経過と共に全てのレイヤーで変化が発生し得ます。そしてその変化が上位レイヤーの陳腐化と変化を促すことも多いです。
第二次世界大戦以降の例では、航空技術の発達が洋上艦隊戦の戦術を一変させました。また核兵器の登場によって、戦術のみならず最上位の大戦略までもが大幅な更新を迫られました。つまり、手段に合わせて目的を設定する必要があるということです。
ソフトウェア開発においては、Hudsonのような継続的インテグレーション(CI)ツールの登場が開発プロセスに影響を与えています。またGAEのようなクラウドサービスが可能になったことによって、開発プロセスだけでなく最上位のビジネス戦略までもが、見直しを迫られています。
実際には上記の2つのアプローチのどちらか一つではなく、トップダウン、ボトムアップ、さらにはミドルアップダウンのアプローチの相互作用によって5つのレイヤーが決定されます。世界は複雑で常に変化していますので、5つのレイヤーが全てが変化し続けていてこそ、戦略が機能していると言えるのかもしれませんね。

2010/08/23

コーヒーブレイクテストによるタスク分割



仕事のある日は朝に1日のタスクの一覧を洗い出し、優先度の高い順から対応しています。その日できなかったものは、翌日以降に回します。言わば、GTD(Getting Things Done)の簡易版です。
この方法で胆になるのは、リスト化するタスクの粒度です。 もちろん、1日で終わらないサイズのタスクを計画しても上手く管理できません。 かといって、あまり細かくするとタスクリストの作成と管理に 時間がとられてしまい、本末転倒です。

そこで私が利用しているのが、「コーヒーブレイクテスト」(Coffee-Break Test)です。
作業と作業の間にコーヒー休憩を入れても 問題ないと思えるような切れ目があれば、別のタスクとして扱います。 限度はありますが、タスクに要する時間は余り関係ありません。電話1本、5分程度で済むものから、 2~3時間くらい集中して作業が必要なものまで、休憩なしで一連の作業としてやってしまうべきものは、 1つのタスクと考えます。
感覚的には、10~14個くらいのタスクに分けると1日の作業がスムーズにいくように感じています。

なお、この「コーヒーブレイクテスト」は、もともと アリスター・コーバーンの「ユースケース実践ガイド」で ユースケースの境界を明確にする基準として挙げられてたのを転用しました。

2010/08/22

久しぶりの英文和訳

今日、久しぶりに英文の和訳を行ないました。500Wordsちょっと位ですが、もしかしたら大学卒業以来かもしれません。
普段適当に読み流して分かったつもりでいる英文でも、一つ一つ訳をつけていくと実は正確には理解していなかったということがよく分かりました。適切な日本語の単語が思い当たらないものも多いですね。また、参考文献の記述方法などは、知っていないとどうすればよいのかわからりません。
さらに原文がWikipediaなので、リンクの処理方法等も迷いました。基本的には Google Translator Toolkit 任せですが、どうも動きにバグがあるようで(真ん中のフレームの区切りを左右に動かすと左の英語側で時々消えるセンテンスがあるなど)、どこまで信頼できるかわかりません。
さらに、原文の文構造が曖昧なものや文法間違い(?)もあり、どう対処するのかも難しいところです。

2010/08/04

バイオミミクリー(Biomimicry)

生き物からインスピレーションを得て創り出された課題解決型デザイン。
Biomimicry is the science and art of emulating Nature's best biological ideas to solve human problems.
38億年に及ぶ地球生命の試行錯誤の結果を、学んで活かさない手はないですね。
先日写真を撮ったハスの葉からは、自己洗浄機能のある塗料が生まれています(ロータス効果)。
その他にも、JR西日本の新幹線がフクロウやカワセミに学んだことも有名ですね(カワセミの写真)。
私の頭ではまだソフトウェア開発への応用は思いつきません。ありきたりですが、アリやハチなどが少数のシンプルなルールの組み合わせだけで複雑で美しい作業を大勢で連携してやってのける仕組みなどは、コミュニケーションや開発プロセスの参考になるかもしれませんね。
アトランティック大学(COA)のデルタプロジェクト2010におけるJanine Benyus氏の基調講演がYouTubeに公開されています。アメリカの大学の講義なので、1時間半と長くかつ英語ですがおすすめです。

Janine Benyus - Nature's Blueprints: Biomimicry in the Built World