大規模システムでアーキテクト不在は終盤で混乱を招く

大規模なプロジェクトで、全体を統括するアーキテクトを立てずにプロジェクトを進めていくというケースが意外と多い。

そうすると、各機能が自分たちの要件を満たすことしか考えずに設計、実装していくのでシステム全体として結合したときに問題が起こる。

組み込みなら、プログラムサイズ、使用RAMサイズ、そしてCPU負荷が主なところ。これがWebアプリや業務アプリでなら、最悪サーバー増設やスペックアップで回避という最終手段が使えるが、組み込みはそうもいかず製品になるハードウェアはソフト開発が始まる前にはすでにスペックが決まっていることがほとんど。

なので、あとからメモリを増やしたりCPUを高速なものに取り替えたりということは行われず、開発終盤になってから皆でメモリ削減や処理の高速化などに血眼をあげることになる。すでに設計、実装、テストもある程度終わった段階でこのような設計変更を伴うような「改善」を求められるので、品質が下がってしまうことも多いし、思うように改善が進まないということがほとんどだ。

組み込みの製品では特に、システム全体を統括するアーキテクトの役割をする人間が必要だと思う。各機能の設計や要件を見て、システムに負荷をかけそうだったりリソースを多く消費しそうな場合は設計段階で指摘できる体制にして余計な手戻りを起こさないようにするべき。

ROMFIX一ヶ月前、評価もほぼ終わった段階で「メモリが足りないのでRAM使用量を半減できないか」というような依頼を受けてもどうしろと...ということになる。

組み込みなら開発側も言われなくてもある程度はリソースなどを無駄に消費しないような作りにするとは思うが、とくに制約もなく作っている機能が10,20と集まると全体として破綻するのは目に見えている。

国内メーカーはなぜそういうことに気づかないんだろうか。終盤になって下請けに無理を言えば徹夜してでもやってくれると思ってるのか、よくわからないが...。ある意味、行き当たりばったり系の開発形態であることは間違い無いだろう。

コメント

タイトルとURLをコピーしました