システムの全容をどこまで把握すべきか

巨大なシステムやってて一番思うことは、「隣のプログラムが何やっているかすら知ろうとしない技術者が9割」ということです。これは愚痴です。役割分担が細かいのは良いんですが、仕様すらきっちり確認しようとしない。仕様ってのはそれがわかってないと作れないレベルのI/F仕様だったりするんだけど、誰がどこでどうその項目を設定するの?ということについて興味がなさすぎる。リーダークラスの人が知っててその人に聞けばいいや的な。
で、もうちょっと上のところに行くと、今度はI/Fしている隣のシステムの仕様はやっぱり興味ない。もちろん、I/F仕様どおりにデータが来れば問題ないんだけどさ、データのパターンとかそういう話ってざっくりとした仕様くらいは理解した上で、懸念される問題(あっては困るパターンとかが実際に発生しないかとか)をやり取りするのがシステム屋の仕事だと思うんだよね。
んで、そういうのを寄せ集めて作った巨大システムの仕様をなんとなくでも全体的に説明できる人って何人いるの?というともうホント数えるほどしかいないんだよね。

で、まともな人がこの話を聞くと、「いや、でも、適切な形でシステムが疎結合している場合、I/Fさえ擦り合っていればシステムって上手くいくよね」と思うわけですよ若干理想的な姿見ているとはしても。でもね、問題になっている仕様ってはシステム全体の基本アーキテクチャの話であって、そりゃ個別の業務(I/Fからすると項目設定仕様)についてはきちんと疎になっておりますよ。でも障害発生時の動き方であるとか、データ不整合が発生した時の後続影響とかそういうシステム全体が整合するための根本的な思想の部分が共有できてない結果として、正常な処理から一歩でも外れた時に起きる事故が大変な状態になるわけで…