木曜日, 4月 17, 2008

Doingリスト

ライフハック交差点:第10回 未来を引き寄せる ToDoリストの作り方 |gihyo.jp
で紹介されている、ToDoリストならず、Doingリスト。これ、オススメです。ひとことでいえば、「今なにをやっているかをメモなどに書くということ」です。Doingリストを作成すれば、割込みの作業や電話などがあっても、何をやっていたか、次に何をやるべきかについて見失う事はなくなります。

個人的なコツはこんな感じ。最近はRHODIA#13(文庫本サイズのRHODIA)を使っています。

  • 仕事の種類や公私などでリストを分けずに、単に上から順に書いていく。
  • 仕事中は常に手元に開いておいて、すぐに閲覧と更新ができるようにしていく。
  • アクションリストで書く。「~の件」ではなく「~の件をメールする」という感じ。
  • 終わったら気持ちよく斜線を引いて消す。
全てのアクションリストに斜線が入って一日が終わると気持ちがいいですし、残ったものはスケジュールに入れたり、翌日の早い段階でクリアするようにしています。

参考:
ゆっくりと動きながら高速でこなす、一流の研究者の Doing リスト | Lifehacking.jp

Blogged with the Flock Browser

木曜日, 4月 10, 2008

svnsyncの使い方

svnsyncというのは、プログラムのソースコードなどを管理するバージョン管理システムSubversionのコマンドの一つです。ちょっと最近ハマったので調べた事をここにまとめてみます。

■svnsyncとは
svnsyncとは、Subversionのリポジトリを同期・複製するためのコマンドです。Subversion 1.4から追加されたらしい。リポジトリを同期・複製するための選択肢としては他にSVKというものがありますが、これはSubvesionには含まれずサードパーティ製ツールという扱いになります。主な違いは次のような感じです。

  • svnsync
    • Subversion 1.4以降に含まれる
    • 基本的に「ターゲットと同期する」ことしかできない。
  • SVK
    • サードパーティ製のツールである(Subversionのインストールには含まれていない)
    • Perlでできているらしい
    • svnsyncより出来る事は多い。特定のリビジョンをスキップしたり、特定のリビジョンまで同期するというようなオプションが用意されている。
    • 個人的な印象ですが、svnsyncほどの完成度ではない気がします(実際に今回ハマった部分はSVKでは回避できず、svnsyncでは回避できた)
