知らない本に出会えるビブリオバトル

去る15日にJSDGの東京ミニ研修会が開催され、参加してきました。今回の企画は事例発表でもワークショップでもなく、JSDG初の「ビブリオバトル」。ビブリオバトルというのは各自自分の好きな本についてプレゼンテーションを行い、どの本が一番読みたくなったかという観点の投票によりチャンピオンを決定するというものです。私もビブリオバトルという名前は聞いたことがあった程度でイメージがつかず今回は発表は敬遠したのですが、参加者の皆さんの発表がとても面白く、次回は私も発表してみたいと思いました。

今回参加者13名に対して発表者9名で、当然IT業界で働く方ばかりなのですが、持参された本は意外と文学などITとは関係のないテーマの本ばかりでした。発表者は5分(タイマーで管理されてました!)発表したあと簡単な質疑応答を行い、途中休憩をはさみながら9名が順次発表していきました。そして最後に投票と集計を行い、優勝者には賞状が贈られました。

単に本の紹介をしたのでは面白くなく、いかに読みたいと思わせるかを考えるところが面白いと思いました。中には本の内容ではなく本の装丁についてプレゼンテーションした方もおり、読みたいではなく持ちたいと思わせる本を紹介するという発想もありなのだなと、なにもルールに縛られることなく自分の好きな観点でアピールして良いのだなという点が面白いと思いました。

また、小説などはネタバレするかしないかギリギリのところの判断が問われ、ネタバレしてしまえば読まなくてもいいやって思うし、あまり披瀝しないと魅力が伝わらなかったりするので、その辺のさじ加減は難しいですね。でもそれぞれの発表者が熱い思いを語るのを聴くにつけ、本の世界にぐいっと引き込まれていく体験も得難いものです。


ドキュメントの色使いと心配り

いつからドキュメントをフルカラーで印刷するようになったのでしょうか。このことについて最近ふと気になっています。というのも、カラーで印刷しなければ情報が伝わらないドキュメントってイケてないよなぁと感じるようになったからです。それは何も色覚異常の方に対する配慮とかそういった論点では必ずしもなく、ドキュメントをカラー化することによって何か自分自身が手を抜いているのではないかという類の疑問です。

もっとも私が社会に出たばかりの頃は、ドキュメントをカラーで印刷するということはほとんどなく、オフィスにもレーザーカラープリンタはまず置いてありませんでした。良くてインクジェットのカラープリンタが置いてある程度でしたが、それでもペコッペコッと1ページを何分もかけて印刷するような始末で、余程営業用途で得意先に渡す資料を厳選してでないと間に合わないような状態でした。

それが数年後あるクライアント先で、私の在任中にレーザーカラープリンタが導入され、20~30代の若い社員たちが多い職場だったせいもあるかも知れませんが、こぞってドキュメントで豊富に色を使ってはカラー印刷を行っていました。しかし、ご存じの方も多いと思いますが、カラー印刷はモノクロ印刷と比べると単価が高いのです。たちまちその会社から、カラー印刷は営業用途に限るように通達がなされました。当時は納得がいかない思いもありましたが、企業としては当然の判断ですよね。

話を戻して、カラーで印刷しなければ情報が伝わらないドキュメントの欠点は何かということについて考えてみると、印刷する人にカラー印刷を強いるという点。そうでなくても、モノクロ印刷をすると情報が劣化するという点。そして、それを補おうとするとドキュメントを修正しなければならないという点です。印刷したものを配布する場合にはじぶんでカラー印刷してから渡せばよいのであまり問題になりませんが、電子データを配布する場合は、それが印刷する可能性があるのであれば考慮しなければならないポイントだと思います。

何故私がこんなことに疑問を持ち始めたか。それは、モノクロ印刷したドキュメントを提示されて、「ここは本当は色分けしてあるのだが」といった説明を何度となく受けてきたからです。提示される立場としては、色が情報を持つならカラー印刷して提示すべきだし、カラープリンタが無い、あるいはカラー印刷を制限されているのなら色に意味を持たせないような資料の作り方をすべきだと思ったからです。私は先に述べた理由で後者の方が好感を抱きます。

