Business Engineeringを勉強してみる

私は今までフレームワークやツールの開発、技術支援等、設計、実装周辺しか担当したことがなく、Business Engineeringに世界に疎いです。しかし、世間的には(特にSIerでは)「ビジネスが最も大事」「設計、実装は下請けに出す」というのがトレンドらしく、私なりにBusiness Engineeringを勉強したので、簡単にまとめてみます。
(といっても本一冊読んだだけですが...)

なお、教材としては以下の書籍を使用しました。結構古いですが、同じ著者の「The Unified Software Development Process」でも頻繁に参照されているし、簡潔で分かりやすいのでお勧めです。



Business Engineeringとは何か?

Business Engineeringとは企業活動をEngineeringの観点で分析、設計、実装するということです。この時の活動の最小単位はBusiness Processとなります。Business Processは我々が普段行っている仕事(関連したタスクの集合)をまとめてEngineeringの対象として認識可能としたものです。目には見えない抽象ですが活動の実体は存在するので、コスト、スピード、アウトプット、品質などを測定可能です。ソフトウェア開発も当然、Business Processのインスタンスですし、ソフトウェア開発の成果物であるITシステムはBusiness Processの効率化、自動化のために開発されます。ITの活用が協調されがちですが、もちろん、業種や仕事の内容によってはITが殆ど関わらないこともありえますし、ITシステムはあくまでBusiness Processの一部分を担うにすぎません。

Business Engineeringを実現するためのフレームワーク


Business EngineeringはBusiness ReengineeringとBusiness Improvementの2つの活動からなります。Business Reengineeringはビジネスのラディカルな変革を狙うもので、その名の通り、ビジネスをフロム・スクラッチでEngineeringし直します。最近流行のSystem Reengineeringもこの活動の一環で、ITシステムをビジネスの変革に追随されるための活動です。Business Improvementはもっと穏やかでBusiness Processをモニタリングし、継続的に改善します。どちらの活動もITシステムによる支援が必要不可欠です。

Business Modelingとは何か?


Business Modelingとは、極めて複雑な企業活動を目的に合わせて抽象化し、目に見える形にしたものです。例えば前述のBusiness Processも見える化の対象になります。目の前の仕事をこなすだけならばModelingは必要ないですが、ビジネス上の重大な変更や選択を迫られたときに、自分達のことを把握していないと何もできなくなる可能性があるので、企業活動を見える化し、普段から管理することが重要です。

Object OrientationによるBusiness Engineering


参考にした書籍ではBusiness Engineeringの手法として、Object Orientationを活用しています。オブジェクト指向によるシステムの分析、設計の手法をそのままビジネスの世界に持ってきており、ソフトウェア開発者にはわかりやすいです。UMLの記法は以下のように対応します。

  • ユースケース図 -> Business ProcessのModeling
  • オブジェクト -> Business Processの主体である人間、またはシステム。ビジネスの見える化が目的であり、そのままOOPで設計、実装するわけではないため、複雑な関連や継承等のModeling手法に深入りしすぎないことがポイントです。
  • シーケンス図 -> 人、システム間のインタラクションの図式化。

例としてレストランのBusiness Processのうちの一つ、Serving Dinnerでは以下のようなオブジェクト図が示されています。恐らくこの時のActor, Boundary, Controllerの各オブジェクトは全て人間ですね。何がやりたいのか直感的にわかると思います。

上記のようにBusiness Processをソフトウェアシステムと同じ手法でモデル化することで、ITシステムとビジネスの連携、必要なエンティティの抽出等をよりスムーズに実施できますし、各タスク(あるいはプロセス全体)のソフトウェア化や、各アクティビティのVA, NVAを分析することで、外注化の検討にも使えるでしょう。例えば、最近の飲食店では注文処理がIT化されていることもありますが、Business Process上のOrderと、ITシステム上のOrderは同一のエンティティを指すと考えるのが自然だと思われます。

まとめ

本当に簡単な概要だけですが、Business Engineeringの世界を見てみました。ITシステムの役割、立ち位置を考えれば、ビジネスについて知ることは極めて重要なはずなので、少しずつ理解を深めていこうかと思います。