May 2013 Archives

開発で失敗することはあるのか

またちょっと脱線します。よく「開発に失敗しないためには」とか「成功のための守るべきこと」と言ったような語られ方をする。ということは当たり前だが失敗することがあるからそう言うのだろう。ところで、業務システム開発で失敗するというのは何を意味しているのだろうか。すなわち、受託開発で失敗するのはどういう状態をいうのか。プロダクトを開発する場合はほとんどが売れないことが失敗だろう。

ところが、受託開発では買ってくれるのは前提なのだから、言われたものが作れなかったことなのだろうか。そうしたケースはデスマーチになりながらも何とか納入はするのではないだろうか。それでも出来上がればプロジェクトとしては失敗ではないかかもしれない。(中にはスルガ銀行とか特許庁の例もあるし、ぼくも経験があるが)となると、作ったはいいが使われなかった、あるいは使えることは使えるのだが所定の効果がでなかったといったことが失敗だったとなるのではないでしょうか。

つまり、成功するというゴールを要件定義で決められた仕様通りに作ることに持っていくことが間違いであることを意味している。使ってもらえるかどうか分からない段階で失敗したとかうまくいったと言っても始まらないのだ。そう考えると発想の原点がずれていることに気づくと思う。最初から、こんなものを使って業務を遂行したい、仕事がうまく行くためにはこんな道具があるといった視点でシステムを考え、デザインすべきだと思いませんか。

「オペレーション発想のシステム設計と開発」が重要なアプローチになるでしょう。こうすれば、最初に使い手側と合意したオペレーションプラットフォーム、つまり業務適用に使うことがあらかじめ決まっているアプリケーションを作るわけだから失敗のしようがない。いや、それが作れなかったら失敗でしょうと言われかねないが、作れないならやめればいい。まだ、そういった技術やツールがないのだから時期尚早とあきらめればいいだけだ。

以前、セブンイレブンの人の話を聞いてこのことを思ったのだが、あの有名なPOSデータを解析して、売れ筋を把握し各店舗の品揃えを素早く変えていくという仕組みは、当初はネットワークのパフォーマンスが低くて、思ったものができないということであきらめていたそうだ。そして、そのうち飛躍的なネットワークパフォーマンスの向上がなると即座に実行に移したという。技術的あるいはコスト的な制約があるときはじっと我慢して、所定の能力が確保できたとなると実行したわけで、これでは失敗するわけがない。

ということでオペレーション発想ということを強調したが、スクラッチでコードを書いているようで、こうしたアプローチはできない。従って、市販の既に動いているソフトウエアをベースにこんな道具で、こうしてオペレーションするんだというイメージがわきやすいものを選択しているのである。

ただ、世の中にあるソフトウエアやパッケージがオペレーション発想でできているのかというといささかお寒い話ではある。その点、Webサービスは逆にそこが生命線だから、いいものがいっぱいある。なぜ、ビジネスサービス特に供給サイドの人たちが使うものにないのだろうか。きっと、業務システムとはデータを登録するためのものだという旧態依然の考えから抜け出ていないからではないでしょうか。
 

■    Webデータベースとはどんなものか

だいぶ寄り道をしましたが、コンセプトを変えていかなくてはいけないことがおわかりになったでしょうか。くどいようですが、おさらいをしておきますと、昔と違って今はビジネス環境がものすごい勢いで変化する時代になっていて、そこにITを使った業務システムが追いついていていない。その原因は、単純にシステム構築スピードが遅いということもあるし、業務側のIT化要求エリアが変化していることがあげられます。

要求エリアのことで言えば、元来のIT化要求領域である経理計算とか、決算システムのような定型化処理である内部プロセスから、お客さんの要求に的確・迅速に対応する顧客接点プロセスの重要性が増したきたわけです。ここは、非定型的で人間が介在し調整による意思決定が重要な機能となっています。従って、こうしたシステム上の性格を表現するには従来のような開発のやり方では対応できないということを指摘しているのです。