今後ドキュメントを作成する時はそういった点を意識しようと思っていますが、もちろん全てのドキュメントがそうであるべきだというつもりはなく、用途や目的に応じて使い分けて良いのです。作成するドキュメントがどういう使われ方をするか、誰の手に渡るのか、いつまで使われるのかといった点も、ドキュメントの色使いを決める上での判断ポイントになるのではないでしょうか。


かんばんボード(タスクかんばん)のレーン設計

以前、かんばんボードを導入する肝はレーンの設計にあるということを述べたのですが、では具体的にどのようにレーンを設計すべきかというテーマについて考えてみたいと思います。

レーンとレイヤーのイメージ

レーンとレイヤーのイメージ

その前に、レーンをさらに横のレイヤーに区切って使うかどうか迷うと思いますが、個人で導入する場合はともかく、チームで導入する場合にはレイヤーに区切った方が良いです。また、区切るとしてもメンバー毎のレイヤーとするか案件毎のレイヤーとするか迷うのですが、案件毎にした場合、時間の経過による案件の増減に合わせてレイヤーを増減させなければならず、それはそれで運用に手間がかかります。メンバー毎のレイヤーにしておけば案件の増減に比べればメンバーの増減は少ないと思いますので、比較的手間はかかりません。それとメンバー毎としておけば、メンバーの生産性と抱えている作業量についてもある程度可視化できるので、チーム運営はしやすくなります。

そうはいってもメンバー毎のレイヤーにすると、案件ごとの状況が見えなくなってくることがあります。(だから案件毎のレイヤーにしたいという衝動に駆られるのですが。)私はタスクかんばんは目の前の仕事を片付けるためにチーム運営を円滑化するツールだと理解しているので、案件毎の進捗管理などはWBS(ガントチャート)のような全体を俯瞰できるツールを使って補う方が良いと考えています。

オーソドックスなレーン設計はToDo、Doing、Doneです。ToDoはやるべきことで未着手のタスク、Doingは現在仕掛中のタスク、Doneは仕上がったタスクです。タスクを付箋に書き出し、ステータスが変化するごとに貼るレーンを変えていきます。あるいはチーム内で完結する現場であればこれだけで事足りてしまうかもしれません。週次でマイルストーンを決めてToDoに落とし込み、週末にToDoが全て捌けてDoneに移動していればよいのです。週末(または週の頭)にはチームでミーティングを行い、翌週(または今週)やるべきタスクを棚卸してToDoに貼り付けていきます。

しかし、業種業態や活動の目的によってチーム外の関係者の多少が違うので一括りには出来ません。チーム内だけで完結しない場合、先ほどの3つのレーンだけでは管理できない局面があります。それは、チーム外の関係先に依頼するような場合、こちらの都合ですぐに返事があるわけではありません。つまり相手のタスクが終わるのを待っている状態、自分ではなく相手がボールを持っているということを表現する必要があります。そのタスクを例えばWaitingのように表します。

また、逆にチーム外の関係者から依頼を受けるパターンや、自分が完遂した作業を確認してもらったり承認してもらったりするパターンがあると思います。既に自分の手を離れていて、最後の確認や承認を待っているという状態です。そのタスクを例えばFinishingのように表します。ここまではメンバー毎のタスクです。


呟いた夢を現実にするワクワク会議

今日は有志で集まってワクワク会議を開催しました。正式には特に名前が決まっているわけではないのですが、参加者の一人がこのような名前で呼んでいたので私もそう呼んでいます。何かそのような会議の手法があるわけでもなく、ただ同じ目的を持ったメンバー同士で適当に進行しています。普段のビジネス現場での会議ばかりだと疲れてしまうのでたまにはこのような緩い会議もいいですね。

私は昨年からTOCfEのコミュニティに参加させていただいていますが、そこからスピンアウトしてTOCの思考プロセス/思考ツールをもっと手軽に便利に使えるようにするにはどうしたら良いか、といったことを議論しています。TOCの思考プロセス/思考ツールはとても便利で強力なツールではあるのですが、作法に則って使う必要があるために使いこなすには習熟が必要で、それが「使ってみよう」と思ってもらうのに障壁になっている側面があります。ですので、TOCについて習熟していなくても、もっと言えばTOCなんて知らなくても表現(コミュニケーションの手段)としての正しい論理を手に入れることができないか、というのが主な研究テーマとなっています。

