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はプログラマ全員が責任を持つ」と表現して締めくくった。