さて、これからはより具体的なアプローチとして、まずはサイボウズ社が提供する「kintone」というソフトウエアを例にしてWebデータベースとはどんなものかをみていきましょう。「kintone」は3月にバージョンアップしてかなり機能的に向上してきました。ひとことで言うと、よりSNS的というか、チームによる仕事のやり方を支援する方向になったということです。ですから、データベースという言い方も薄れてきています。

詳しくはここをご覧になってもらえばよいかと思いますし、無料お試し版もありますので実際に使ってみることをお勧めします。そこには、ビジネススピードに応えるファストシステムという表現があって、要するにファストフードのように簡単に提供できるというこで、その持つ主要機能が、「データベース」「プロセス」「コミュニケーション」です。まさに、これからのITシステムが具備すべき三種の神器といえます。

皆さんよく考えてみてください。この三つの要素はこれまでは独立していたように思いませんか。データベースはデータを登録・検索・レポート出力というところが主で、プロセスとかコミュニケーションという機能はありませんでした。プロセスはワークフローという個人ベースのものはありましたが組織能力の発揮という側面では取り残されていました。また。コミュニケーションというとほとんどが電子メールで一部グループウエアがあったくらいでしょう。そして、それぞれが連動していたわけではありませんでした。

ですから、kintoneのコンセプトは時宜にかなったものと言えるでしょう。ただし、kintoneでいうところのプロセスはどちらかというとワークフローに近いものです。つまり、データベース化のためのデータを登録し、それを承認するというワークフローになっています。チームの恊働作業として案件を処理していくというオペレーションをカバーするには弱いのです。工夫が要るということです。

最近は、クラウドとかスマホやタブレット対応とかビッグデータだとかがもてはやされていますが、一般的な企業の業務システムでは、「コミュニケーション」を主体として「プロセス」を回し「データベース」を確定するという機能がコアであることを忘れないでもらいたいのです。
 




■    3Dプリンターのように作り、百均のように組み合わせる

またまた、ちょっと寄り道です。従来のように要件定義し てプログラム仕様書を書いてコーディングするというやり方とまったく違った方向に持っていこうということなので、その考え方なりを丁寧に説明した方がいい と思うからである。ただ、やり方を詳しく説明してもなかなかわかりずらいこともあるので、その前に抽象的ではありますがたとえ話をします。

ま ずは、「3Dプリンターのように作る」です。皆さんご存知のように3Dプリンターというのは、CADなどの3DデータをもとにABS樹脂などを加工して 3Dの実体を造形してしまうことで(高額なものは石膏とかもあります)、こうした立体物を作りだすのを3Dプリンティングという。これまではずいぶんと高 かったのがここへきて非常に安いものがでてききたので大注目です。

ただ、これでものができてしまうと勘違いしている人がいますが、あくま でプロトタイプというか試作品(おもちゃならそれでいいかもしれないが)ができるだけで、実際に工業製品とするには無理があります。しかし、平面でしかイ メージできなかったのが立体感をもって見れるのでだいぶ違います。こんなものがつくりたいというイメージがすぐに形になって現れるので、そこから修正した り、追加しながらできるので、制作効率や品質が向上する。

いまは、製造業や建設業、医療などに利用されているようだが、この考え方をシス テム構築に活かせないかということである。つまり、業務システムのイメージをどこかに書いてみて、それを"印刷"ってするとプロトシステムができあがると いうわけである。モックアップに近いと思うのですが、そこから実際に動くものになればいい。今の3Dプリンターはあくまで模型なので実生産品にはできない が、システムだったらできる。

ただ、言うまでもないかもしれないが、3DプリンターがCADなどでちゃんと設計しないといけないのと一緒 で、業務プロセスの設計ができて初めて可能である。それは構造を設計することが肝で、中味はあとから調整することになる。これができると、ユーザと一緒 に"じゃあちょっと印刷してみます"といった具合にやり取りすることで本当に使えるものが短期間でできあがる。

