ソフトウェア開発関連用語の ALM という言葉について
最初に書いていきたいことは、このブログもですが、このエントリーも個人の見解にすぎません。さらに、私自身は、ALM(Application Lifecycle Management)という言葉と共に歩んできたところもないわけではありませんが、この言葉が好きではありません。
好きではない理由は、非常にシンプルで、
- 他の意味をあらわす用語とバッティングしている
- ツール ベンダー メッセージととらえられがちであり、またツールベンダーがよく用いている
- 用語自体にあいまい性が多く、一つのことを指していない
です。
今回のエントリーの結論を先に書くと、「ALM という言葉はいろいろな意味合いで用いられる傾向がますます高まっていますので、そのコンテキストで意図していることは、ご自身で確認しましょう。一緒くたに 『ALMがホットなんだ』、『ALMって言い方はもう古いんだ』と思わない方が、ご自身にとって得策です」ということです。
☆ ☆ ☆ ☆ ☆
一つ目のは、ALM は、経営/ビジネスの用語である、 Asset Liability Management が先に思い浮かぶように、他の意味で広く知られています。Google 先生に聞いてみてもこちらが先にヒットします。ここで取り上げている ALM で最初にヒットするのは、なんと!私が執筆した記事ですw (「IT Pro のための ALM 入門」)
※Bing 先生にも聞いたみましたが、まったくヒットしませんでした。意思決定エンジンでは、ここで扱いたい意味では現時点にてヒットしないということですね。
☆ ☆ ☆ ☆ ☆
2つ目については、Application Lifecycle Management 自体は調査会社初だったと記憶をしています(違っていたらすみません)が、開発支援ツールを提供するツールベンダーがこの言葉を用いて言い表すのがわかりやすかったこともあり、数年かけて挙って使い始めました。私も所属をした Borland 社がそのはじめでした。その後には、ほぼすべてのツールベンダーが ALM という言葉を用いています。
マイクロソフトはというと、この手の製品を扱うベンダーとしては、かなりこの言葉を使っていなかった部類に入るといっていいでしょう。独自の製品ブランド Visual Studio Team System(VSTS)があったこともあり、ALM という表現はあまり使っていませんでした。
私は、以前より主張していますが、ALM とは単にツールの話でも、ツールを統合する話でもないはずです。主旨と少し異なる意図が浸透してきていると思っていました。そのあたりについては今年のデブサミ 2011 でも触れています(「今だからこそ ALM - 人、プロセス、ツール」)。
☆ ☆ ☆ ☆ ☆
3つ目のポイントですが、用語にあいまい性がある点です。たとえば、Application といったときにそれが何を指すでしょうか?それはどの範囲を指すでしょうか?アプリケーションの開発でしょうか?運用でしょうか?利用でしょうか?Application Lifecycle なので、本来は、開発時とか運用時ではなく、ライフサイクル全体となりますが、ALM という言葉を使うベンダー、人によって範囲が異なることが多いです(もちろん、そのときどきのコンテキストでわかりやすく範囲を限定するのはいいことですが)。
また、Management も私自身うまく説明できないところもまだまだありますが、日本でいう Management = 管理 と、ALM やその他で言うところの Management には差異があると感じています。日本的な Management は、管理者により統率・規制・監視的な意味合いが強くでているのではないかと感じています。それに対して、Management とは、人やチーム、プロセスを統制・規制・監視するのではなく、成果物を制御することに重きをいていると感じています。
ソフトウェア/アプリケーションにおいては、利害関係者の数や範囲もさることながら、成果物のバリエーションと抽象性からこれらをうまく取りまとめ、把握する必要がありました。そこから要求管理やモデリング、ソフトウェア構成管理、変更依頼管理、ビルド/リリース管理などが提唱され、実践され、ツールでの支援も充実してきています。これらは、人を監視するためのものではありません。
☆ ☆ ☆ ☆ ☆
私の考えている ALM は、ビジネス価値に寄与するアプリケーションのライフサイクル全般です。したがって計画から、開発、運用すべてを含みます。ALM 自身も時代と共に進化しています。DevOps、継続的フィードバック、コラボレーティブなどは、どれも今の ALM には欠かせない概念ですし、これらを含むべきです。
また、ALM ツール(あえてこう表現します)は、ツールの都合(ツール単位で、UI とリポジトリがあり、ツールを統合することが一つの価値とみられていたり・・・)で語られることが多く、ALM やそれに類する用語がツールを統合することに重きを置いているように見えてしまうところは、個人的には、非常に残念でなりません。
私が ALM について非常によい表現方法をしていると思うのは、スクラム の生みの親の一人でもある Ken Schwaber 氏の ALM Summit 2010 におけるセッションです。
このエントリーをご覧いただき、関心を持っていただいた方は、ぜひぜひ英語ですが、このセッションのストリーミングをご覧ください。
長沢