開発ツールの本来の目的を考える
ALMが開発で果たす役割とは?
「そもそも開発ツールとは、開発者の作業負担を軽くするツールである」という、筆者が冒頭に掲げた視点から見た場合、ALMツールは「作るものの妥当性を担保する仕組み」であるということが言えます(ALMツールは、さまざまな機能を含んでいるので、ひとことでまとめるのはちょっと乱暴な気もしますが、より広範な議論は別記事のほうも合わせてご覧ください…と、逃げる私)。
今日のソフトウエア開発では、「当初計画通りに物事が進む」ことはまずありません(うまく行ったかのようにうたった“事後“報告書はたくさん見受けられますが^^;)。開発者は開発の途上でさまざまな判断をする必要に迫られます。
しかし、現在の開発スタイルでは、体制や役割、工程が明確に定義されていて、ともするとプロジェクト自体の目的や目標、今どこで何が行われているかがまったくわからない状態におかれがちです。
このような状態では、満足な判断などできるわけがありません。個々の開発者にとってALMの価値のひとつは、各種の成果物や情報が一元管理されることで、プロジェクトの文脈(位置づけ、意味合い、現在の状態)を知ることで各自がより適切な判断をできるようになるということです。
「ツールを使いこなして、高い生産性を実践しながら、まとはずれなアプリケーションを作る」なんて、こんなむなしい話があるでしょうか?それを避けるためにALMはあるのです。
「協調的(Collaborative:コラボラティブ)である」という次の波
ご多分に漏れず、IBMも個人の生産性からチーム/組織のALMと、これまで概観してきたラインアップをそろえています。しかし、今Jazzテクノロジーと称して、次世代のプラットホーム構築に投資しており、すでに複数製品をリリースしています。
このJazzテクノロジーの背骨とも言える世界観、それは、「開発者が協調的(Collaborative)であること」です。世界規模で見ると、アジャイル開発は小規模プロジェクト向きとしての評価は確立され、より大規模寄りの分散体制への適用に向けてチャレンジされるフェーズに入っています。
規模の大小にかかわらず、アジャイルスタイルでは開発者のコラボレーションが重視されますが、 “協調的”であるとは具体的にはどういうことなのか?そのために開発ツールに求められることは何か?という点では具体的なイメージが持ちづらいものです。
次回以降、具体例を見ながら、「開発者にとってのコラボレーションとは?それを支える開発ツールの方向性とは?」をひもといていきます。お付き合いください。