さて、もう一つの「百均の ように組み合わせる」である。最近の100円ショップはもうばかにできないほど進化していて、驚くような商品がたくさん提供されている。そんな中、百均商 品を組み合わせて使用する主婦が現れている。様々なものをつなぎ合わせて立派なインテリアを作ってしまうといったことである。店で商品をみながら発想する のでしょうね。実に楽しそうにやっています。

百均ショップをクラウド上のAppStoreと見立てたらどうでしょうか。単機能のアプリ ケーションやツールといったソフトウエアをつなげたり、マッシュアップしたり、並列配置したりといったアレンジをすることで広い範囲のアプリケーションを 生み出すのである。それぞれのAPIをもうちょっと使い勝手のよい形にする必要があるかもしれないが面白いと思いませんか。

結局、モノづ くりはデザイン/制作・製造・実装/オペレーションといった工程がシームレス化してきているわけで、これは物理的実体をもったものでも、ITシステムのよ うなデジタル情報でも、サービスでも基本的には同じだろうと思う。いちいち百均にあるものを最初から作ることはしないと思うのですがいかがでしょうか。
 
 
■    Webデータベースを使う上での工夫

これまで、BPMSが定型処理の方向に向いているのに対して、現実にIT化の要請は非定型業務にあるという矛盾を感じたために、開発基盤、オペレーション基盤に本来それように作られたはずのBPMSではなくWebデータベースを持ち込んだことを述べた。実は、この非定型業務のプラットフォームは目新しいことでもなく、以前BPMの実行基盤を探っていたとき、いくつかの参考事例に出会うことになった。

ぼくは、ずっとエンタープライズの世界でのITを追いかけていたが、息子と起業して知ったWebの世界に非常に興味を抱くようになった。ここではビジネスサービスの代わりにWebサービスを作っているのだが、その開発のやり方が参考になったのである。とは言っても、システム開発の類似性を言っているのではなく、仕事の進め方、すなわち業務オペレーションの方である。彼らはチームでそれぞれの得意を活かし、たえずコミニュケーションをはかりながら、コミットメントを繰り返してサービスを作りだすというオープンな世界を確立している。

そのとき、これからのビジネスの世界もこうしたスタイルで仕事をしていく時代になると思ったのである。ですから、ビジネスシステムも同じような仕組みにしたいなあと考えていた。これは、BPMSや従来のソフトウエアやパッケージではできないものであった。


ちょっと逸れるが、既成のSIerやITベンダーに若いWebエンジニアーを混ぜたらいかがでしょうか。もうそういう技術は使っていると言われそうだが、技術の問題ではなく精神のことだから、Webの世界のもつ文化・風土の持ち込みも少しはやったらよいと思う。自分たちの働き方が、旧態依然としたものであったら、新しいスタイルを創ろうとしているビジネス前線に対応した提案ができるわけがない。

それと、CMS(Contennts Management System)に触れることで、具体的なプラットフォームイメージわかしたことがあった。ご存知のように、CMSというのは、Webサイトの構築・管理に使われるツールで、テキストや画像などのコンテンツを作成したり、それを体系的に管理し、Web上で配信するためのものである。そこでは、Webサイトという製品を作るために、誰かが素案を提示し、それに対して関係する人たちが、コミュニケーションをしながら編集していく、そのプロセスのステータスも管理して、最後は承認という形で公開される。

できたものは、設定したディレクトリー構造のリポジトリーに格納され、それらは日常的にバージョンアップされて、その都度バージョン管理もされ、さらにログ監視など、オペレーション昨日も装備されている。wikiやSNSなどもCMSの一種だからわかると思いますが、参加型で集合知、またリンクによる情報連携といったWebの良さが発揮できるわけです。

ただ、CMSはあくまでテキストとか画像が中心ですので業務システムにはちょっとなじみません。従って、CMSの持つ思想を生かしたようなかたちでWebデータベースを活用するというのが、現時点での選択肢であると考えているわけです。