業務のITについて考えてみる

個人を核とした情報蓄積デバイスとしてWikiエンジン(プロジェクト名 リインフォース)を開発してます.今年度末にBSDライセンスで公開,来年度にはIPA応募を目的に進めています.祝福するのかなと思われた方,その通りです.

このエンジンを業務のITに活用できないかという視点から,株式会社マジカジャパンの羽生章洋が書いてるブログ:インハウスとかセルフサービスとか - livedoor Blog(ブログ) インハウスとかセルフサービスとか,の記事を考えてみました.

この記事では,業務の最適化について,業務フロー全体と個別業務に言及されています.会社が構築する業務ITシステムは前者視点で作ります.しかし,それは実際の現場では"もうちょっとこうなら"と使い勝手に不満が残る問題があります.これを解決するには,現場の人が"ちょちょっと"いじれるものがよいだろうと.イメージとして個別業務ごとにExcelなどでデータ処理をすれば,それが業務全体レベルで最適化されたシステムになるものはないか,

業務のIT化のための優れたツールを開発されているところですから,そのノウハウからまだぼんやりとしか見えない将来を考えて書かれた記事だと思います.いわゆるフリーランスとしては,ぼんやりとしてもいられないので,手元にある技術と情報を組み合わせて,骨と肉をつけてみようと思います.

考え方の基本は,wikipedia:Getting_Things_Done (GTD) および wikipedia:PDCAサイクル (PDCA) とします.

まず業務フローについて.仕事の流れ(インプットとアウトプット)を明確にして見える化するツールとして(株)スターロジック http://www.starlogic.jp/magica/index.html を出されています.これはGTDでいう具体的に結果を頭に思い浮かべられるまでに落とし込んだ行動の目標達成,つまり同僚とのチームプレーを含んだ個別業務レベルでの解だと思います.これを"最適"にするためにはPDCAサイクルにのせる,つまり,コストなり作業時間なり仕事の気持ちよさなりの評価ポイントを,数値なり星の数なり叙情的なテキスト表現なりの評価結果におとして,"もっとよくするには"とアクションにつなげる,のでしょう.

この仕組みをプロジェクト運営に生かしている実例がプロジェクト管理とバグ追跡のツールwikipedia:Tracでしょう.TracにあるTicketは,まさに,マジカ! に相当します.全てのアイテムをTicketに乗せてPDCAサイクルを回すことで,個別業務と全体業務(プロジェクト運営)がほどよく連携して進むわけです.ここで肝心なのは,Ticketに乗せるアイテムを誰がいつどうやって決めるか,いわゆる方向性をもった問題提起と判断なのでしょう.

あれ,Tracのイメージ,これでいいじゃないかと,そう思います.これをプラットホームにして,個別ユーザごとにUI設計も提供すれば事業になるのでは? と.

では具体的な技術は? 論点は3つ.1.データベースはシステムの大局変数,2. スキーマはデータ整合の生命線,3. ユーザインタフェースは作業効率(使って気持ちいい)の最前線,です.

データベースは,Googe Base APIまたはLuceneなど,検索可能なkey-valueペアのストレージを使えばいいでしょう.SQLなテーブル設計を採用すると,PDCAサイクルが回らなくなる(テーブルを変えたい,外部キー参照で新しくテーブル追加だ,雑多なテーブルがごちゃごちゃできる),様な気がします.

ユーザインタフェースは,Google Data APIを元にしたメールやブログのように,JavaScriptで組めばよいのではないでしょうか.基本のスクリプトがあればデザインはユーザでもいじれますし,またGoogle Web Toolkit (GWT)で構築していてソースがあれば,かなりの処理をコードでかけます.

個別業務をExcelのマクロで組む能力があるならば,徐々にGWTに移行する能力もあるのではと思いますし,現実問題として今すぐ欲しい場合には,技術者を細かい単価でピンポイント適用するサービスなどで対応することがいいのではないかと思います.

話の筋がちょっと変わりますが,過去の事例に学ぼうと思います.例えば,10年前を思い出してみます.HTMLとエディタがあれば,ちょっと勉強すればだれでも作れるウェブページでしたが,コンピュータの素人では,なかなか手が出ませんでした.素人が作ったり,有象無象のウェブページ構築サービスが出たりしました.結果ウェブサイトには,ユーザアクセスや見た目がよくない (デザインやUI設計を知らない素人設計),1度構築したっきり更新されない (PDCAサイクルが回らない),リンク切れが多発(サイト全体の整合性がない)などなどがありました.これを1つ1つ見ていけば,先ほどの解決方法がどう使えるかが,結構具体的に見えてきます.

結局のところ,PDCAサイクルを回しつつ,そこにGTDを適用する.それらをデータベース化してGoogleのガジェットみたいなサーバサイドなJavaScriptなりAjaxなりで簡単アクセス,簡単モディファイにくみ上げる,ってところなのでしょう.

技術はいくらでもアイディアが沸くのだけれども,それを現場で使う人の姿が...プログラマみたいな世の中から言えば特殊かつ極少数の環境しか...思いつかない.仕事にゃまだとおいな...