もともとこの集まりは、メンバーの一人がFacebookでボソッと呟いたのが始まりで、それを拾い上げて形にしようという動きがありました。それがあまりにも面白そうな企画だったので私も思わず手を挙げてしまいました。集まりは今日が2回目で、私は前回は都合がつかずに参加できなかったのですが、前回行ったブレーンストーミングのふりかえりから始めて、更に議論を深め、最後は大まかではありますが今後の現実的な方向付けを行って散会しました。

私自身、こういった仕事とは直接関わりのない人が集まって何か一つの事を生み出そうとする活動が初めての経験なので、これからどうなっていくのかがとても楽しみです。やはり集まりの名前はワクワク会議でいいのかもしれません。


かんばんボード(タスクかんばん)導入の肝

タスク管理の手法というのはいくつかあると思うのですが、その中の一つに「かんばんボード」(あるいはタスクかんばん、タスクボードとも言うらしいですが)という見える化によるタスク管理手法があります。基本はアナログですが、タスクかんばんを実現するアプリも存在するようです。

かんばんボードの原理は簡単で、チームが持っているタスクを全て付箋に書き出してホワイトボードに貼り付けるのですが、ステータスによって貼り付ける位置を変えていくというものです。でも、これを本格的に取り組もうと思っても教科書的なものが見当たらない。ネットで調べると多少それらしきものは見つかるのですが、いざ取り組んでみようと思うとなかなか難しいのではないかと思います。

やってみると分かるのですが、実はかんばんボードを使いこなす肝はレーン(ステータス)の設計ではないかと思うのです。レーンというのはボードを縦に区切った言わば列のことで、通常はステータスを割り当てています。(但し、必ずしも列という形にこだわる必要はなく、自由にレイアウトを決めて良いと思います。)Redmineなどのタスク管理ツールでタスクを管理する時もステータスの設計が使い勝手に影響してきますよね。

例えば参考になるのが以下のサイト。
Web開発チームをタスクボードだけで見える化する 5つのコツ
http://engineer.blog.lancers.jp/2012/07/task_board_tips/

文献を見る限り一番オーソドックスなレイアウトはToDo、Doing、Doneという3つのレーンで区切る方法。ですが、杓子定規にこれを運用する必要はなく、現場の判断で変えて良いと思いますし、変えていくべきです。タスクのステータス設計にはどんな業務を対象とするかによっていくつものバリエーションがあり得ます。例えば開発現場でも設計工程と開発・テスト工程とでは管理すべきタスクが異なりますよね。

まずは導入しようと思う時に、この現場ではどのようにステータスを管理・運用しているかということを分析することになります。業務によっては併せてワークフローの設計もした方が良いケースもあります。具体的なステータス設計の例は追々ご紹介できたらと思います。


ITコーディネータへの挑戦

ちょっと前のことになりますが、私はこの9月から土日を利用してITコーディネータのケース研修(全6日間)を受けてきました。正式な認定は年明けになるのですが、とりあえず研修を修了して試験にも通過したことでITコーディネータに一歩近づいたと言えます。

そもそも私はITコーディネータにあまり興味を持っていませんでした。が、ある日ある方にITコーディネータ資格の取得を強く勧められ、取得を目指すことにしたのです。しかも、私の知らない間にITコーディネータの制度が変わっていて、ケース研修も以前は15日間もあったものが6日間と短縮され、その分資格取得までに必要な費用も抑えられており、以前よりは敷居が低くなった印象を受けました。とはいえ、全く見ず知らずの人と濃密な討議を強制されるというのは、さすがに不安も覚えます。

ケース研修ではどんなことをしたかというと、ITコーディネータには一種の教科書であるプロセスガイドラインというものがあるのですが、そこに定義されているプロセスを一通り疑似体験するというものです。架空の中小企業の設定資料があり、その資料を読み込んでその企業をコンサルティングする…というのではなく、架空のコンサルティングを通してプロセスガイドラインを学ぶというのが主な目的です。

