投稿者: 沼田 勇作

  • (8月2日通信)悪い意味での温故知新――COBOLとノーコードは、なぜ同じ「考古学」になるのか

    まだシステム化していない会社は、
    遅れているのでしょうか?

    私はむしろ、幸運だと思います。

    大企業や金融機関の中には、数十年前に作られたシステムを、今も止められないまま使い続けている組織があります。古いシステムが元気に動いているのではありません。会社や社会の仕事が依存し過ぎて、止めることも、簡単に取り替えることもできないのです。

    有り体に言えば、システムがゾンビ化しています。

    その象徴として、よく名前が挙がるのがCOBOLです。

    しかし、COBOLという古いプログラミング言語そのものが悪いわけではありません。問題は、人間が業務の仕組みを説明できなくなり、コードだけが動き続けていることです。

    そして、この問題は過去の話ではありません。

    最新のノーコードでも、同じ状態は作れます。

    COBOLは、なぜ金融機関の中枢に入ったのか

    COBOLは「Common Business Oriented Language」、日本語にすれば「共通事務処理用言語」です。

    1959年、コンピュータメーカー、利用企業、米国政府関係者らが参加したCODASYLという組織によって開発が始まりました。当時は、メーカーや機種が変わるとプログラムをそのまま移せないことが珍しくありませんでした。そこで、異なるコンピュータでも利用しやすく、企業の事務処理を共通の形式で記述できる言語が求められたのです。最初の仕様は1960年に公表され、その後1968年に標準化されました。IBMのCOBOL解説米国国立標準局のCODASYL COBOL資料

    COBOLは、科学技術計算よりも、企業の大量の事務処理を得意とします。

    顧客番号、口座番号、日付、金額など、決まった形式のデータを「レコード」として扱う。大量のデータを順番に読み、集計し、更新し、帳票を出す。円やドルのような金額を、2進浮動小数点の誤差に任せず10進数として正確に扱う。こうした特徴は、給与計算、請求、保険、年金、予約、そして銀行業務と非常に相性が良いものでした。IBMは現在も、packed decimalを金融計算などで大きな数値を正確に扱う形式として説明しています

    金融機関では、預金、引き出し、振込、利息、手数料、融資、為替、締め処理、帳票作成など、膨大な定型取引を正確に処理する必要があります。そこで、大量処理と安定稼働を得意とするメインフレームと、その上で事務処理を記述するCOBOLの組み合わせが、中枢システムへ深く入り込んでいきました。

    COBOLが今日まで残ったのは、役に立たなかったからではありません。

    むしろ、よく働き、金融機関の中枢を支えることに成功したからです。

    IPAが通信社ロイターの推計として紹介している数字では、COBOLは銀行システムの43%、個人取引の80%、ATMの95%に関係し、世界で約2,200億行のプログラムが稼働しているとされます。数字の定義には幅があるとしても、COBOLが現在も社会基盤を支えていることは間違いありません。IPA「レガシーシステムモダン化と、生き続けるCOBOLのリアル」

    COBOLは、いつ「考古学」になったのか

    最初に作ったプログラムが、そのまま何十年も残っているわけではありません。

    新商品が増える。法制度が変わる。手数料体系が変わる。店舗、ATM、インターネットバンキング、スマートフォンアプリが接続される。他の金融機関や決済網との連携も増える。

    そのたびに改修を重ね、例外処理と暫定対応を積み上げた結果、システムは金融機関の業務史そのものになりました。

    ところが、コードを書いた技術者は退職します。組織も変わります。委託先も変わります。設計書が更新されなければ、文書と実際の処理が少しずつ離れていきます。そして最後には、なぜその条件分岐が必要なのか、なぜそのデータを翌日へ繰り越すのか、誰も説明できなくなります。

    こうなると、システム開発ではありません。

    考古学です。

    コード、データベース、ログ、帳票、バッチ処理、昔の操作手順、ベテラン社員の記憶を「遺物」として集め、失われた業務仕様を発掘することになります。

    COBOLが古いのではありません。

    仕様が失われ、COBOLのコードが唯一の史料になっているのです。

    反対に、設計の目的、データの意味、判断条件、例外処理、外部システムとの関係、テスト条件まで、現行システムと一致した状態で残っていれば、COBOLから別の技術へ移すことはできます。簡単ではなくても、「変えられない」わけではありません。

    IBMも、COBOLの刷新は単なる別言語への翻訳ではなく、データ構造、実行基盤、外部連携、取引の整合性まで含むシステム全体の設計課題だと説明しています。IBM「What Is COBOL?」

    つまり、移行を難しくしている根本原因は、COBOLの文法ではありません。

    人間が、現在のシステムの意味を失っていることです。

    動いているのではない。止められない

    金融システムの難しさは、発掘調査のために簡単に止められないことです。

    日本の全銀システムは、国内のほぼすべての預金取扱金融機関を接続し、振込や送金をオンラインで処理しています。2018年からは24時間365日稼働となり、2023年実績で年間約20億件、約3,671兆円を取り扱ったとされています。日本銀行掲載「全銀ネットの取組みについて」

    もちろん、金融機関のすべてのシステムがCOBOLで動いているわけではありません。しかし金融サービス全体が24時間化したことで、中枢にある古い処理ほど、停止して一気に入れ替えることが難しくなりました。

    これは、宇宙空間を飛び続ける人工衛星を、地上から修理するようなものです。

    地上へ持ち帰れない。長時間停止できない。設計者はいない。設計図も完全ではない。それでも指令を送り、一部分ずつ動作を確認しながら修理しなければなりません。一つの判断を誤れば、通信そのものが途絶える危険があります。

    飛行機にたとえるなら、乗客を乗せて飛び続ける旅客機のジェットエンジンを、一基ずつ止めて修理するような状況です。

    だから古いシステムを一度に捨てるのではなく、旧システムを動かしたまま、新旧を並行稼働させ、処理を少しずつ移します。止められないから、複雑な移行になるのです。

    最新のノーコードが、なぜCOBOLと似ているのか

    ここまで読むと、「それは何十年も前の技術で作ったから起きた問題だ」と思うかもしれません。

    しかし、最新のノーコードでも、同じ構造は生まれます。

    ノーコードを否定するつもりはありません。試作品を早く作る、受付画面を用意する、情報を集める、小さな業務を自動化する。こうした用途では、ノーコードは非常に優れた道具です。

    問題は、社内の誰も理解していない処理によって、会社の仕事が勝手に進むことです。

    画面上で部品をつなげれば動く。担当者が設定した自動処理が、顧客へ連絡し、データを書き換え、承認を進め、請求情報を作る。しかし組織として、次の問いに答えられない。

    • 何をきっかけに処理が始まるのか
    • どの条件で判断が分かれるのか
    • どのデータが変更されるのか
    • 誰に何の権限があるのか
    • 例外が起きたとき、どこまで戻すのか
    • そのサービスをやめるとき、別の仕組みへ移せるのか

    これでは、仕事は動いていても、人間が業務を管理しているとは言えません。

    COBOLは、数十年かけて設計書と担当者を失い、ブラックボックスになりました。

    ノーコードは、設計と運用を残さなければ、導入初日からブラックボックスになれます。

    Microsoft 365の成熟度モデルでも、未成熟なノーコード/ローコード運用について、「その場で」作られ、設計・構築過程の文書がなく、ソース管理に相当する仕組みもなく、少数の詳しい人へ保守が依存する状態が挙げられています。一方、成熟した運用には、文書化、ソース管理、開発・テスト・本番環境の分離、そしてノーコード・ローコード・プロコードを切り替える判断が必要だとされています。Microsoft 365 Maturity Model

    つまり、問題はコードを書くか、書かないかではありません。

    組織が仕組みを理解し、責任を持って変更できるかどうかです。

    レガシーとは「古いシステム」ではない

    レガシーシステムという言葉は、古い言語、古いコンピュータ、古い画面を指すものとして使われがちです。

    しかし本質は、古さではありません。

    人間が、なぜその処理になるのか説明できない。安全に変更できない。止められない。別の仕組みへ移せない。

    その状態になったとき、今日作った最新システムであっても、既にレガシー化は始まっています。

    言い換えれば、レガシーシステムとは、古いシステムではありません。

    変更と廃止の方法を失ったシステムです。

    まだシステム化していない企業は、幸運である

    だから、現時点で十分にシステム化していない企業は、それを遅れとだけ考える必要はありません。

    過去のデータ形式に縛られていない。何十年分もの例外処理を抱えていない。24時間止められない旧システムもない。失われた仕様を発掘する必要もない。

    現在の業務を整理し、生成AI時代に合った仕組みを、最初から設計できます。

    ただし、焦って業務を既製SaaSやノーコードへ押し込めば、今から新しいゾンビを作ることになります。

    試作、受付、情報収集、画面づくりには、ノーコードを積極的に使えばよいでしょう。一方で、会計、請求、在庫、権限、会社資産を変化させる処理は、誰が読んでも判断根拠を追え、テストでき、移行できる形で設計する必要があります。

    重要なのは、すべてをコードにすることでも、すべてをノーコードにすることでもありません。

    会社の中に、業務の意味を理解している人間を残すことです。

    悪い意味での温故知新にしない

    COBOLから学ぶべきなのは、「古い言語を使ってはいけない」という話ではありません。

    どれほど優れた技術でも、人間が設計の意味を残さず、仕組みを理解できなくなれば、やがて止められないシステムになるという教訓です。

    昔の失敗から学ぶための温故知新が、昔と同じ失敗を最新技術で繰り返す温故知新になってはいけません。

    COBOLは、数十年かけて考古学になりました。

    ノーコードを、導入初日から考古学にしてはいけないのです。

  • (8月1日通信)社員の仕事を把握できないのは、報告不足ではない

    特集【会社の見える化】— 社長視点

    社員に聞かなければ、会社の現在が分からない。その状態を「社員からの報告が足りない」と考える経営者は少なくありません。しかし、報告の回数を増やすだけでは、会社はかえって見えにくくなることがあります。

    本当に見直すべきなのは社員の姿勢ではなく、日々の仕事から生まれた事実が、経営判断まで届く仕組みです。

    報告は「現在」ではなく、切り取られた説明である

    たとえば、ある受注について社長が「もう納品できるのか」と尋ねたとします。営業は受注済みだと答え、担当者は作業中だと答え、経理は入金条件を確認中だと答えるかもしれません。どの答えも間違いではありませんが、見ている時点と範囲が違います。

    さらに、社員は質問を受けてからメール、表計算、チャット、紙の伝票を調べ、事情をまとめて説明します。社長の手元に届くのは、現在の業務そのものではなく、誰かが後から編集した「現在についての説明」です。その間にも仕事は進みます。

    週報を日報に変えても、この構造は変わりません。報告を詳しくするほど、書く側と読む側の負担が増え、肝心の仕事とは別に「報告を作る仕事」が大きくなります。

    仕事をした記録が、そのまま経営情報になる

    必要なのは、報告のための再入力ではありません。受注を登録した、見積もりを承認した、部材を手配した、作業を完了した、請求書を発行した。このような業務上の出来事を、それが起きた場所で一度だけ記録することです。

    一つの事実を一度記録し、現場には「今日処理する案件」、管理者には「期限を過ぎた案件」、社長には「売上見込みと障害」というように、役割に応じた見せ方をします。画面は違っても、見ている原本は同じです。

    このとき大切なのは、数字をきれいなグラフにすることではありません。社長が知りたいのは、売上の総額だけでなく、どこで止まり、誰の判断が必要で、放置すると何が起きるかです。見える化とは、事実を眺められる状態ではなく、次の判断を選べる状態です。

    「進行中」という言葉を会社で定義する

    仕組みを作っても、「対応中」「確認中」「ほぼ完了」といった言葉の意味が人によって違えば、現在は見えません。状態には、誰が見ても同じ判定ができる条件が必要です。

    • 受注済みとは、顧客の発注意思と金額が確定した状態
    • 着手可能とは、必要資料と担当者と期限がそろった状態
    • 完了とは、成果物を渡しただけでなく検収条件を満たした状態
    • 要判断とは、決める人、期限、選択肢が明らかになった状態

    こうした定義は、システム会社に決めてもらうものではありません。自社が何をもって仕事の節目とするかは、経営そのものです。代表者が大本の構造を理解していれば、どこを社員に任せ、どこに専門家を加えるべきかも判断できます。

    最初に、社長が繰り返している質問を三つ集める

    大がかりなシステム導入から始める必要はありません。まず一週間、社長が社員に尋ねた質問を記録してみてください。「今月いくら売れそうか」「あの案件はなぜ止まっているか」「今日、私が決めることは何か」といった質問です。

    次に、それぞれについて、答えの根拠となる事実はどこで生まれるか、誰がいつ記録できるか、何分前までの情報なら判断に使えるかを整理します。三つの質問に同じ原本から答えられる小さな仕組みを作れば、見える化の価値を具体的に確かめられます。

    社員に聞くこと自体が悪いのではありません。対話は、新しい考えを生み、例外を理解するために使うべきです。会社の現在を毎回聞き出すために使っているなら、仕組みが肩代わりできる仕事が残っています。

    報告不足ではなく、情報の通り道の問題

    社員が誠実に働いていても、仕事の事実が別々の場所に閉じ込められていれば、社長には見えません。反対に、業務の記録と経営の画面がつながっていれば、社員は報告書を作る時間を減らし、社長は例外と判断に集中できます。

    「もっと報告してほしい」と伝える前に、報告し直さなくても分かる構造になっているかを確認する。それが、会社の見える化の出発点です。