PR
[画像のクリックで拡大表示]

 「キー入力がやたら速かったり,記憶力がよかったり,機械的な作業を間違わずにできたりすることは,優秀な技術者になるのを妨げるかもしれない」。永和システムマネジメントの角谷信太郎氏は2006年2月10日,東京・目黒で開催された開発者向けカンファレンス「Developers Summit 2006(デブサミ2006)」の講演でこう語った。技術者には,単調な仕事をコンピュータにより自動化する「プロジェクト・オートメーション(PA)」の考え方が必須だという。

 角谷氏は,オブジェクト指向やソフトウエア設計に造詣の深かった故 石井勝氏が,技術者の必須項目として挙げていた2項目をまず紹介。石井氏が挙げる「同じことを2度しない(Only and Only OnceあるいはDRY:Don't Repeat Yourself)」「必ずやる作業は自動化できないかと考える」の2項目を追求する“態度”こそが重要だと述べた。つまり「PAとは態度である」(角谷氏)。

 ただ,「自動化したいときに自動化できるかどうか」は,普段の鍛錬すなわち“素振り”にかかっている点を指摘。スターロジック代表取締役の羽生章洋氏が「レジのレシートを使った,普段からのERモデル作成トレーニング」を推奨していることを挙げ,「いきなりホームランを打とうとしても無理。普段からの素振りが重要」だとした。素振りの内容としては,書籍「達人プログラマー——ソフトウェア開発に不可欠な基礎知識 バージョン管理/ユニットテスト/自動化」(アスキー発行)に書かれている「ビルド・マネジメント」「リリース・マネジメント」「リポジトリ・マネージメント」を挙げた。

 角谷氏は,PAとプロジェクトを円滑に進めるための「プロジェクト・ファシリテーション(PF,参考記事)」との関連についても触れた。PAは単なる自動化というよりは,事故が起こった場合の対処を含めた“自働化”であることを説明。機械的な作業をコンピュータに任せることで,人に対して「これやっとけ」と言うのではなく,人間にしかできない作業をさせられるようになるとした。つまり「PAはPFをファシリテート(促進)する」(角谷氏)。PFが「人と人とのインタラクション」であるのに対し,PAは「人とコンピュータとのインタラクション」であり,表裏一体だという。

 角谷氏は「プロジェクトは何のためにあるのか」についても考察。結論は「“価値”ある“動作可能な”ソフトウエアを提供し続けること」であると主張した。この“公理”の前では開発プロセスの違いは誤差程度のものだという。また,この公理を踏まえたうえで,「設計は人の仕事」であり,「製造=ビルドはコンピュータの仕事」であると指摘した。「設計成果物がソースコード,設計検証物がテストコード」であり「ビルド成果物がリリース可能なバイナリ」である。人とコンピュータがコラボレートして「価値ある動作可能なソフトウエア」を提供するわけだ。ただし,自動化はやりすぎるときりがないため,深追いは禁物だとも指摘した。

 最後に角谷氏は,アーキテクチャについて触れた。「アーキテクチャは設計のうちでみんなが大切だと思うもの」であり「特定の個人がアーキテクトだというのは間違いで,全プログラマがアーキテクトになるべき」だという。これを同氏は「PAはプログラマ全員が責任を持つ」と表現して締めくくった。