「間違いだらけのネットワーク作り」(著者・松田次博)を読んで、至るところで感銘を受けました。
NTTデータのネットワークエンジニアのトップとして、今後の企業ネットワーク・IP電話のことだけでなく、提案・営業やプロジェクト管理まで縦横無尽に書かれているのですが、とても読みやすい本でもあります。
それで、最近のテーマである「コード」と何が結びついてくるかというと、こんな箇所がありました。
------------------
ルータで構成されるIPネットワークが、ルータ配下のセグメントでアドレスをどう割当てようが自由なのと同じで、PBXによる内線網は自律分散型ネットワークだということだ。
自律分散型の良いところはネットワーク管理者の運用負荷が少なく、各拠点が独自に、すばやくユーザーの要求に対応できることだ。
拠点で電話機を3台追加したいと思ったら、出入りのPBX業者に電話すればよい。
すぐ技術者がやって来て、PBXの設定も電話機の設置も1人ですばやく済ませてくれる。
-------------------
では、自律分散型の逆は何かというと「集中制御型」なのです。
コードを付けると考えると、すぐエンジニアは、連番で付けると考えます。
例えばDBサーバーが1台であれば全社で連番の番号を付けます。
しかし、DBサーバーが分散している場合は、そんな設計はしないでしょう。
例えば、大規模開発を行うとします。
サブシステムごとにシステム開発チームが分離した場所で開発を行っています。
こんな場合、画面に表示するエラーメッセージ番号を、連番や整理された番号で付ける必要があるでしょうか?
MSG10001からMSG10300までが共通メッセージとして共有して使うなどという設計方針がリーダーによって決められたとします。
それぞれのチームはメッセージ番号を自分勝手に付けることは許されないのです。
つまり、番号を決めるためにいちいちPMに問い合わせなければならないということだとしたら、どんなに無駄な「時間」が必要となるでしょうか。
これがMSG10000からMSG19999までがAチーム、MSG20000からMSG29999までがBチーム、といったように、それぞれ独自に自律分散型で番号管理ができるとしたら、生産性は確実に上がります。
実際のところ、そこまでしてエラーメッセージ番号を集中で管理する必要があるのでしょうか?
これは「NO」です。
大規模開発においては、自律分散型にできるものは、徹底してそうすべきだと考えます。
たかがコードの付け方のことですが、小さな積み重ね、無駄を産まない意識が生産性を上げるのではないでしょうか。
Vol.00160