そうは言っても、演習では本来の目的を忘れてつい議論になってしまうこともあり、最初のうちは演習の時間配分が難しく、成果物が最後まで仕上がらないことが多かったです。やはり方法論についての議論というのは楽しいもので、ついのめりこんでしまいますね。しかし、徐々に本来の目的を意識しながら演習を行うことが出来るようになり、枝葉末節の議論は割り切って先に進めるようになりました。ただ、ケース研修を終了したとはいえ、あくまでも疑似体験であるため、これでいきなりバリバリIT経営のコンサルティングができるというわけではないですが、何をすればよいかという全体像をつかんだという感じがしています。

試験の方は11月にケース研修を修了するので、本当は2月ごろに試験を受けようかと思っていたのですが、ケース研修受講生の半数は既に試験に合格していたという事実と、ケース研修の熱が冷めないうちの方が受かりやすいのではないかという考えから、急きょ11月中に試験を受けることにしました。ケース研修の修了から一週間後に試験を設定してしまったので、短期間という制約の中で出来る準備としてはあまりなく、わざわざ問題集を買っても最後までできないだろうと思い、ネットで公開されているサンプル問題や想定問題をひたすら解いてプロセスガイドラインのおさらいに努めました。

これで万事うまく行く、とは思っていませんが、この体験が間違いなく今後の糧になるだろうと思っています。


プリンタ複合機を買い換えました

先日プリンタが壊れました。正確に言うとプリンタと一体になっているスキャナが壊れたのですが、スキャナはすぐに必要だったため、壊れた翌日に買いに行きました。

実はこのプリンタ、個人事業主として独立した10年前に購入したものです。それまで持っていたプリンタはどんなんだったか忘れてしまいましたが、ほとんど使っていなかったのではないかと思います。しかもプリンタはパラレル接続の単品で、スキャナはこれまたSCSI接続の単品でした。そこに独立というイベントが発生し、今後は仕事で使うだろうということでプリンタ・FAX・スキャナ・コピー機能を有するいわゆる複合機を購入したのです。ある意味苦楽を共にした機材でもあり、やや心残りではあります。

独立すると印刷したりコピーを取ったり紙の資料を電子化したりといった局面が増え便利に使っていましたが、個人ユース向けとはいえ複合機ともなるとそれなりに筐体のサイズも大きく、引越しの度に難儀していました。また、数年前から、印刷の時に紙を複数枚同時に巻き込んでしまうことがあり(経年劣化によるローラーの摩耗が原因だそうですが)今度インクが無くなったら買い替えようと思っていたところでした。まさか先にスキャナに接続できなくなるとは…

それにしてもプリンタって安くなりましたね。現行機種と同等の機能を有するものでも充分に安いのですが、今だったらFAXは要らないし、ADFも無くて困るほど使ってはいないので、そういったものを排除するともっと安くなりました。それでも無線LAN経由で印刷が出来たり、両面印刷も標準で対応しているなど必要なところは押さえています。しかもコンパクト。デスク周りが非常にスッキリしました。


炎上プロジェクトの根本原因を探せ!

JSDG第14回全国大会の2日目は、会員限定のコンテンツとして分科会が行われ、私のものを含めて4コマの企画がエントリーされました。私は「炎上プロジェクトの根本原因を探せ!」というタイトルで、TOC思考プロセス(TOCfEのブランチ)を使ったトラブル原因分析の事例発表を行いました。実はこの事例は、毎月新宿で開催されているTOCfEオンデマンドで発表させていただいたものを分科会企画として練り上げたものです。

思考プロセスの研修はワークショップをやることが多いのですが、私は敢えて事例発表という形式を選びました。というのも、TOCfEの国際認定プログラムでは朝から晩までを計4日間の研修が行われ、しかもブランチについてはそのうち2日間を費やし、尚且つそれでも時間が足りないというものなのです。まして90分という限られた時間でワークショップをやったとしてもブランチを作成するプロセスを会得することは難しく、それが却ってブランチは使い物にならないという結論を招きかねません。ワークショップで扱う事例はシンプルなものばかりですからね。

