見出し画像

#02 - SAS日本上陸、業務アプリ改善に利用💡

1980年代前半、日本にパッケージソフトのSAS(Statistical Analysis System  : 統計解析のパッケージソフト)が上陸しました。
おそらく、日本最初のユーザーだったであろう某企業で私はシステム開発の仕事を担当していました。

SASは日本語のマニュアルを作成している段階だったらしく、まだ手書きの内容で仮に製本されたものしか無い状態でした。
しかも中身は2本線で修正されている箇所が何箇所もある様な感じでした。

その後、何度か校正して正式な日本語マニュアルとして出版に至ったようです。
そんな中で私としてとてもいい経験をさせてもらった話ですが、少しメインフレーム上の単語などが登場しますのでご了承ください。

新しいことに挑戦して、結果、成功したんだなということが伝わればと思います。


お客様からの誘い

直接関わっていないため横目で見ていただけで、SASに関する仕事として依頼はありませんでした。

「この新しいパッケージソフトとはどんなことができるのだろう」程度に思っていただけでした。

ところが、お客様から今回SASというパッケージを導入することになったが、一緒に学習してくれないかという話が当時の会社に入ったのです。
しかし、当時の諸先輩は将来自分たちのスキルとして役に立つか立たないかわからないパッケージであったため、なかなか参加表明をしませんでした。どちらかといえば、自分たちは忙しいので、若手に勉強させればいいんじゃないという感じでした。

それを横目で見ていて、「今、このパッケージのスキルを身につければ自分がパイオニアになれるし、もしかしたら将来も大いに役に立つかも」というちょっと不純ではありましたが、自ら手を上げてお客様と一緒に学習することにしました。
ある意味、先輩に一目置いてもらうチャンスと捉えたのです。
もちろん、発注してもらったので、ただ働きではありませんでしたけれど。

SASの習得

実際にSASの説明会に参加したり、マニュアルを読んでいると年金数理分野で利用する統計解析のみならず、SASが持っている機能の一つでユーティリティ機能があることに着目しました。
もちろん、統計解析の使い方にも一通り目を通した後、汎用的に利用できるユーティリティ機能が我々が作成しているシステムの運用業務に役に立ちそうでした。

さらにSASは、内部にデータベースも持っており、ある程度のロジックを実現できる機能も持っていたのです。
なかなかすごいパッケージだなと思いました。

当時、私はIBMのメインフレーム上のプログラムを構築してアプリケーションとして稼働させることを仕事として担当していました。
作成したプログラムを実行するには、そのプログラムで利用するデータを、事前に並び替えたり、レイアウトを変更したりして作成したプログラムに入力させることが多々ありました。
これらの実現には、IBMが提供するいろんなユーティリティ機能を繋ぎ合わせて実装していることがほとんどでした。

ところが、SAS自体は数行のコマンドを記述することで、連結したロジックを実現でき多くの処理を一度に実施することができる機能を備えていました。
その中にはデータの並び順をソートしたり、レコードの一部を抽出したり、フォーマットを変換したりする機能が入っていたのです。

ここに着目しました。

IBMのユーティリティを利用しているときは、1つの機能を1つの単位として記述していましたが、SASではそれらをまとめて一つの機能のように書き表すことができたのです。

それまで、IBMのメインフレームであれば、SORT処理を実施し、レコードの一部を抽出する処理も実施し、ファイルをマージするなどのユーティリティのみで構成するといったJOBがSASを使うと、数行のコマンドを記述することで実現できることがわかったのです。

ユーティリティ機能を駆使したJOBは、JCL内のステップ数も多くなり、とてもわかりやすいとは言えない状況だったのです。
しかし、SASの持つユーティリティ機能を上手に利用することで、もっと効率よくバッチ処理が構成できるのではと考えました。

狙いは的中でした。

メインフレーム上でユーティリティを駆使したJCLはかなり存在していました。
もちろん、ユーザープログラムを使わない処理なのでプログラムレスという観点ではかなり価値あるものでしたね。

SASの応用

SASのユーティリティ機能を利用するために、本番JCLライブラリーで対象となりそうなJCLを抽出し、まずは、特定領域のJCL群をSASで置き換えるとどうなるかということを実施しました。

つまり、IBMのユーティリティ機能だけのJCLを抽出してその全てをSASだけに置き換えてみたのです。

複数ステップを含んでいるJCLのほとんどは、1ステップに置き換えられるわけですから、複数のJCL同士の統合も可能になりました。
またJCLの中のそれぞれのステップ間での、煩雑なリターンコードによる分岐処理もほぼ不要になり、すっきりとしたJCLへと生まれ変わりました。

大成功です !

ただし、SASの基本的な知識がないと何をやっているのかを理解するのは困難な状況にはなってしまいましたが、それは、簡単なドキュメントを記述することでほぼ解決しました。

この時、SASの持つユーティリティ機能に絞った簡易マニュアルも同時に作成し、よくあるパターンですが、サンプルコーディンクも掲載しお客様に提供しました。


活動の成果

効果の確認をしたお客様は、お客様内(特にIT部門内)でもスキル展開したいから、教室を開いてくれないかと相談を持ってこられました。
もちろん、私から当時の会社に話を通して有償での教室を開催し、簡易マニュアルも改訂を重ねていきました。
次第に、お客様内において完全に標準パッケージとしての位置づけをSASは確保していきました。

当初のちょっと不純な動機で始めたことが広がりをみせ、当時の会社の先輩たちからも教えてくれという依頼が入るまでになり、「やったー」という感情がこみ上げたのを記憶しています。
そうです。当時、SASを利用するという分野では、パイオニアになっていたのです。
もちろん、お客様内での私の知名度も上がっていました。

諸先輩に追いつくことは並大抵のことではありませんが、諸先輩が手をつけないことに率先して対応していけば、みんなを差し置いてスキル的にはトップになれるということを体感した経験でした。
最も、失敗していたら、「やっぱりね」という言葉を浴びせられていたのでしょうね。きっと。

その後SASはプラットフォームを広げ、現在でも統計解析用のパッケージとして生き残っています。
それだけ利用者が多かったということなのでしょうね。
確かに、面白いパッケージであり、新しいことに挑戦することの素晴らしさを体感できた経験でした。


【註釈】

SASの現在のHP   https://www.sas.com/ja_jp/home.html
当時とすると、全く変わっている様です

JCL  https://www.otsuka-shokai.co.jp/words/jcl.html
メインフレーム上で作成したプログラムの実行順序を制御を記述するための言語

JOB = 複数STEPで構成される、実行単位
STEP = プログラムの実行を定義する単位

JCL Sample

スクリーンショット 2021-08-12 15.59.58


よろしければサポートをお願いします。皆さんに提供できるものは「経験」と「創造」のみですが、小説やエッセイにしてあなたにお届けしたいと思っています。