2009年10月18日日曜日

自作ワークフローエンジン(笑)

ワークフローエンジン - 構築すべきか、せざるべきか?」という記事を読んで、いちいち同意。

自前のワークフローエンジンを自作したがる人が多くて困るよねという話。

既製品に比べて、自前ワークフローエンジンは明らかに低品質・低機能の上に高コストなのに、なぜか横行している。「車輪の再発明」というアホでもわかる愚行が、ことワークフローに限っては、まかり通っている不思議についての考察。

記事を要約すると、3対の自作したがり派の主張と、対する筆者の反論。
  1. We only have very basic requirements(ワークフローエンジンを使う程難しい仕様じゃない)→ たいていの場合その後の仕様変更や機能拡張に対応できず、メンテ地獄に陥る。

  2. We need to integrate the engine into your application(他人の作ったシステムに依存して振り回されるのがイヤ)→ 軽量でカスタマイズ容易な組み込み可能製品もあり、理由にならない。

  3. We have evaluated, it does not fit(既存の製品を評価してみたが、合わなかった)→ 本当にその製品の理解に至る前に諦めて、思考停止して自作に逃げているだけ。

まあ、もっともだけど、ともすると自作したがり派が組織の中で主導権・決定権を持ってしまう問題が、実はもっと根本のところにある気がしないでもない。

いずれもう少しちゃんと考えてみたいけど、自作したがり派の人たちは概ね以下のような特徴がある
  • わりとスキルが高い:自作したがり派の人達は大抵はプログラムを書くのが好き。好きこそももの上手なれと言うくらいだから、好きな分だけ、なまじスキルが高い

  • 勉強が苦手:出回っている情報を効率よく集めて体系立てたり、他者の知的成果物を再利用する事が下手クソ。脳内の手持ち情報と、習慣による身体感覚だけで考え、またそこに快感を感じているらしい。知識の相場が分からないから、自分の無知に鈍感で「自分が何を知らないか」について無頓着。

  • 自己愛過多:「自分が作った」、「自分で考えた」に無駄にこだわる。過去の体験や、現に直面している問題が、かけがえのない自分だけに特有のものと考えたがり、「多くの先達が体験済みのありふれた経験」、「とっくに解法が知られている平凡な問題」だとは思いたがらない。で、オリジナリティに取り付かれた結果、「車輪の再発明」に陥る。

困った事に、こういった「自分」「自作」「自前」にこだわった自作したがり派が、組織環境によっては、「クリエイティブな人」という事で、意外と評価されて決定権をもってしまう事がある。こうなると、もう開発対象のワークフローエンジンに「車輪の再発明」が適用されてしまう事はまず避けられない。ああめんどくさ。

それはそうとして、記事の最後にあるように、DB/APサーバやORマッパー/DIコンテナを今どき自作なんてする人はいないのに、なぜワークフローエンジンだけは自作されるのかという疑問も残る。

多分、こんな感じか。
  • そもそもワークフローという知識のジャンルが知られていないから
    BPMN やワークフローパターンといった、既にかなり研究された知識体系があるのに、余り知られていない。で、ワークフローの知識に通じている人が人材市場にいても、プロジェクトオーナは身近にいる技術者をとりあえずアサインしてしまう。こうなるとワークフローに関する全問題が、製品仕様に固有の問題と捉えられ、自作したがり派の「自前で新たに作るしかない」という主張が真に受けられてしまう。

  • ワークフローは高レベルの知識領域だから
    AP/DBサーバやORマッパー/DIコンテナのような低レベルの製品は、やりたい事はほとんど自明で、後は使いやすさや性能の問題となるが、ワークフローエンジンのようなものは、上述した事情もあり、そもそも何をしてくれる製品なのかが自明とは言えない面がある。

  • ワークフローという言葉の意味が曖昧だから
    日本で「ワークフロー」というと、まず業務文書ありきで、文書のライフサイクル(状態遷移)に着目して、それを流れと捉えるもので、「ワーク」の「フロー」と言うより、「文書」の「フロー」と言ったニュアンスがある。本来のワークフローは、正に「ワーク」の「フロー」であって仕事の流れが主で、その中で複数のドキュメントが登場したり、或いはしなかったりする。こういった日本的な事情からか、単に抽象度のレイヤが違うだけの話が、「欧米で作られたワークフロー製品は日本のビジネス習慣に合わない」なんて主張されたりする。

まあ、とは言っても、僕も以前たずさわったプロジェクトではワークフローのフレームワークを自作した事があったりもするんだけど。

でもまあ、今後ワークフロー関連プロジェクトに携わって、尚且つ設計面で権限があれば、もう自前のワークフローエンジンなんて選択肢はありえない。これだけいろいろなワークフローエンジンが出揃った状況で、ワークフローエンジンの自作があるとしたら、きっと無知以外に要因は無いんだろうと思う。

0 件のコメント:

コメントを投稿