それなら発想を変え、事例発表を通してブランチは使えるんだという認識を持ってもらい、かつ、どんな事象に対してブランチを使ってみたいかというイメージを思い描いてもらうことで、結果としてブランチを使えるようになりたいと思ってもらうことをこのセッションの目標に設定しました。

分科会後のセッションで北村JSDG会長からも、何も全て解ってスッキリというだけが研修会ではない、むしろ次につながるようにするのも一つの方法であるという趣旨の発言がありましたが、まさにそのような形で各自の学習につながっていけば良いと願っています。

さて、私が担当する分科会に参加してくださったのは11名でしたが、ほとんどの方が「ザ・ゴール」を読んでおられ、少なくとも制約理論についてはある程度の知識を持っておられました。前述した目標を達成するために、事例発表の後に軽くディスカッションをした後、アンケート形式で気付きを書き出してもらいました。最初の質問が「もし、ブランチを使いこなせるなら何に使いたいですか?」というもので、続いての質問が「自分でそれを実践するためにどんなサポートが必要ですか?」という風にしました。この気付きを全員が順番に発表し、このセッションをお開きにしたのですが、全体を通して予想よりも反響が大きかったと思っています。

例えば、私の説明の内容に対して大きくなるほどと頷いてくださったり、既に今実践しておられる方からは「これはすごくいいんだよ」と共感して下さったり、何よりもセッション終了後に「とても楽しかった」と言ってもらえたのがとても嬉しかったです。もっと他の事例も聞きたいという意見もありましたので、私自身ももっと積極的に事例を集めていきたいと思っています。


リーダーとして、明後日を見ているか

この週末10月5日と6日とでJSDG(日本システムアドミニストレータ連絡会)の全国大会が開催され、参加してきました。全国大会というのは毎年開催されているものなのですが、実行委員は持ち回りというか「手挙げ制」で、開催場所も毎年変わっています。今年は横浜。もっと言うとテレビ神奈川のイベントスペースを借り切って行われました。

この記事のタイトルにもつけた「明後日を見ているか」というのが今回の大会のテーマです。この変化の速い時代に明日を見ていては遅すぎて、さらにその先を見ていないとダメだよねというコンセプトです。

1日目、メインセッションの1つ目はJSDG会員の山中吉明さんによる講演で、他社に真似されにくいビジネスモデルをいかに築いていくかというテーマで実例を交えながらお話しくださいました。JUAS(日本情報システム・ユーザー協会)のアドバンスト研究会において、競争優位を確立するためのフレームワークを見つけるという研究をされており、どのようにイノベーションを起こせばよいかというヒントを頂きました。

メインセッションの2つ目はJSDG会員の関尚弘さんと、今回のゲストでケンブリッジ・テクノロジー・パートナーズからお招きした白川克さんによる講演で、「反常識の業務改革(プロセス・イノベーション)」というテーマでお話しくださいました。このお二人は「プロジェクトファシリテーション」という書籍の著者でもあり、特に今回は白川さんのお話を直接聴くことができるということでとても楽しみにしていました。

関さんは「プロジェクトファシリテーション」にも書かれている内容からお話しくださり、一方、白川さんは「業務改革の教科書」という本を出されているのですが、そこにも書かれている内容から一部をお話しくださいました。ポイントは、一部の方にはODSCと表現した方が早いのかもしれませんが、プロジェクトの「背景・目的・ポリシーを明確にする」ということ。これらの共有が重要であるということを再認識しました。

関さんのお話は実は何度も聴いているのですが、何度聞いても新鮮で毎回心を動かされる何かがあります。コンサルタントとそのクライアントとが、仲間意識を持って同じゴールに向かってプロジェクトをドライブしていく様を見せつけられると、私もそのような関係をお客様と築いて仕事をしていきたいと思わずにはいられません。

白川さんのお話も、ちょうど私自身が興味を持っている内容にマッチしていたため、何度も何度も大きく頷いてしまいました。プロジェクトの立ち上げのタイミングでいかに良いコンセプトを作るかということ。良いコンセプトを作れば関係者の考えに刺さり、結果としてそれがパラダイムシフトを生み出すということでした。

