ソフトウェア開発の難しさについて考える。 ソフトウェアの複雑さについて、またソフトウェアの成長についての、二点を考える。 「ソフトウェアの複雑さ」がよくわからない 大規模なソフトウェアは複雑であり、それが開発の難しさだという意見はよく聞く。この複雑というのがどういうことなのか、僕はあまりよくわかっていない。顧客の数が多いとか、専門用語が多いとか、組織固有のノウハウに依存しているとか、システムの目的や領域が混在しているとか、なんかそういうビジネス上の多様な問題を統一的に扱おうとすることから生じる複雑さなのかな、という印象がある。だからソフトウェアの複雑さというのは複雑なビジネス領域を体験しないとよくわからないのかな、と。そういうイメージを与えてくれる文章を引用してみる。 『エリック・エヴァンスのドメイン駆動設計』p.43 部屋に入った時にまず目に入ったのは、すべてが書き込まれたクラス図だった