COBOL 近代化サービスの調達は、ほかのどんなソフトウェア発注とも似ていません。対象のシステムは三十年から四十年にわたって動き続けており、いま在籍している人間のなかに全体を把握している者はおらず、しくじったときの代償はスプリントの遅れではなく規制報告の失敗という単位で測られます。そのうえ、机の上に並んだ提案書はどれも同じ結果を約束しながら、価格だけが桁違いにばらついています。
本稿では、まともな契約に実際には何が含まれるのか、ベンダーの型はどこが違うのか、そして証拠に立った入札と楽観に立った入札を分ける質問はどれかを整理します。読み手として想定しているのは、その決定をあとから自分の言葉で説明しなければならない立場の人です。
見るべきもの: 信頼できる COBOL 近代化の提案には、現状分析、移行先アーキテクチャの設計、データ移行、変換またはリホスト、比較にもとづくテスト計画、並行稼働、切り替え計画、そして知識移転が含まれます。コード変換だけに値段がついた入札は、プログラム計画ではありません。そのうちもっとも安い四分の一にすぎません。
COBOL 近代化サービスに実際に含まれるもの
三社に提案を求めれば、スコープの定義も三通り返ってきます。価格を比べる前に項目の一覧をそろえること、それがこの段階でできるもっとも役に立つ作業です。仕事の半分を落とした入札は、要約ページの上ではかならず見栄えがよくなるからです。
現状分析 が最初に来ます。ベンダーは資産全体を解析し、依存関係とデータリネージの地図を作り、使われていないコードを洗い出し、プログラム、コピーブック、ジョブストリーム、データベースオブジェクトの棚卸しを提出します。この工程では、費用を押し上げる要素も同時に表へ出すべきです。アセンブラのモジュール、風変わりなトランザクションの組み立て方、可変レコードレイアウト、そして何十年ものあいだコンパイラが黙って受け入れてきた書き方といったものです。
移行先アーキテクチャ がそれに続きます。そのシステムが何になるのかは、誰かが決めなければなりません。リホストされた COBOL のワークロードなのか、現代的な言語へ変換されたコードベースなのか、いくつかのサービスの集まりなのか、あるいはそれらを時間をかけて段階的に組み合わせたものなのか。この判断は変換に着手する前に置かれるべきものであり、結論だけを言い渡すのではなく、そう考えた理由が読める形で文書に残されるべきです。
データ移行 は、スキーマ設計、抽出、変換、そして突き合わせまでを含みます。メインフレームのデータ形式は、リレーショナルなスキーマでは直接には表せない意味を抱えています。だからこの作業は、機械的というより分析的です。
コード変換またはリホスト は誰もが目を向ける部分ですが、全体の工数のなかでは少数派にとどまるのが普通です。自動化にここで何ができて何ができないのかは、メインフレーム移行ツール についての当社のガイドで扱っています。
買い手がもっとも削りがちな工程
テストと比較 こそ、費用が向かう先です。きちんとしたプログラムでは、旧システムと新システムに同一の入力を与えて動かし、出力を項目単位で突き合わせるハーネスを作り、そこで出た差異のひとつひとつを、修正するか正式に受け入れるかのどちらかに片づけていきます。これはそれ自体がひとつのソフトウェア開発であり、そのように値付けされるべきものです。
並行稼働と切り替え とは、決められた期間、本番と同じ量のデータで両方のシステムを動かし、そのうえで切り戻し手順を試したうえで切り替えることを指します。時間を節約するためにこの段階を飛ばしたプログラムが、望ましくない意味で事例集に載ることになります。
知識移転とサポート が契約を締めくくります。ベンダーがいなくなったあと、自社のチームが結果を運用し、変更できなければなりません。それが受け入れ基準を伴う明示的な成果物になっていないなら、あなたが買ったのは近代化ではありません。依存関係を買ったのです。
ベンダーの三つの型と、それぞれが得意なこと
この市場は、強みの中身が本当に異なる三つの集団に分かれます。そしてどれが正しいかは、順位づけよりもあなたの資産の性質で決まります。
ツールベンダーとそのパートナー は、自動変換またはリホスト基盤を前面に出します。技術は成熟していることが多く、変換の処理量は実際に目をみはるものがあります。考えておくべきなのは利害の向きです。彼らの商売は自社製品が担う割合を大きくするほど有利になりますが、それはあなたが気持ちよく保守できるコードベースになることと、いつも同じ方向を向いているとはかぎりません。加えて、本番の資産が彼らのランタイムに結びつきます。これは値札をつけて考えるべき依存です。
グローバルなシステムインテグレーター は、規模、プログラム統制、そして複数年にわたる大人数の体制を組む力を持ち込みます。資産が複数の事業部門にまたがって数百万行に達するなら、この供給力は本当に効きますし、それを出せる相手は多くありません。引き換えになるのは費用の構造と、提案書を書いた人と実際に手を動かす人のあいだの距離です。誰がチームに入るのか、その人たちはどこに座っているのか、どんな経験があるのかを、名指しで尋ねてください。
専門エンジニアリング企業 は規模が小さく、最初から最後まで経験のある人間が担当し、売るべき製品を持たないためツールに対して中立であることがほとんどです。数十万行規模の資産、段階を踏むプログラム、そして難所が量ではなく業務ロジックそのものにある状況に向いています。二百人規模のプログラムに人を並べることはできませんし、できないと言うべきです。
どこでも通用する正解はありません。ある資産にとっての正解があるだけで、自分たちのやり方はどんな状況にも合うと言うベンダーは、その売り方について有益なことを教えてくれています。
弱い入札をあぶり出す質問
調達の質問票では、肝心なところはめったに表に出ません。以下の質問なら出ます。
「いちばん厄介なモジュールを変換して、出力を見せてください。」 誰もが避けて通るプログラムを選んでください。できればアセンブラを呼び出し、入れ子になった可変レコードを使っているものがいいでしょう。要約ではなく、生成されたコードそのものを見せてもらってください。自分たちのやり方に自信のあるベンダーなら、金額の決まった控えめな調査費用の範囲でこれをやります。渋るという反応も、それ自体がひとつの答えです。
「十進演算とソート順はどう扱いますか。」 パック十進数の項目と、メインフレームの照合順序は、どちらも財務の数字と帳票の並び順にだけ現れる差異を生みます。答えは具体的かつ技術的であるべきです。ここで話がぼやける相手とは、受け入れテストの局面が苦しくなります。
「テストの範囲には正確に何が入っていて、比較ハーネスは誰が書きますか。」 ここで探しているのは、名前のついた成果物と、工数の見積もりと、本番に近いデータを誰が用意するのかという線引きです。テストが構築工数の何パーセントという形で語られるなら、そのベンダーは当て推量をしています。
「説明のつかない差異が出たら、どうしますか。」 どのプログラムでも、出力が食い違い、誰にもその理由がわからないものが出てきます。よいベンダーは、業務側の承認を含む切り分けの手順を説明します。そんなことは起きないと言う相手は、プログラムを最後までやり遂げたことがないか、正直に話していないかのどちらかです。
「出来上がったソースコードは誰のものになりますか。そして、私たちは離れられますか。」 答えは、すべてが完全にあなたのものであり、動かし続けるためのランタイムライセンスは要らない、というものであるべきです。答えのどこかに専有レイヤーの継続的なライセンスが混ざるなら、支払いをやめたとき本番システムに何が起きるのかを、正確に理解しておいてください。
「うまくいかなかったプログラムと、そこから何を変えたかを聞かせてください。」 この種の仕事を数件以上こなした組織なら、かならずひとつは持っています。この答えは、いま向き合っている相手がエンジニアなのか営業機能なのかを教えてくれます。
COBOL 近代化サービスはどう値付けされるか
料金モデルはいくつかあり、それぞれリスクの配り方が違います。表に出ている金額よりも、その配り方を理解することのほうが大事です。
実費精算は、本物の未知が残る仕事に対してはもっとも誠実なモデルであり、取締役会にとってはもっとも落ち着かないモデルです。これは現状分析に向いています。そして現状分析は、ほとんどの場合、独立して、いちばん先に発注されるべきものです。そうすることで残りの工程を、仮定ではなく証拠に対して値付けできるようになります。
モジュール単位あるいは千行あたりの固定価格は、変換作業でよく使われますし、現状分析がモジュールの中身を明らかにしたあとであれば妥当です。ただし除外条件を丁寧に読んでください。この種の価格は、決められた複雑度の帯に収まるコードを前提にしているのが普通で、そこから外れたものは個別に値付けし直されます。ぶれはそこに宿ります。
成果連動型の値付けは、受け入れられた機能的等価性に支払いを結びつけるもので、利害の向きはよくそろいますが、その代わり判定に耐えるだけ精密な受け入れ基準を必要とします。その基準をきちんと定義する手間は、かける価値があります。
現状分析を走らせる前に、プログラム全体の確定した固定価格を出してくる会社には懐疑的でいてください。それは自信の表明ではありません。最悪の場合を賄えるだけの予備費を積んだ価格か、楽観的に積んだうえで難しいモジュールが表に出たときに変更依頼として届く価格か、どちらかです。どちらも買い得ではありません。
値引きについて言えば、この市場はそういう動き方をしません。意味のある減額は、範囲を絞ること、段階を分けて後の工程が最初の工程で学んだことの恩恵を受けられるようにすること、あるいは現状分析でもう使われていないと分かったコードを廃止することから生まれます。範囲を変えないまま価格を大きく下げるベンダーは、最初の数字が根拠のないものだったと自分で明かしたことになります。予算が実際どこへ向かうのかは、COBOL 移行の費用と期間のガイド で分解しています。
契約で必ず押さえたい条項
いくつかの条項は、どれだけ統制の仕組みを積み上げるよりも、結果を守る力があります。
納品されるソースコード、スキーマ、スクリプト、テスト資産のすべてについて、制約のない所有権を求めてください。比較ハーネスも含みます。あのハーネスは、その後何年も使うことになる資産です。
受け入れの定義は、コードの納品ではなく、合意したデータセットに対して機能的等価性が示されたこと、としてください。「変換は完了した」と「出力が一致している」の違いが、このプロジェクトのすべてです。
現状分析、パイロット、段階的な変換、切り替えという区切りを持つ構成と、本物の出口を要求してください。どの段階で止めても手元に価値が残る形にできます。ひとかたまりの契約ではそうはいきません。
主要な人員を契約書に名前で書き込み、交代に関する条項を入れてください。提案に来たチームと実際に現れるチームとの落差は、この市場でもっともよく聞く不満です。
最後に、知識移転を独自の受け入れ基準を持つ成果物にし、自社のチームが誰の助けも借りずに実際の変更をやり遂げたことをもって証拠としてください。そうしなければ、それは最終週に配られるスライドの束になります。
販売代理店ではなくエンジニアと話す
Mecanik は独立したエンジニアリング企業として、COBOL 近代化 と COBOL マイグレーション のプログラムに取り組んでいます。私たちは変換基盤を再販していないので、ツールについての推奨は、私たちがライセンスを持っているものではなく、あなたのコードベースが必要としているものを映します。
私たちは現状分析と、いちばん難しいモジュールを対象にした有償のパイロットから始めます。業界平均ではなく、あなたの実際のコードに根を張った見積もりが出てくるからです。そこから先は、変換するか、リホストするか、あるいは今はどちらも正当化できないとお伝えするかです。最後の答えが正しいことも、ときにはあります。工程のより細かい内容は COBOL マイグレーションサービス のページに、そしてその前に来る書き直し・リファクタリング・リプラットフォームの判断は メインフレーム近代化の戦略 のガイドで扱っています。
資産のおおよその規模と、時期を迫らせているものが何かを教えてください。現実的なプログラムがどんな形になるかをお伝えします。
あわせて読みたい: COBOLからJavaへの移行 - 英国企業向けガイド 、COBOLからC#への移行: UK企業向けガイド 、COBOLからPythonへの移行 - 英国企業向けガイド 、COBOLからGoへの移行: 英国企業向けガイド 。
よくある質問
COBOL 近代化サービスには何が含まれますか? 一式の契約には、現状分析、移行先アーキテクチャの設計、データ移行、コード変換またはリホスト、比較にもとづくテスト計画、並行稼働、切り替え計画、そして知識移転が含まれます。コード変換だけを値付けした提案は、実際の作業のうち少数派しか覆っていません。
COBOL から現代的な言語への移行は誰が提供していますか? 三つの集団が提供しています。ツールベンダーとその導入パートナー、グローバルなシステムインテグレーター、そして独立した専門エンジニアリング企業です。ツールベンダーは成熟した自動化を、インテグレーターは非常に大きな資産に対する規模を、専門企業は中規模のプログラムに対して経験豊富なエンジニアとツール中立性を提供します。
COBOL 近代化プロジェクトはどのように値付けされますか? よくあるモデルは、実費精算、モジュール単位または千行あたりの固定価格、そして機能的等価性に結びついた成果連動型です。現状分析は独立して先に発注し、残りを仮定ではなく証拠に対して値付けできるようにしてください。
現状分析の前に固定価格を受け入れるべきですか? 基本的にはいいえです。分析なしに提示された固定価格は、必要ないかもしれない予備費が積まれているか、楽観的で結局は変更依頼として届くかのどちらかです。まず現状分析を買い、その結果を使って後続の工程の確定した価格を取ってください。
ベンダーが自社のコードベースを扱えるか、どう確かめますか? 調査の段階で、いちばん難しいモジュールを変換して生成された出力を見せてもらってください。アセンブラ呼び出し、可変レコードレイアウト、パック十進演算を含むものを選びます。何が出てくるか、そしてどれだけ気持ちよく応じるかが、どんな照会先への電話よりも多くを教えてくれます。
コメント