日経ITProに記事書きました(2)
前回に引き続き、こんな記事を書いてみました。
要求開発とコタツモデル(2)--アンチパターンを活用する:ITpro
モトネタは要求開発アライアンスの3月定例勉強会で発表したネタだったんですが、なかなかちゃんとした記事風にするのは難しいものですね。良い思考トレーニングになりました。
前回に引き続き、こんな記事を書いてみました。
要求開発とコタツモデル(2)--アンチパターンを活用する:ITpro
モトネタは要求開発アライアンスの3月定例勉強会で発表したネタだったんですが、なかなかちゃんとした記事風にするのは難しいものですね。良い思考トレーニングになりました。
こんな記事を書いてみました。
要求開発とコタツモデル(1)--失敗パターンに陥らないために:ITpro
要求開発アライアンスではいろいろな議論や発表がされています。これを、もうすこしわかりやすく、ていねいに紹介したら良いのではないか? と常々思っていたのです。というわけで、今年はこんな内容で何回か記事を寄稿してみようと思っています。
ちなみに、書くにあたっては『「超」文章法』をかなり参考にしました。個人的にはちょっとブームです。
ひょんなことから、有吉佐和子さんの有名な小説(?)『複合汚染 (新潮文庫) 』を読んでいます。本作は、ちょうど私が生まれた年の朝日新聞に連載された環境汚染問題をテーマとした文芸作品です。興味があるかたはWikipediaなどもあわせてご参照ください。
またまたBlogの更新が滞ってます。連載宣言(?)をしたコタツモデルの話の続きも書けていないのですが、続ける気はもちろんありますので、もし万が一にも興味を持っている方は気長にお待ちください。
で、今回は私の読書強制システムについてのご紹介です。読書強制システムとは、スパルタンに大量の本を読まざるをえないようにするシステムの事です。この記事を読んでて思いつきました。
本は「欲しい」という前に買え。そう思います。私も同じように考えていますが、より自分に読書プレッシャーがかかるような仕組みにしています。
よく本が読めないとかいう人がいますが、そういう人に共通してるのはまず読めないという前に、読む本をもってないでしょ、ってこと。
そりゃ、持ってなければ読めません。読むためにはまず読むべきものを所有することです。そこからです。しかも、1つじゃなくて常に複数読みたいものを所有しておくこと。それもできるだけいろんな種類のものであった方がいい。
本は「欲しい」という前に買え:DESIGN IT! w/LOVE
今日ちょっとハマったのでメモ。Subversionという構成管理ツールのお話です。
Subversionのリポジトリを格納するサーバですが、当然のことながら永遠に同じマシンの上で運用するわけにはいかないので、移行をする必要があります。で、移行した際にはローカルのWorkSpaceを、古いリポジトリから新しいリポジトリに切り替えてあげる必要があります。
この操作は、Subversionのswitchコマンドで行うのですが、、、
実は、UUIDが異なるリポジトリへの切り替えは、現在のバージョン(1.4.x)ではできません。
UUIDのチェックロジックが埋め込まれており、回避は不可能です。
(ここまで調べるのにけっこう疲れた)
次期バージョンでは--ForceオプションによるUUIDチェックの回避ロジックが検討されているようですが、リポジトリを移行する際には留意する必要があるようです。
うへぇ。
最近のお気に入りのブラウザはFlockです。ベースはFirefoxで、これにいろいろなSNS的ツールを追加したものですが、便利に使っています。日本語版はありませんが、基本的にはFirefoxなので特に利用に支障はありません。
ちなみにFlockの詳細はWikipediaが詳しいのであわせてどうぞ。
さて、FlockはFirefoxベースなので基本的にはFirefox向けの拡張機能はすべてインストールすることができます。ですが、なぜかWindows版ではGoogle Gearだけは簡単にインストールできないので注意が必要です。
Windows向けのGoogle Gearですが、利便性を重視して専用のインストーラが配布されます。このインストーラがFlockを検知してくれないために、Flockへのインストールはうまくいかないようです。(ちなみにMac OS Xではこの問題はないようです)
ではどうやってインストールするかというと、次のような方法で手動インストールができます。
ライフハック交差点:第10回 未来を引き寄せる ToDoリストの作り方 |gihyo.jp
で紹介されている、ToDoリストならず、Doingリスト。これ、オススメです。ひとことでいえば、「今なにをやっているかをメモなどに書くということ」です。Doingリストを作成すれば、割込みの作業や電話などがあっても、何をやっていたか、次に何をやるべきかについて見失う事はなくなります。
個人的なコツはこんな感じ。最近はRHODIA#13(文庫本サイズのRHODIA)を使っています。
svnsyncというのは、プログラムのソースコードなどを管理するバージョン管理システムSubversionのコマンドの一つです。ちょっと最近ハマったので調べた事をここにまとめてみます。
■svnsyncとは
svnsyncとは、Subversionのリポジトリを同期・複製するためのコマンドです。Subversion 1.4から追加されたらしい。リポジトリを同期・複製するための選択肢としては他にSVKというものがありますが、これはSubvesionには含まれずサードパーティ製ツールという扱いになります。主な違いは次のような感じです。
久しぶりにメモ/手帳システムを変更してみました。というのでメモ/手帳のお話です。
ここ数年は基本的に、いわゆるスケジュールを記入する手帳は持たずに手帳サイズのノートを使っていました。
人によって手帳のニーズは違うと思うのですが、個人的には、
システム開発の要求開発・要求定義フェーズにおける人間関係のメタファー「コタツモデル」。そのアンチパターンについて考えるエントリの第2回です。
■オーナー不在(Owner Absence)
別名:誤った現場主義
挿話証拠:「トップは現場(業務)をわかっていないから」
ア ンチパターンの一つ目は、「オーナー不在(Owner Absence)」パターンを取り扱います。
図にあるように、「E(Engineer):システム担当者」と「U(User):ユーザ、つまり業務担当 者」がコタツに入って、仕様を検討しています。ここで重要なのは、ビジネスオーナーが不在である、ということです。 ただしい コタツモデルでは、「E(Engineer):システム担当者」「U(User):ユーザ、つまり業務担当者」「O(Owner):ビジネスオーナー」が 一つのコタツに入って合意形成をすることが良いとしています。それでは、ビジネスオーナーが不在の場合には、どのような問題が発生するのでしょうか。
■症状と結果
ビジネスオーナーは、次のような視点を持っています。
■はじめに
2008年3月の要求開発アライアンス定例会で「コタツモデル再考」という発表をしたのですが、予想外に好評だったので調子に乗って、発表内容をベースに「コタツモデル・アンチパターンズ」という標題で詳しい内容を書いてみようと思います。週1回ペースくらいで書いていこうと思いますので、興味のある方はRSSリーダ等に当ブログを登録お願いします。
■コタツモデル
システム開発プロジェクトは沢山の人によって進められます。特にシステムそのものの目的や方向性そして仕様を決めるプロセスは重要で、ここで失敗するとシステム開発プロジェクト自体が失敗するといっても過言ではありません(実際に、システム開発プロジェクトの7割は失敗しているという調査もあります)。
失敗する要因には様々なものがありますが、特に次の3種類のプロジェクト参加者が、システムの目的や方向性について合意形成していることがプロジェクトを失敗させない為には重要です。
ソフトウェアはコミュニケーションで出来ているとはチェンジビジョンの平鍋さんの言葉ですが、特にシステムの目的や方向性の決定、要件定義について、コタツモデルを形成することが、システム開発の成功確率を高める一つのポイントではないでしょうか。
ソフトウェア開発において「こうあるべきだ」という典型例を集めたものデザインパターンであるのに対し、「こうあってはならない」という典型例を集めたテンプレート集がアンチパターン。デザインパターンと言うと、設計やプログラムコードのお手本として捉えられることが多いのですが、これに対してアンチパターンは組織やプロジェクトマネジメントまで非常に幅広く取扱うことができます。書籍「アンチパターン -ソフトウェア既得患者の救出-」や、Wikipedia(英)のAnti-Patternには様々なレベルのアンチパターンが言及されています。
はてなダイアリー:アンチパターンとは
いつか書こうと思っていたんですが、ひがさんのBlogで言及されていたので反応的にエントリ。
なぜメモを取るのか。
* 記憶は頼りにならない
* メモを取ることで、脳を「考えること」に使える
* 記憶は共有できないが、メモは共有できる。メモを書くことは、他人と情報を共有することになる。
などです。メモを取ることは、一手間かかるようで、実は非常に効率的なのです。
2008-03-14 - reponの日記
メモを取ることで、満足しちゃうんだよね。頭を使わなくなる。だから、相手の話を聞くときには、その話に集中し、メモなんか取らないほうが良い。
メモを取ったほうが良いのか - ひがやすを blog
私が運営にも参加している要求開発アライアンスの2008年3月定例会で、ちょっとした発表をしてきました。
詳しい話は別途近いうちに書きますが、とりあえず資料を公開します。
Blogged with Flock
某所でデスマーチについて議論しました。その時点ではいくつか私の誤認もあったので、改めてデスマーチについて考えてみます。
個人的な意見としては、みんな「デスマーチ(゚∀゚)」と言いすぎると思っています。
なお、このエントリのBGMはマイ・ケミカル・ロマンスの「ザ・ブラック・パレード」で・・・
■個人的なデスマーチの定義(注:これはマチガイです)
デスマーチとは、ソフトウェア開発における悲惨なプロジェクトのメタファーです。メンバーに極度な負担を強い、かつ成功する確率が低い状況を、「死の行進(デスマーチ)」と呼びます。
後で調べて間違いだと気づいたのですが、個人的にはデスマーチの定義を次のように考えていました。
Blogged with Flock
■権威勾配について
権威勾配とは、正確には「操縦室内権威勾配(Trans-cockpit Authority Gradient)」のことで、航空業界におけるクルーリソースマネジメント(CRM)に出てくる概念です。
CRMとは航空機パイロット(クルー)向けの学習プログラムで、『利用可能なすべてのリソースを、最適な方法で最も有効に活用することにより、クルーの トータルパフォーマンスを高め、より安全で効率的な運航を実現することを目的とする考えかた』という定義です。ITプロジェクトにおいても、チームのトー タルパフォーマンスを高める事は大きな課題なので、いろいろと参考になりそうなアイデアが詰まっているようです。詳細は下記の本などを参照ください。
で、権威勾配は何かと言うと、(飛行機が)安全な運行を確保するための操縦室内での権威の力関係のことになります。
Jolt Awardsから。洋書だけど、ちょっと気になっています。
Blogged with Flock
このあいだ、梅田望夫さんの「ウェブ時代をゆく」を読んだのですが、その中に出てくる「第5章 手ぶらの知的生産」が気に入っています。梅田望夫さんの言う「手ぶらの知的生産」とは、
Blogged with Flock
前回のエントリでマインドマップまで書いて挫折してしまっていますが、ITシステムの導入で失われる知力に関する文章です。
ITシステムの導入は、その価値や生み出すものばかりに目がいってしまいがちですが、逆に失われるものもある、ということをよく考える必要があります。
■Google前後の世界
梅田望夫さんの有名な著書「Web進化論」を引くまでもないですが、Googleの出現によってわたしたちの知識に関する考え方は一変してしまいました。現在のわたしたちは、わからない事があれば考える前に検索するのです。結果として知識習得のためのコストが大きく下がった事はとても良いですが、逆に書籍などを読み、自分で考えるという力は低下しているような気がしています(これは個人的な主観です)。
■ITシステムとナレッジのトレードオフ
ITシステムを導入すれば、基本的には利用者はそのシステムによって処理能力を引き上げられ、今まで人間ではできなかったほど高度な分析や処理ができるようになります。システムにチェックロジックなどを組み込むことにより作業は平準化され、ミスが防止されるようになります。しかし、こういったメリットを享受した場合、同時に失っているものもあるのではないでしょうか?
Blogged with Flock
仕事がらITシステムの導入に関係することが多いのですが、ITシステムの導入はビジネスにポジティブな影響を与えるだけではなく、同時にネガティブな影響も与えます。システム構築に際してはポジティブな影響(例「1日3000件の処理を可能とする」)をゴールとする事が多いのですが、ネガティブな影響についてはあまり論じられないような気がしています。
というわけで、ちょっと考えてみたのですが・・・図まで作って力尽きたので、次回につづく。
ちなみに今週の月曜日は、PFP関東ワークショップに参加してきました。今回もいろいろな気づきがあったのですが、ワークショップの内容はpapandaさんのBlogが詳しいので省略します。
前回のエントリに引続き、クルーリソースマネジメント(CRM)の話題です。
本書の中で紹介されているSHELLモデルが個人的にはとても気に入っています。というわけで、今回はSHELLモデルに関する話です。
SHELLモデルとは、KLMオランダ航空のパイロットであるHawkinsさんが提唱したもののようです。分野としては、人間工学(ヒューマンファクター工学)で論じられるものらしい。
最近ちょっとクルー・リソース・マネジメント(CRM)に興味があり、「機長のマネジメント」という本を読みました。
CRMとは航空機パイロット(クルー)向けの学習プログラムで、『利用可能なすべてのリソースを、最適な方法で最も有効に活用することにより、クルーのトータルパフォーマンスを高め、より安全で効率的な運航を実現することを目的とする考えかた』という定義です。ITプロジェクトにおいても、チームのトータルパフォーマンスを高める事は大きな課題なので、いろいろと参考になりそうなアイデアがたくさん詰まった本でした。
さて、CRMそのものも大変に興味深いのですが、今回は本書で知った『マリン・コンセプト』がとても便利だったのでこれを紹介してみようと思います。
マリン・コンセプト
Blogged with Flock
先日某所で行われた合宿勉強会で盛り上がったネタを整理してみるものです。
さて、ここで言う仕様変更とはITシステムの開発期間における「仕様(設計)の変更(修正)」の事を指しています。
一般的には仕様変更が発生すると、手戻り作業が発生し、スケジュールやコストが変化します。というわけで、ITシステム開発では忌み嫌われるのが普通ではないでしょうか。
(このへんのニュアンスが分かりにくければ、404 Blog Not Found : 惰訳 - 建築士がプログラマーのごとく働かねばならぬとしたら をご覧になることをお勧めします。全プログラマーが泣いた。私も泣いた。)
特に日本では多いウォーターフォール型の開発では、中盤から終盤にかけてこの「仕様変更」の扱いが非常に重要な問題となっています。特に日本型開発ではシステム開発プロジェクトの序盤で予算が確定(固定)しており、話がややこしくなります。
立場別に、言いたい事を整理してみます。
Blogged with Flock
昨日から、ウィキノミクスという本を読み始めています。まだ一章しか終わってないんですが・・・
最近、日経IT Pro Watcherでもコラム「針路IT」を連載されている、田中克己さんの書籍「IT産業崩壊の危機―模索する再生への道のり」を読んでいます。で、本書の論旨とはちょっと外れているのかもしれませんが、産消逆転という話が面白かったので取り上げてみます。
ここで言う産消逆転とは、もともとは野村総合研究所の村上輝康理事長の発言によるものということですが、
Blogged with Flock
本当にやるのかは別にして、参加しているコミュニティでちょっとしたドキュメントを作成する話題が出ています。今まではWordなどで文書を作成してそれをメールに添付してやりとりする、というスタイルだったのですが、これを変更してGoogleDocsにすればいいと個人的に考えていました。
と、ちょうどWebを眺めていたら、「Writing a Book in Google Docs」というエントリ(英語)を発見したので、和訳しながらメモをとってみました。
なお、内容の保証は無いので気になる方は原文をご参照ください。
というわけで、以下本題。
GoogleDocsで本を執筆する(オリジナルは「Writing a Book in Google Docs」です)のメモ訳
Blogged with Flock
197xつながりなGoTheDistanceさんのところの「コミュニティ運営の難しさ」というエントリについて。
ちなみにBPMイベントは参加したかったのに諸般の事情で参加できず。ちょっと悔しい。
私も要求開発アライアンスの幹事をすることが多いのですが、オープンコミュニティを運営するリスクはいろいろあります。
Blogged with Flock
牛尾さんが日経IT Pro Watcherに投稿していたオフショア時代を乗り切る明確な要求仕様作成術について。
ちなみに、牛尾さんは要求開発アライアンスの執行委員つながりです。というわけで、昨日も「大ネタを書いたんですよー」と事前に聞いていたのですが、こりゃ確かに大ネタです。
Rubyという生産性の高い言語とフレームワーク,そしてアジャイル開発があれば,「仕様書としてのアプリケーション構築」が現実のものとなる。このようなRubyの使い方を,RfS(Ruby for Specifications)と名付けよう。そもそも要件定義フェーズは,作るものが決まっていない「準委任契約」のフェーズである。このフェーズで,動くか動かないか,または正確なのかが わからない紙ベースでの仕様を作るかわりに,Railsを使ったアジャイル開発で,迅速に「仕様書としてのアプリケーション」を構築する。要求開発でプロ ジェクト企画を行い,その後アジャイル開発を使って,実際に動くアプリケーションという「仕様」を作成していくのだ。興味深いテーマです。基本的にシステム開発プロジェクトが失敗する(もしくは、リスクが高い)原因の一つとしては、
オフショア時代を乗り切る明確な要求仕様作成術
ヒント16. プロトタイプの真の目的は学びにあるという意味では、RfSで作成したプロダクトについても、きちんとした評価を行い教訓を導き出した上で開発に適用すべきなように思います。例えばこんな感じだとどうでしょう?
プロトタイピングとは、学習経験のことである。その価値はできあがったコードにあるのではなく、学習した教訓そのものなのである。
Blogged with Flock