■svnsync覚え書き
というわけでsvnsyncの覚え書きです。
  • 基本
    • リポジトリを作成する svn create hoge
    • 作成したリポジトリのフォルダを開き、hooks/pre-revprop-change.tmpl をコピーしてhooks/pre-revprop-change.bat に変更する(Windowsの場合)
    • hooks/pre-revprop-change.bat の2行目にexit 0 と記入する。
    • 作成したリポジトリに、複製元の情報をコピーする。svnsync init file://hoge http://target
      • これを実行すると、hogeのリビジョン0の属性として、次の3つの情報が書き込まれる。
      • svn:sync-from-uuid:複製元のリポジトリのuuid
        • 複製元リポジトリをsvn infoで見ると表示されるuuidと一緒のものが入力される。
      • svn:sync-last-merged-rev:同期した最終リビジョン
      • svn:sync-from-url:複製元リポジトリのパス (上記例ならhttp://target)
    • あとは同期をする。svnsync sync hoge
      • 基本的に最終リビジョンまで延々と処理を続ける。
    • これだけ。
  • メモ・調べたこと
    • sync-last-merged-rev、sync-from-urlなどを変更すればある程度svnsyncの状態をコントロールできます。ただし、sync-last-merged-revを変更した場合、リポジトリのリビジョンと不一致があると、syncを実施する際にエラーとなります。
    • sync-last-merged-revを変更するには、以下のコマンドを打ちます
      svn propedit svn:sync-last-merged-rev --revprop -r 0 --editor-cmd notepad file://hoge
    • もしもリビジョンを変更したら、それに合わせてリポジトリのリビジョンもインクリメントさせる必要があります。うまい方法が見つからなかったので、私はプログラム以外のテキストファイルをちょっとだけ修正してコミットして調整しました。
今回のハマリポイントは、移行元のリポジトリで破損したチェックインがある(おそらく文字コードの処理に失敗し、文字化けした変更がコミットされてしまっている)ため、どうしてもあるリビジョンの修正にアクセスできず、syncが出来ないというトラブルでした。このリビジョンにはいかなる方法でも(svn infoですら)アクセスできないため、これをすっ飛ばす事が必要というわけでした。

■参考資料
とにかくこれが一番だと思ってます。しょっちゅう開いています。

Subversion実践入門—達人プログラマに学ぶバージョン管理
Mike Mason
オーム社
売り上げランキング: 170542

他に今回の作業をするに当たっては、以下のページを参考にしました。

Blogged with the Flock Browser

水曜日, 4月 09, 2008

メモシステムの変更

久しぶりにメモ/手帳システムを変更してみました。というのでメモ/手帳のお話です。

ここ数年は基本的に、いわゆるスケジュールを記入する手帳は持たずに手帳サイズのノートを使っていました。
人によって手帳のニーズは違うと思うのですが、個人的には、

  • 会議や外出する予定は、会社で提供されるスケジュールサービスで管理せざるをえない。
  • スケジュールをいちいち紙に転記するのは面倒だし、あまり意味がない。
  • 記入するのは、基本的にはToDo(アクションアイテム)と作業メモが中心である。特に私は机の上が付箋紙でゴチャゴチャするのが嫌いなので、作業メモは一元的に管理をしたい。
  • 仕事中はずっと開いた状態で机の上に置き、常に見る/書くことができる状態にしたい。
  • 罫線はあっても無くても良い。方眼でも良い。
  • メモ魔なので、必ず1日平均2ページを消化してしまいます。
  • 年齢的にあまり貧相なのはイヤ。フォーマルな打合せでも使えるルックスが必要。
  • かさばるのはイヤ(なので、システム手帳は嫌い)。
というのが私の手帳ニーズです。

ここ数年来は定番のMoleskinを使ってました。Moleskinは最近はとても入手しやすくなっていますし、開いた状態がキープできる(180度開く)ので愛用してきたのですが、最近は製造が中国になったり品質が落ちたという噂もあるらしいので、類似のノートもいろいろ試しています。
  • RHODIAのePure
    • 180度開いて使うという点で少し難あり。あと、開いた状態でずっと使っているとかなりクセがついてしまうのがイマイチ
  • 能率手帳の能率手帳ポケット4
    • 本当は2008年はこれで決定!というくらいに素晴らしい商品だったのですが、季節商品なので、年の始まり以外では入手が困難になってしまうという問題があります。補給性が低いのが凄いデメリット。
    • 商品としては、最初に数ページだけマンスリースケジュールがあり、それ以降は全部メモという商品でした。Moleskinほど180度オープンをサポートしているわけではありませんが、耐久性についても申し分なし。
というわけで、やっぱりMoleskin中心で行こうかと思っていたのですが、ここ最近一つの大きな問題が出てきました。
それは、過去のノートが増えてきて邪魔というものです。

私のペースだと、Moleskin換算でだいたい3ヶ月で1冊使い切ってしまうのです。1年で4冊。最初のころは使い終わったMoleskinが増えていくのが嬉しかったりもしたのですが、10冊を越えるとだんだん苦しくなってくる。各ノートには思い出もあるので捨てるのもしのびないというわけです。

というわけで、2008年度版の能率手帳の能率手帳ポケット4を(やっぱり)3ヶ月で使い切ってしまった後、少し奮発してBRIT HOUSEのTHEMEという「スケジュール手帳」+「RHODIAの#13」が両方使える皮手帳に変更してみました。イメージはAll About Japanのレビュー記事が参考になります。今のところなかなかに良い感じです。

  • 左側が手帳、右側が文庫サイズのRHODIAの配置の手帳カバー。
  • 基本的にはメモカバーなので、当然のことながら180度開いた状態で使うことができる。
  • メモ部分はRHODIAなのでどんどん使える。また使った分は切り取って保管/廃棄できる。。現在は1週間単位で切り取って、クリップ止めしてデスクに保管するようにしています。
  • 長期的なメモやスケジュールなどは手帳サイドに記入し、作業ログはRHODIA側に記入するという使い分けが可能。
  • ちょっとオシャレ
これを作っているBRIT HOUSEさんはけっこうこだわりのあるメーカーみたいで、質感も非常に良い感じです。
というわけで、特にトラブルが無ければ当面はこのメモシステムでいってみようかなぁと。
Blogged with the Flock Browser

月曜日, 4月 07, 2008

コタツモデル・アンチパターンズ(2)

システム開発の要求開発・要求定義フェーズにおける人間関係のメタファー「コタツモデル」。そのアンチパターンについて考えるエントリの第2回です。


■オーナー不在(Owner Absence)
別名:誤った現場主義
挿話証拠:「トップは現場(業務)をわかっていないから」

ア ンチパターンの一つ目は、「オーナー不在(Owner Absence)」パターンを取り扱います。
図にあるように、「E(Engineer):システム担当者」と「U(User):ユーザ、つまり業務担当 者」がコタツに入って、仕様を検討しています。ここで重要なのは、ビジネスオーナーが不在である、ということです。 ただしい コタツモデルでは、「E(Engineer):システム担当者」「U(User):ユーザ、つまり業務担当者」「O(Owner):ビジネスオーナー」が 一つのコタツに入って合意形成をすることが良いとしています。それでは、ビジネスオーナーが不在の場合には、どのような問題が発生するのでしょうか。

■症状と結果
ビジネスオーナーは、次のような視点を持っています。

  • 俯瞰的な業務構造やあるべき姿についてのイメージ
  • 現場担当者や、システム担当者が知らない社内外の動き
  • 実施事項がどのようにビジネスに影響するか
オーナー不在パターンでは、これらの視点が欠如する、または不足することによって次のような結果を引き起こします。

(1)現状業務にあわせてシステム化をしてしまい、業務の効率化や標準化、最適化がされない。

業 務担当者は通常、現在の業務を適切に遂行することが主な仕事となっています。その中で発見した課題や問題を中心にシステムの要求や仕様を検討するため、個 別の問題の解決は達成できます。しかし、あくまで現状の業務を中心に考えてしまうために根本的な(真の)改善点について、意識せずに回避してしまったり、 見落とす可能性があります。
たとえば、製造業の業務改善として有名なトヨタ生産方式(かんばん)では、商品の欠品を無くす為 に在庫を無くすという逆転の発想から生まれました。しかし、もしこの「欠品を無くす方法」の検討が、生産管理担当者によって行われたら、本当に「在庫を無 くす」という発想が出来たでしょうか。「欠品を無くす為に在庫を持つ」という常識に捉われてしまい、おそらく異なった結論に達するでしょう。
(参考:職場の「かんばん」方式)

(2)あまり重要ではない、些末な機能に大きく労力とコストを割いてしまう。

システム要求や仕様の検討は、必ず優先順位と取捨選択を伴います。この際に、ビジネス上の効果の視点が不足すると、本質的ではない機能について長い時間を割いて検討や開発をする事になりかねません。
  • 特定の担当者しか利用しない機能に、非常にいろいろな使用頻度の低い付加機能を作ってしまう。
  • 先進的だが実験的で、長期的に利用するかわからない機能に注力し、普遍的かつ長期的に利用する機能についての検討が不足する。
  • 画像、アイコン、レイアウト、配色、その他ビジネスの本質とは関係の無い要求を多数盛り込んでしまう。
このような検討のムラとムダが、オーナー不在の場合に発生します。

(3)中途半端なシステムを作ってしまい、すぐに再修正が必要となってしまう。

中 途半端というのは2つの意味があります。一つはビジネス環境の変化に対する追従性です。業務担当者が知らない、または知らされていないビジネス環境の変化 というのは存在します。例えば法規制やビジネス戦略の方向性などは、内容によってはビジネスオーナーだけが知っている場合があります。また、業務の合併や 統廃合などについても同様です。
もう一つは、現場目線の検討によって、自社内の他のシステムと目的や機能が重複するシステム を、もう一つつくってしまうという問題です。特にユーザー部門が主導してシステムを構築する場合に、他の部門で検討中のシステムや、既に構築済みだが情報 共有されていないシステムと重複する場合があります。全社的なシステム部門の担当者が参加していれば防止する事もできますが、システム部門の参画も限定的 で、ユーザー部門と社外ベンダがシステムを構築する際にこういった問題が引き起こされることがあります
(参考:シャドーITって何?)

(4)開発プロジェクトメンバーのモチベーション低下

ビ ジネスオーナー不在のシステム開発プロジェクトでは、ビジネスとシステムの関係が明確でないままに進められてしまいます。システム開発メンバーも、自分の 開発するシステムが「何のために」作られ、結果として「どんなビジネス効果が出る」のかわからずに作業を行うこととなります。厳しいコストやスケジュール の制約の中で、自分達の参加するプロジェクトが、ビジネスオーナーから認識もされず、目的も不明確であればモチベーションも下がってしまうでしょう。

■典型的な原因

  • ビジネスオーナーが、システムを単なる道具として捉え「ビジネスの屋台骨」ととらえていない
  • ビジネスオーナーが、ITを苦手なもの、理解しにくいものとして避けている
  • 業務担当者、システム担当者がビジネスオーナーの参画を面倒ごととして避けている

■解決策
システム開発プロジェクトへの、ビジネスオーナーの巻き込みは組織文化なども関係するため容易ではありません。しかしこの「オーナ不在」パターンにあるような問題が発生する懸念があれば、次のような方法を実施することを検討すべきです。

(i)儀式的イベントを活用する

プ ロジェクトのキックオフや開発フェーズの終了のタイミングは、ビジネスオーナーの参画を促せる絶好のタイミングです。特にキックオフについては次のような 視点でビジネスオーナーに発表をしてもらうことによって、検討期間中にビジネスオーナーが参加できなくとも、オーナー不在の不利益をかなり軽減できます。
  • 検討するシステムのビジネス上の意義
  • 検討の中で大いに検討してもらいたいこと、期待すること
  • 望まない結果は何か
こういったイントロダクションの進め方については、GEが行う組織変革の手法「ワークアウト」が参考になります。ワークアウトでは組織横断的なチームが一 定期間のうちに問題解決のための議論を行います。その際には最初と最後だけ、ビジネスオーナーが参加を行い目的の明確化と、検討結果の是非の即決を行いま す。これはシステム開発の要求開発・要求定義フェーズにも適用できる考え方です。
(参考:GE式ワークアウト)

(ii)ビジネスオーナーへのインタビューをスケジュールに組み込む

キックオフやエンドポイントミーティングの実施の実績が無く、文化的にも受け入れられない場合は少なくともシステム開発の要求開発・要求定義フェーズで複 数回ビジネスオーナーへのインタビューを行えば良いでしょう。目的は、オーナー不在モデルで抜け落ちる「ビジネスオーナーの視点」を補うことです。なお、 ビジネスオーナーは忙しく、なかなか時間の確保をすることも難しいかもしれません。コンサルティングファームの技法の一つに「3分で行うエレベータープレ ゼンテーション」というものがあります。これはエレベータで移動する間の3分間で役員にプレゼンをすることなのですが、極端な話3分でも十分に確認や意見 を得ることは可能です。

■小話
ビジネスオーナーをプロジェクトに巻き込むのは最初はかなり躊躇します。ビジネスオーナーは、悪く言えば丸投げ、よく言えば権限を担当者に委譲しプロジェクトからは距離を置くのが一般的です。しかし、最終的に「ビジネス価値の高いシステム」を構築する上で、ビジネスオーナーは避けるわけにはいかない重要なプロジェクトメンバーの一人なのです。

プロジェクトは3ヶ月ほどの短期のものもあれば、数年間に渡る長期のものもあります。その期間たくさんのメンバーがシステムのために作業を行います。途中に苦しい時期もあるでしょう。そうやって作るシステムが「使えない」「使いにくい」「ポイントを外している」というのは、非常に悲しいことです。

オーナー不在プロジェクトに安住せずに、勇気をもってプロジェクトからアクションをするのが、大切ではないかと私は考えるのです。