また、良いコンセプトを作るためには、すぐに答えが見つかるというものではなく、正解の無いドロドロとした話を根気よく語り合うのが秘訣だとか。「コンセプト」という言葉についても、これまでなんとなくしか意味をとらえていませんでしたが、「本質」と訳すと分かりやすいですね。白川さんの講演もとても刺激になりました。「業務改革の教科書」を早速購入しましたので、読んでみたいと思います。

ログレベルとメッセージコード体系の調和

久しぶりにアーキテクトっぽい話題としてログの話をします。その中でもログレベルとメッセージコードの設計にまつわる失敗談をお伝えしたいと思います。ログまたはロギングは情報システムにとって主要な機能でないにも拘らず、おざなりな設計をすれば後で痛い目に遭うという曲者です。

ログレベルというのはエラーレベルとも言いますが、ログに記録する事象の重要度(あるいは緊急度)を示しており、大別すると3種類で故障・警告・情報です。ただ、ログレベルの種類はそのレベルの定義も含めて運用設計に関わってくるので、一般化しようと思ってできるものではありません。ですので、ここではログレベルそのものの話題ではなく、メッセージコードの体系との兼ね合いについてお話しすることにしましょう。

メッセージ設計の観点

まず考えることとして、メッセージコードにログレベルを持たせるかどうかという点があります。それはつまりメッセージコードを見ただけで、ログのレベルを判断できるようにするかどうかということです。故障ならErrorの頭文字を取ってE001、警告ならWarningの頭文字を取ってW001などとするのはこの考え方です。

次に考えることとして、発生したメッセージのログレベルに応じた制御があります。例えばバッチプログラムではジョブストリームの制御、Webアプリなどのオンラインプログラムでは画面遷移の制御を切り替えるということ。それらに加えてログ監視によるエラー検知と警報(エラー通知)を行うことも最近ではごく一般的なことだと思います。

ログ出力の方式の失敗

さて、そのログ出力処理ですが、あるシステムでは、ログ出力処理にログレベルとメッセージコードの両方を渡していました。これは愚直な方法ですがシステム全体において両者の整合性を保つ必要があるため、正直しんどい方式です。

そこで、私がアーキテクチャを担当した別のシステムでは、メッセージコードだけを渡す方式を採用しました。ログ出力処理の中で渡されたメッセージコードからログレベルを判別して以降の制御を行うというものです。これはほとんどの場合においてうまく行きましたが、ログレベルの変更に弱いということが分かりました。ある事象についてのログレベルを変更したいという場合、ログ出力処理を呼び出している個所のメッセージコードも併せて変更する必要があるということです。

また、ログレベルと画面遷移が必ずしも対応してないケース、つまり、同じレベルのエラーでもエラー画面に遷移すれば良い時もあれば、前の画面に戻したい時もあり、そういったケースでは単純な共通コードでは実現できないため少々苦労しました。それに、ログレベルが変わっただけで画面遷移(あるいはジョブ制御)が変わってしまうと不都合もあるでしょうし、バグになりやすいのです。

ログレベルとメッセージの現実的なアイデア

そこで、現実的にはログレベルと制御を分離した上で、ログレベルの変更に強いログ出力方式を考案する必要があります。前提として、メッセージの文言は定義ファイルに設定されており、メッセージコードから一意に引当てることができるものとします。

いくつか考えられると思いますが、ログに記録するメッセージコードの体系は、既に運用設計の中で定められており自由に決められない場合があります。そういう場合でも対応できるようにログに記録するメッセージコードとは別に内部のメッセージコードを定義すると良いのではないかと考えています。

この方式では内部のメッセージコードにはログレベルを表す文字を含めず連番(とその他の記号)のみとし、ログレベルはメッセージ定義ファイルの中に文言と一緒に定義しておきます。ログを出力する時は内部メッセージコードをログ出力処理に渡します。するとメッセージ定義ファイルからログレベルと文言を引当ててログに記録します。

こうしておくと、ログレベルを変更するにはメッセージ定義のみを変更すればよく、ログ出力処理を呼び出しているコードの修正を行う必要がありません。ログレベルの変更で悩まされたという方は是非一度試してみてはいかがでしょうか。