ソフトウェア作りにクリエティビティはあるか


ソフトウェアを作るエンジニアはアーティストなのか、それともプロダクトを送り出すだけのエンジニアなのか。
ふと、どっちなのかなーとiPhoneでインターネットに時間泥棒されながら意識が漂う。


標準化とクリエイティビティ
ソフトウェアは、形も匂いも重さもない、無形物のプロダクトだ。ソフトウェアを生産物と捉えれば、所謂、一般に売られているプロダクトと同じように、設計、製造、試験、販売のプロセスを取る。プロダクトであるから、企画の段階はそのプロダクトのコンセプトのアイデアを捻り出し、プロダクトの仕様を設計し、製造を経て、仕様で定めた品質を担保しているか試験する。このように考えれば、ソフトウエアはまんま普通のプロダクトであって、誰かがアイデアを出すようなプロセスは、企画段階しかない。
そのプロダクトがある程度市場に受け入れられ、更新される場合、現行プロダクトとそのプロダクトを製造するプロセスの不具合についてカイゼンとして、アイデアが出される。
そのように捉えれば、

企画段階とカイゼン


の2つのポイントにおいて、“ない所から、若しくは、あるべき姿にするため”に、想像力が必要となり、クリエイティビティが求められる。
この前提には、設計や製造におけるプロセスは、あくまでもプロダクトを生産するための標準化がなされいることがある。そこには、標準化の目的から、プロセスの自由度はなく、生産のための形式というなの価値を維持することでプロダクトの品質の最低限を維持するという意図が込められる。

その標準化は、システム開発方法論のウォーターフォールに顕著だが、それの専売特許ではなく、形を変えて、規律という名の制約がアジャイルでも求められる。それは、開発の共通ルールとしてプロジェクトに特化した標準化ではなく、アジャイルな開発チームのメンバが一人ひとり自律を求めるという高い要求事項の上に開発チームとしての共通の意識付けを突きつけている。


裁量のありか
ソフトウェア開発において、クリエイティビティを発揮できるプロセスが企画とカイゼンでしかないのであれば、ソフトウェアエンジニアは、いったい何処で能力を発揮するのであろうか。
実は、標準化されたプロセスの中にクリエイティビティを発揮する場所がある。それは、設計書上の仕様であり、プログラムのコードである。
設計書の見た目の形式や表現は、その顧客の文化によりコト仔細に決められていることもある。例えば、霞ヶ関のようなところでは、本省ごとに言葉遣いの辞書があるくらいだし、金融では同じように仕様書での表現にコト細かくコメントがつけられる。

ただ、そうであってもその設計するシステムの仕様については、アーキテクトなりエンジニアに委ねられており、そこが設計でのクリエイティビティを発揮できる裁量を与えられる作業である。同じように製造工程のコーディングは、設計に縛られるがそのコードの実装は、エンジニアに裁量を委ねられている。

作業は本当に1から10まで決められているのか。
自分の振る舞いを自分の判断に任せられている作業はないか。


つまり、作業のプロセスの中に裁量が委ねられさえすれば、そこにはクリエイティビティを発揮できる余地があるということだ。標準化なり規律なりは、プロジェクトや開発チームとして作業品質を保つための最低限の作法とし、その上で裁量の余地を以下に生かすかが鍵なのだ。