システム開発方法論

ソフトウェアを効率的に開発する方法はないか。そう思っていろいろ調べてみるとよさそうな本に出会う。

SOFTWARE FACTORIESソフトウェアファクトリー

SOFTWARE FACTORIESソフトウェアファクトリー

この本で新しかったのは、ソフトウェアを工場化し、コンポーネントの再利用を促進するために、①まず工場を作ること(プロダクトライン開発)、②その工場の中で、製品を作ること(プロダクト開発)を明確に分けることを提唱している点だ。

①は、いわばフレームワークWebサービスデザインパターン、ライブラリなどをうまく組み合わせて、その製品を作るために最適化された土台を作るということである。この重要性を認識して、SIプロジェクトに適用している例がどれだけあるのだろう。

また、アスペクト指向で横断的な関心事を分離し、プログラマにはコンポーネント開発にのみ専念できるようにすることや、DIによって、コンポーネント疎結合性を高めるといった考え方も重要だと思う。

本書でも触れられているが、今後オフショア開発が進んでいくときに、オフショア化による品質の問題というのは、これである程度解決されるのではないだろうかという期待がある。①を作ったうえで、②をオフショア化し、最低限の品質を担保するというのは有効ではないか。

プロジェクトをマネジメントする上で、技術の力によって効率性を追求するというのは、一つの重要な手法である。最新技術がゆえ、メンバーがキャッチアップするのにコストがかかる、技術的に未成熟であるなどの問題はあったりするが、そういったリスクを覚悟の上で、長期的に見て何が一番効率的かという視点を持ちたい。

しかし、この本は2005年に出ていたのか。チェックが遅いな。。。まあ、そのときは入社もしていないから仕方がないといえばそうだが。この辺は完全に勉強不足なので、今後勉強していくことにしよう。