大きくて複雑なもの

システムを作り替えるといったことになると、得てして「こういうこともできるようにしたい」「このデータは、自動で同期されるようにしたい」と、色々な要望があがっていく。


こういった要望を単純に取り込んでいくと、システムの仕様はどんどん大きくて複雑なものになっていく。
だが、その大きく複雑な仕様をそのまま実現しようとすると、プロジェクトは大体、失敗する。


作ろうとするものが、大きければ大きいほど、内部構造はシンプルにしないといけない。大きいものを作るためには、非常に多くの人が関与しないといけない。多人数の認識を合わせて、作成物の整合を取るには、バカでも理解できるくらいシンプルでないと駄目なのである。


反面、一人で作るような小規模なアプリは、かなり機能を複雑にできる。巷のフリーソフトが豊富な機能を持っていて、大規模なシステムが意外にシンプルな機能しかない、なんてことはよくあること。